Функция 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()' в этой спецификации.
Рабочий черновик Первоначальное определение проекта.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 57Edge Полная поддержка 16Firefox Полная поддержка 52
Замечания
Полная поддержка 52
Замечания
Замечания Disabled in the Firefox 52 Extended Support Release (ESR).
IE Нет поддержки НетOpera Полная поддержка 44Safari Полная поддержка 11WebView Android Полная поддержка 57Chrome Android Полная поддержка 57Edge Mobile Полная поддержка Да
Отключено
Полная поддержка Да
Отключено
Отключено This feature is behind the Experimental JavaScript Features preference.
Firefox Android Полная поддержка 52
Замечания
Полная поддержка 52
Замечания
Замечания Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android Полная поддержка 44Safari iOS Полная поддержка 11Samsung Internet Android Полная поддержка 7.0nodejs Полная поддержка 8.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Смотрите замечания реализации.
Смотрите замечания реализации.
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

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

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

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