WebAssembly
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.
WebAssembly
JavaScript 객체는 모든 WebAssembly에 관계된 기능의 네임스페이스로서 역할합니다.
대부분의 전역객체와 다르게, WebAssembly
는 생성자가 아닙니다 (함수 객체가 아닙니다). 비슷한 예로 수학적인 상수나 함수들을 담고있는 Math
객체나, 국제화 관련 생성자나 언어에 민감한 다른 함수들을 담고있는 Intl
등이 있습니다.
설명
WebAssembly
객체의 기본적인 사용례는 다음과 같습니다:
WebAssembly.instantiate()
함수를 사용해서 웹어셈블리 코드 불러오기.WebAssembly.Memory()
/WebAssembly.Table()
생성자로 새 메모리와 테이블 인스턴스 생성하기.WebAssembly.CompileError()
/WebAssembly.LinkError()
/WebAssembly.RuntimeError()
생성자로 웹어셈블리에서 발생하는 에러에 대한 처리장치 만들기.
메서드
WebAssembly.instantiate()
-
WebAssembly 코드를 컴파일하고 인스턴스화하여
Module
과 첫 번째Instance
를 반환하는 기본 API입니다. WebAssembly.instantiateStreaming()
-
스트리밍 된 원본 소스에서 직접 WebAssembly 모듈을 컴파일하고 인스턴스화하여
Module
과 첫 번째Instance
를 반환합니다. WebAssembly.compile()
-
WebAssembly 바이너리 코드에서
WebAssembly.Module
을 컴파일하여 인스턴스화를 별도의 단계로 남겨 둡니다. WebAssembly.compileStreaming()
-
WebAssembly.Module
을 스트림 된 원본 소스에서 직접 컴파일하여 인스턴스화를 별도의 단계로 남겨 둡니다. WebAssembly.validate()
-
바이트가 유효한 WebAssembly 코드 (
true
)인지 아닌지 (false
)를 반환하여 WebAssembly 바이너리 코드의 지정된 입력 된 배열을 확인합니다.
생성자
WebAssembly.Global()
-
Creates a new WebAssembly
Global
object. WebAssembly.Module()
-
Creates a new WebAssembly
Module
object. WebAssembly.Instance()
-
Creates a new WebAssembly
Instance
object. WebAssembly.Memory()
-
Creates a new WebAssembly
Memory
object. WebAssembly.Table()
-
Creates a new WebAssembly
Table
object. WebAssembly.CompileError()
-
Creates a new WebAssembly
CompileError
object. WebAssembly.LinkError()
-
Creates a new WebAssembly
LinkError
object. WebAssembly.RuntimeError()
-
Creates a new WebAssembly
RuntimeError
object.
예제
다음 예제 (GitHub의 instantiate-streaming.html 데모보기 및 라이브보기)에서는 기본 소스에서 .wasm 모듈을 직접 스트리밍 한 다음 컴파일하고 인스턴스화합니다. 프로미스는 ResultObject
로 충족됩니다. instantiateStreaming()
함수는 Response
객체에 대한 promise를 받아들이므로 직접 fetch()
호출에 전달할 수 있습니다.
var importObject = { imports: { imported_func: (arg) => console.log(arg) } };
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
(obj) => obj.instance.exports.exported_func(),
);
그런 다음 ResultObject의 인스턴스 구성에 액세스하고 그 안에 있는 exported_func
을 호출합니다.
명세서
Specification |
---|
WebAssembly JavaScript Interface # webassembly-namespace |
브라우저 호환성
BCD tables only load in the browser