This page was translated from English by the community. Learn more and join the MDN Web Docs community.
WebAssembly
 
 
 
 Baseline
 
 Widely available
 
 *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 This feature is well established and works across many devices and browser versions. It’s been available across browsers since октябрь 2017 г..
* Some parts of this feature may have varying levels of support.
Экспериментальная возможность: Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
Объект JavaScript WebAssembly действует как пространство имён для всего WebAssembly-связанной функциональности.
В отличие от большинства других глобальных объектов, WebAssembly не является конструктором (это не объект функции). Можно сравнить его с Math, который так же является пространством имён констант и функций, или Intl, который является пространством имён для конструкторов интернационализации и других языково-чувствительных функций.
Описание
Основное использование WebAssembly следующее:
- Загрузка кода WebAssembly, с помощью функции WebAssembly.instantiate().
- Создание новой памяти и таблицы экземпляров с помощью конструкторов WebAssembly.Memory()/WebAssembly.Table().
- Обеспечение возможности управлять ошибками, которые появляются в WebAssembly с помощью конструкторов WebAssembly.CompileError()/WebAssembly.LinkError()/WebAssembly.RuntimeError().
Методы
- WebAssembly.instantiate()
- 
Основное API для компиляции и создания экземпляра кода WebAssembly, возвращающее Moduleи его первыйInstance.
- WebAssembly.compile()
- 
Компилирует WebAssembly.Moduleиз бинарного кода WebAssembly, оставляя создание экземпляра отдельным шагом.
- WebAssembly.validate()
- 
Проверяет представленный типизированный массив бинарного кода WebAssembly, возвращая в зависимости от того были ли байты кода WebAssembly валидны ( true) или (false).
Конструкторы
- WebAssembly.Module()
- 
Создаёт новый объект WebAssembly Module.
- WebAssembly.Instance()
- 
Создаёт новый объект WebAssembly Instance.
- WebAssembly.Memory()
- 
Создаёт новый объект WebAssembly Memory.
- WebAssembly.Table()
- 
Создаёт новый объект WebAssembly Table.
- WebAssembly.CompileError()
- 
Создаёт новый объект WebAssembly CompileError.
- WebAssembly.LinkError()
- 
Создаёт новый объект WebAssembly LinkError.
- WebAssembly.RuntimeError()
- 
Создаёт новый объект WebAssembly RuntimeError.
Примеры
Смотрите пример instantiate-streaming.html на GitHub (демо).
const importObject = {
 my_namespace: { imported_func: (arg) => console.log(arg) },
};
WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then(
 (obj) => obj.instance.exports.exported_func(),
);
Потом осуществляется доступ к свойству .instance объекта ResultObject и вызывается содержащаяся в нём экспортированная функция.
Спецификации
| Specification | 
|---|
| WebAssembly JavaScript Interface> # webassembly-namespace> | 
Совместимость с браузерами
Loading...
Смотрите также
- WebAssembly обзорная страница
- WebAssembly концепции
- Использование WebAssembly JavaScript API