--- title: WebAssembly.compile() slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile ---
{{JSRef}}

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

Синтаксис

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

Параметры

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

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

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

Исключения

Примеры

В следующем примере выполняется компиляция загруженного 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)
);

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

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

Спецификация Статус Коммент
{{SpecName('WebAssembly JS', '#webassemblycompile', 'compile()')}} {{Spec2('WebAssembly JS')}} Первоначальное определение проекта.

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

{{Compat("javascript.builtins.WebAssembly.compile")}}

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