Функция WebAssembly.compile() компилирует WebAssembly.Module из двоичного кода WebAssembly. Эта функция полезна, если необходимо компилировать модуль до того, как его можно создать (в противном случае следует использовать функцию WebAssembly.instantiate().

Синтаксис

Promise<WebAssembly.Module> WebAssembly.compile(bufferSource);

Параметры

bufferSource
Типированный массив typed array или ArrayBuffer, содержащий двоичный код модуля .wasm, который вы хотите скомпилировать.

Возвращаемое значение

Обещание, (Promise), которое разрешает объект WebAssembly.Module, представляющий скомпилированный модуль.

Исключения

  • Если bufferSource не является typed array, генерируется TypeError.
  • Если компиляция не удалась, обещание отклоняется с помощью WebAssembly.CompileError.

Примеры

В следующем примере выполняется компиляция загруженного simple.wasm байт-кода с использованием функции compile(), а затем отправляется его worker-работнику, использующему postMessage().

var worker = new Worker("wasm_worker.js");

fetch('simple.wasm').then(response =>
  response.arrayBuffer()
).then(bytes =>
  WebAssembly.compile(bytes)
).then(mod =>
  worker.postMessage(mod)
);

Заметка: Вероятно, вы захотите использовать WebAssembly.compileStreaming() в большинстве случаев, поскольку он более эффективен, чем compile().

Характеристики

Спецификация Статус Коммент
WebAssembly JavaScript Interface
Определение 'compile()' в этой спецификации.
Рабочий черновик Первоначальное определение проекта.

Совместимость с браузером

ВозможностьChromeEdgeFirefoxInternet ExplorerOperaSafari
Базовая поддержка5716522 Нет4411
ВозможностьAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Базовая поддержка5757 Да1522 ?117.0

1. This feature is behind the Experimental JavaScript Features preference.

2. Disabled in the Firefox 52 Extended Support Release (ESR).

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: warsan
Обновлялась последний раз: warsan,