WebAssembly.instantiate()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017년 10월.
* Some parts of this feature may have varying levels of support.
WebAssembly.instantiate() 함수를 사용하면 WebAssembly 코드를 컴파일하고 인스턴스화 할 수 있습니다. 이 함수에는 두개의 overloads가 있습니다.
- 기본 오버로드는 typed array 또는
ArrayBuffer의 형태로 WebAssembly 바이너리 코드를 취해 컴파일 및 인스턴스화를 한 번에 수행합니다. 반환 된 Promise는 컴파일 된WebAssembly.Module및 첫 번째WebAssembly.Instance로 해석됩니다. - 두번째 오버로드는 이미 컴파일 된
WebAssembly.Module을 취하여 해당Module의Instance로 해석되는Promise을 반환합니다. 이 overload는Module이 이미 컴파일된 경우 유용합니다.
경고 :
중요 : 이 방법은 wasm 모듈을 가져와 인스턴스화하는 가장 효율적인 방법은 아닙니다. 가능하다면 원시 바이트 코드에서 모듈을 모두 한 단계로 가져오고, 컴파일하고 인스턴스화하는 대신 최신 WebAssembly.instantiateStreaming () 메서드를 사용해야합니다. ArrayBuffer 로의 변환이 필요합니다.
Syntax
>Primary overload — taking wasm binary code
Promise<ResultObject> WebAssembly.instantiate(bufferSource, importObject);
Parameters
- bufferSource
-
컴파일 할 .wasm 모듈의 이진 코드가 들어있는 typed array 또는
ArrayBuffer입니다. - importObject Optional
-
함수 또는
WebAssembly.Memory객체와 같이 새로 생성 된인스턴스로 가져올 값을 포함하는 객체입니다. 컴파일 된 모듈의 각 선언 된 가져 오기에 대해 하나의 일치하는 속성이 있어야합니다. 그렇지 않으면WebAssembly.LinkError가 발생합니다.
Return value
두개의 필드를 포함하는 ResultObject를 가진 Promise를 반환:
module: 컴파일 된 WebAssembly 모듈을 나타내는WebAssembly.Module객체입니다. 이Module은postMessage()를 통해 공유되거나 cached in IndexedDB로 다시 인스턴스화 될 수 있습니다.instance: Exported WebAssembly functions을 포함하는WebAssembly.Instance객체입니다.