В Firefox, Chromium и Edge добавлена экспериментальная поддержка WebAssembly

15 марта 2016 года

Объявлено о начале тестирования в ночных сборках Firefox, в Chromium/Chrome Canary и в Microsoft Edge технологии WebAssembly (Архивная копия от 23 октября 2020 на Wayback Machine) (WASM), предоставляющей не зависящий от браузера универсальный низкоуровневый промежуточный код для выполнения в браузере приложений, скомпилированных из различных языков программирования. Для демонстрации производительности WebAssembly, в сравнении с Asm.js, подготовлен специальный вариант игры Angry Bots (Архивная копия от 20 июля 2016 на Wayback Machine) на базе движка Unity.

По своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код. В отличие от PNaCl, промежуточный код WASM не является машинным кодом и не изолирован в отдельной виртуальной машине, а выполняется с похожим на JavaScript уровнем изоляции. Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.

До повсеместного внедрения WebAssembly остаётся стабилизировать бинарный формат, стандартизировать кодирование текстур, подготовить финальный инструментарий с компилятором и отладчиком, стабилизировать JavaScript API для доступа к объектам WASM. В будущем возможности WebAssembly планируется расширить поддержкой многопоточности, динамического связывания, сборки мусора и полноценной интеграции с DOM. В настоящее время для включения WebAssembly в Firefox Nightly в about:config необходимо установить переменную javascript.options.wasm, а в Chrome (начиная с Canary 51.0.2677.0) включить опцию "chrome://flags#enable-webassembly".

Для формирования WebAssembly можно использовать компилятор Binaryen, созданный на основе наработок Emscripten. В состав Binaryen входит интерактивная оболочка для выполнения модулей на WebAssembly, компилятор asm.js в WebAssembly, декомпилятор WebAssembly в asm.js, LLVM-бэкенд для компиляции произвольного кода в WebAssembly и wasm.js, порт Binaryen на JavaScript.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В Firefox, Chromium и Edge добавлена экспериментальная поддержка WebAssembly», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.