Spec-Zone.ru › Deno 2

Wasm

Эффективно выполняйте задачи с высокой вычислительной нагрузкой. Компиляция и создание экземпляров модулей Wasm, управление памятью, взаимодействие с импортируемыми и экспортируемыми элементами.

Например, WebAssembly.instantiate, WebAssembly.Module, WebAssembly.Instance


класс WebAssembly.CompileError

наследует Error

Объект WebAssembly.CompileError указывает на ошибку при декодировании или проверке WebAssembly.

MDN

Конструкторы

CompileError(
message?: string,
options?: ErrorOptions,
)
новый

Создаёт новый объект WebAssembly.CompileError.


класс WebAssembly.Global

Объект WebAssembly.Global представляет экземпляр глобальной переменной, доступный как из JavaScript, так и для импорта и экспорта в одном или нескольких экземплярах WebAssembly.Module. Это позволяет динамически связывать несколько модулей.

MDN

Конструкторы

Global(
descriptor: GlobalDescriptor,
v?: any,
)
новый

Создаёт новый объект Global.

Свойства

value: any

Значение, содержащееся в глобальной переменной; его можно использовать для непосредственного чтения и изменения значения глобальной переменной.

Методы

valueOf(): any

Метод в старом стиле, возвращающий значение, содержащееся в глобальной переменной.


класс WebAssembly.Instance

Объект WebAssembly.Instance — это экземпляр WebAssembly.Module с собственным состоянием, который можно выполнять. Объекты экземпляров содержат все экспортированные функции WebAssembly, позволяющие вызывать код WebAssembly из JavaScript.

MDN

Конструкторы

Instance(
module: Module,
importObject?: Imports,
)
новый

Создаёт новый объект Instance.

Свойства

exports: Exports
только для чтения

Возвращает объект, содержащий в качестве своих свойств все функции, экспортированные из экземпляра модуля WebAssembly, чтобы JavaScript мог обращаться к ним и использовать их. Только для чтения.


класс WebAssembly.LinkError

наследует Error

Объект WebAssembly.LinkError указывает на ошибку при создании экземпляра модуля (за исключением ловушек из стартовой функции).

MDN

Конструкторы

LinkError(
message?: string,
options?: ErrorOptions,
)
новый

Создаёт новый объект WebAssembly.LinkError.


класс WebAssembly.Memory

Объект WebAssembly.Memory — это изменяемый по размеру ArrayBuffer или SharedArrayBuffer, содержащий необработанные байты памяти, к которой обращается экземпляр WebAssembly.

Память, созданная в JavaScript или в коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.

MDN

Конструкторы

Memory(descriptor: MemoryDescriptor)
новый

Создаёт новый объект Memory.

Свойства

buffer: ArrayBuffer | SharedArrayBuffer
только для чтения

Свойство-аксессор, возвращающее буфер, содержащийся в памяти.

Методы

grow(delta: number): number

Увеличивает размер экземпляра памяти на указанное количество страниц WebAssembly (размер каждой страницы — 64 КБ).


класс WebAssembly.Module

Объект WebAssembly.Module содержит код WebAssembly без состояния, уже скомпилированный браузером. Такой код можно эффективно передавать воркерам и создавать на его основе несколько экземпляров.

MDN

Конструкторы

Module(bytes: BufferSource)
новый

Создаёт новый объект Module.

Статические методы

customSections(
moduleObject: Module,
sectionName: string,
): ArrayBuffer[]

Принимает Module и строку, а затем возвращает копию содержимого всех пользовательских секций модуля с указанным строковым именем.

exports(moduleObject: Module): ModuleExportDescriptor[]

Принимает Module и возвращает массив с описаниями всех объявленных экспортируемых элементов.

imports(moduleObject: Module): ModuleImportDescriptor[]

Принимает Module и возвращает массив с описаниями всех объявленных импортируемых элементов.


класс WebAssembly.RuntimeError

наследует Error

Объект WebAssembly.RuntimeError — это тип ошибки, возникающей при срабатывании ловушки, предусмотренной WebAssembly.

MDN

Конструкторы

RuntimeError(
message?: string,
options?: ErrorOptions,
)
новый

Создаёт новый объект WebAssembly.RuntimeError.


класс WebAssembly.Table

Объект WebAssembly.Table() — это объект-обёртка JavaScript, структура, похожая на массив и представляющая таблицу WebAssembly, в которой хранятся ссылки на функции. Таблица, созданная в JavaScript или в коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.

MDN

Конструкторы

Table(descriptor: TableDescriptor)
новый

Создаёт новый объект Table.

Свойства

length: number
только для чтения

Возвращает длину таблицы, то есть количество элементов.

Методы

get(index: number): Function | null

Функция доступа — получает элемент, сохранённый по указанному индексу.

grow(delta: number): number

Увеличивает размер экземпляра Table на указанное количество элементов.

set(
index: number,
value: Function | null,
): void

Устанавливает для элемента, сохранённого по указанному индексу, заданное значение.


функция WebAssembly.compile

compile(bytes: BufferSource): Promise<Module>

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

MDN

Параметры

bytes: BufferSource

Тип возвращаемого значения

Promise<Module>

функция WebAssembly.compileStreaming

compileStreaming(source: Response | Promise<Response>): Promise<Module>

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

MDN

Параметры

source: Response | Promise<Response>

Тип возвращаемого значения

Promise<Module>

функция WebAssembly.instantiate

Перегрузка 1

instantiate(
bytes: BufferSource,
importObject?: Imports,
): Promise<WebAssemblyInstantiatedSource>

Функция WebAssembly.instantiate() позволяет компилировать и создавать экземпляры кода WebAssembly.

Эта перегрузка принимает двоичный код WebAssembly в виде типизированного массива или ArrayBuffer и выполняет компиляцию и создание экземпляра за один шаг. Возвращённый Promise разрешается в скомпилированный WebAssembly.Module и его первый WebAssembly.Instance.

MDN

Параметры

bytes: BufferSource
importObject: Imports
необязательный

Тип возвращаемого значения

Promise<WebAssemblyInstantiatedSource>

Перегрузка 2

instantiate(
moduleObject: Module,
importObject?: Imports,
): Promise<Instance>

Функция WebAssembly.instantiate() позволяет компилировать и создавать экземпляры кода WebAssembly.

Эта перегрузка принимает уже скомпилированный WebAssembly.Module и возвращает Promise, который разрешается в экземпляр этого модуля. Эта перегрузка полезна, если модуль уже был скомпилирован.

MDN

Параметры

moduleObject: Module
importObject: Imports
необязательный

Тип возвращаемого значения

Promise<Instance>

функция WebAssembly.instantiateStreaming

instantiateStreaming(
response: Response | PromiseLike<Response>,
importObject?: Imports,
): Promise<WebAssemblyInstantiatedSource>

Функция WebAssembly.instantiateStreaming() компилирует и создаёт экземпляр модуля WebAssembly непосредственно из передаваемого потоком источника. Это самый эффективный и оптимизированный способ загрузки кода wasm.

MDN

Параметры

response: Response | PromiseLike<Response>
importObject: Imports
необязательный

Тип возвращаемого значения

Promise<WebAssemblyInstantiatedSource>

функция WebAssembly.validate

validate(bytes: BufferSource): boolean

Функция WebAssembly.validate() проверяет заданный типизированный массив двоичного кода WebAssembly и возвращает, является ли последовательность байтов допустимым модулем wasm (true) или нет (false).

MDN

Параметры

bytes: BufferSource

Тип возвращаемого значения

boolean

интерфейс WebAssembly.GlobalDescriptor

Объект GlobalDescriptor описывает параметры, которые можно передать в new WebAssembly.Global().

Свойства

mutable: boolean
необязательный

Можно ли изменять глобальную переменную после создания. По умолчанию — false.

value: ValueType

Тип данных глобальной переменной.


интерфейс WebAssembly.MemoryDescriptor

MemoryDescriptor описывает параметры, которые можно передать в new WebAssembly.Memory().

Свойства

initial: number

Начальный размер памяти в единицах страниц WebAssembly (по 64 КБ каждая).

maximum: number
необязательный

Максимальный размер памяти в единицах страниц WebAssembly, до которого она может вырасти.

shared: boolean
необязательный

Используется ли память совместно несколькими агентами (на основе SharedArrayBuffer). По умолчанию — false.


интерфейс WebAssembly.ModuleExportDescriptor

ModuleExportDescriptor описывает объявленный экспорт в WebAssembly.Module.

Свойства

kind: ImportExportKind

Тип экспортируемой сущности.

name: string

Имя, под которым экспортируется сущность.


интерфейс WebAssembly.ModuleImportDescriptor

ModuleImportDescriptor описывает объявленный импорт в WebAssembly.Module.

Свойства

kind: ImportExportKind

Тип импортируемой сущности.

module: string

Имя модуля, из которого импортируется сущность.

name: string

Имя импортируемой сущности в ее модуле.


интерфейс WebAssembly.TableDescriptor

TableDescriptor описывает параметры, которые можно передать в new WebAssembly.Table().

Свойства

element: TableKind

Тип значения, хранящегося в таблице.

initial: number

Начальное количество элементов в таблице.

maximum: number
необязательный

Максимальное количество элементов, до которого может вырасти таблица.


интерфейс WebAssembly.WebAssemblyInstantiatedSource

Значение, возвращаемое WebAssembly.instantiate.

Свойства

instance: Instance

Объект WebAssembly.Instance, содержащий все экспортированные функции WebAssembly.

module: Module

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


пространство имен WebAssembly

Объект JavaScript WebAssembly служит пространством имен для всех функций, связанных с WebAssembly. В отличие от большинства глобальных объектов, он не является конструктором; в нем собраны функции компиляции и создания экземпляров модулей WebAssembly, а также классы (Module, Instance, Memory, Table, Global) и типы ошибок, используемые для работы с ними.

MDN

Классы

WebAssembly.CompileError

Объект WebAssembly.CompileError указывает на ошибку при декодировании или проверке WebAssembly.

WebAssembly.Global

Объект WebAssembly.Global представляет экземпляр глобальной переменной, доступный как из JavaScript, так и для импорта и экспорта в одном или нескольких экземплярах WebAssembly.Module. Это позволяет выполнять динамическую компоновку нескольких модулей.

  • value
  • valueOf
WebAssembly.Instance

Объект WebAssembly.Instance — это экземпляр WebAssembly.Module, обладающий состоянием и возможностью выполнения. Объекты экземпляров содержат все экспортированные функции WebAssembly, позволяющие вызывать код WebAssembly из JavaScript.

  • exports
WebAssembly.LinkError

Объект WebAssembly.LinkError указывает на ошибку при создании экземпляра модуля (за исключением ловушек, вызванных стартовой функцией).

WebAssembly.Memory

Объект WebAssembly.Memory — это изменяемый по размеру ArrayBuffer или SharedArrayBuffer, в котором хранятся исходные байты памяти, доступной экземпляру WebAssembly.

  • buffer
  • grow
WebAssembly.Module

Объект WebAssembly.Module содержит не имеющий состояния код WebAssembly, уже скомпилированный браузером. Им можно эффективно обмениваться с рабочими потоками и создавать на его основе несколько экземпляров.

  • customSections
  • exports
  • imports
WebAssembly.RuntimeError

Объект WebAssembly.RuntimeError — это тип ошибки, возникающей всякий раз, когда WebAssembly указывает на ловушку.

WebAssembly.Table

Объект WebAssembly.Table() — это объект-обертка JavaScript, представляющий собой структуру, подобную массиву, для таблицы WebAssembly, в которой хранятся ссылки на функции. Таблица, созданная в JavaScript или коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.

  • get
  • grow
  • length
  • set

Функции

WebAssembly.compile

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

WebAssembly.compileStreaming

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

WebAssembly.instantiate

Функция WebAssembly.instantiate() позволяет скомпилировать код WebAssembly и создать его экземпляр.

WebAssembly.instantiateStreaming

Функция WebAssembly.instantiateStreaming() компилирует модуль WebAssembly и создает его экземпляр непосредственно из потока исходных данных. Это самый эффективный и оптимизированный способ загрузки кода wasm.

WebAssembly.validate

Функция WebAssembly.validate() проверяет заданный типизированный массив двоичного кода WebAssembly и возвращает, образуют ли байты допустимый модуль wasm (true) или нет (false).

Интерфейсы

WebAssembly.GlobalDescriptor

GlobalDescriptor описывает параметры, которые можно передать в new WebAssembly.Global().

  • mutable
  • value
WebAssembly.MemoryDescriptor

MemoryDescriptor описывает параметры, которые можно передать в new WebAssembly.Memory().

  • initial
  • maximum
  • shared
WebAssembly.ModuleExportDescriptor

ModuleExportDescriptor описывает объявленный экспорт в WebAssembly.Module.

  • kind
  • name
WebAssembly.ModuleImportDescriptor

ModuleImportDescriptor описывает объявленный импорт в WebAssembly.Module.

  • kind
  • module
  • name
WebAssembly.TableDescriptor

TableDescriptor описывает параметры, которые можно передать в new WebAssembly.Table().

  • element
  • initial
  • maximum
WebAssembly.WebAssemblyInstantiatedSource

Значение, возвращаемое WebAssembly.instantiate.

  • instance
  • module

Псевдонимы типов

WebAssembly.Exports

Набор значений, экспортируемых экземпляром модуля WebAssembly и индексируемых по именам экспорта.

WebAssembly.ExportValue

Значение, которое можно экспортировать из экземпляра модуля WebAssembly.

WebAssembly.ImportExportKind

Тип сущности, на которую ссылается дескриптор импорта или экспорта модуля.

WebAssembly.Imports

Объект импорта, передаваемый при создании экземпляра модуля WebAssembly; импортируемые значения сгруппированы по именам модулей.

WebAssembly.ImportValue

Значение, которое можно передать модулю WebAssembly в качестве импорта.

WebAssembly.ModuleImports

Набор значений, импортируемых из одного модуля и индексируемых по именам импорта.

WebAssembly.TableKind

Тип значения, хранящегося в WebAssembly.Table.

WebAssembly.ValueType

Тип данных значения WebAssembly, используемый для описания глобальных переменных.


псевдоним типа WebAssembly.Exports

Набор значений, экспортируемых экземпляром модуля WebAssembly и индексируемых по именам экспорта.

Определение

Record<string, ExportValue>

псевдоним типа WebAssembly.ExportValue

Значение, которое можно экспортировать из экземпляра модуля WebAssembly.

Определение

Function
| Global
| Memory
| Table

псевдоним типа WebAssembly.ImportExportKind

Тип сущности, на которую ссылается дескриптор импорта или экспорта модуля.

Определение

"function"
| "global"
| "memory"
| "table"

псевдоним типа WebAssembly.Imports

Объект импорта, передаваемый при создании экземпляра модуля WebAssembly и объединяющий импортируемые значения по именам модулей.

Определение

Record<string, ModuleImports>

псевдоним типа WebAssembly.ImportValue

Значение, которое можно передать модулю WebAssembly в качестве импорта.

Определение

ExportValue | number

псевдоним типа WebAssembly.ModuleImports

Набор значений, импортированных из одного модуля и индексируемых по именам импортов.

Определение

Record<string, ImportValue>

псевдоним типа WebAssembly.TableKind

Тип значения, хранящегося в WebAssembly.Table.

Определение

"anyfunc"

псевдоним типа WebAssembly.ValueType

Тип данных значения WebAssembly, используемый для описания глобальных переменных.

Определение

"f32"
| "f64"
| "i32"
| "i64"

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/wasm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API