Wasm
Эффективно выполняйте задачи с высокой вычислительной нагрузкой. Компиляция и создание экземпляров модулей Wasm, управление памятью, взаимодействие с импортируемыми и экспортируемыми элементами.
Например, WebAssembly.instantiate, WebAssembly.Module, WebAssembly.Instance
класс WebAssembly.CompileError
Объект WebAssembly.CompileError указывает на ошибку при декодировании или проверке WebAssembly.
Конструкторы
CompileError(
message?: string,
options?: ErrorOptions,
) Создаёт новый объект WebAssembly.CompileError.
класс WebAssembly.Global
Объект WebAssembly.Global представляет экземпляр глобальной переменной, доступный как из JavaScript, так и для импорта и экспорта в одном или нескольких экземплярах WebAssembly.Module. Это позволяет динамически связывать несколько модулей.
Конструкторы
Global(
descriptor: GlobalDescriptor,
v?: any,
) Создаёт новый объект Global.
Свойства
value: any Значение, содержащееся в глобальной переменной; его можно использовать для непосредственного чтения и изменения значения глобальной переменной.
Методы
valueOf(): any Метод в старом стиле, возвращающий значение, содержащееся в глобальной переменной.
класс WebAssembly.Instance
Объект WebAssembly.Instance — это экземпляр WebAssembly.Module с собственным состоянием, который можно выполнять. Объекты экземпляров содержат все экспортированные функции WebAssembly, позволяющие вызывать код WebAssembly из JavaScript.
Конструкторы
Свойства
класс WebAssembly.LinkError
Объект WebAssembly.LinkError указывает на ошибку при создании экземпляра модуля (за исключением ловушек из стартовой функции).
Конструкторы
LinkError(
message?: string,
options?: ErrorOptions,
) Создаёт новый объект WebAssembly.LinkError.
класс WebAssembly.Memory
Объект WebAssembly.Memory — это изменяемый по размеру ArrayBuffer или SharedArrayBuffer, содержащий необработанные байты памяти, к которой обращается экземпляр WebAssembly.
Память, созданная в JavaScript или в коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.
Конструкторы
Memory(descriptor: MemoryDescriptor) Создаёт новый объект Memory.
Свойства
buffer: ArrayBuffer | SharedArrayBuffer Свойство-аксессор, возвращающее буфер, содержащийся в памяти.
Методы
grow(delta: number): number Увеличивает размер экземпляра памяти на указанное количество страниц WebAssembly (размер каждой страницы — 64 КБ).
класс WebAssembly.Module
Объект WebAssembly.Module содержит код WebAssembly без состояния, уже скомпилированный браузером. Такой код можно эффективно передавать воркерам и создавать на его основе несколько экземпляров.
Конструкторы
Module(bytes: BufferSource) Создаёт новый объект Module.
Статические методы
customSections(
moduleObject: Module,
sectionName: string,
): ArrayBuffer[] Принимает Module и строку, а затем возвращает копию содержимого всех пользовательских секций модуля с указанным строковым именем.
exports(moduleObject: Module): ModuleExportDescriptor[] Принимает Module и возвращает массив с описаниями всех объявленных экспортируемых элементов.
imports(moduleObject: Module): ModuleImportDescriptor[] Принимает Module и возвращает массив с описаниями всех объявленных импортируемых элементов.
класс WebAssembly.RuntimeError
Объект WebAssembly.RuntimeError — это тип ошибки, возникающей при срабатывании ловушки, предусмотренной WebAssembly.
Конструкторы
RuntimeError(
message?: string,
options?: ErrorOptions,
) Создаёт новый объект WebAssembly.RuntimeError.
класс WebAssembly.Table
Объект WebAssembly.Table() — это объект-обёртка JavaScript, структура, похожая на массив и представляющая таблицу WebAssembly, в которой хранятся ссылки на функции. Таблица, созданная в JavaScript или в коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.
Конструкторы
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()).
Параметры
bytes: BufferSource Тип возвращаемого значения
Promise<Module> функция WebAssembly.compileStreaming
compileStreaming(source: Response | Promise<Response>): Promise<Module>Функция WebAssembly.compileStreaming() компилирует WebAssembly.Module непосредственно из передаваемого потоком источника. Эта функция полезна, если модуль необходимо скомпилировать до создания его экземпляра (в противном случае следует использовать функцию WebAssembly.instantiateStreaming()).
Параметры
Тип возвращаемого значения
Promise<Module> функция WebAssembly.instantiate
Перегрузка 1
instantiate(
bytes: BufferSource,
importObject?: Imports,
): Promise<WebAssemblyInstantiatedSource>Функция WebAssembly.instantiate() позволяет компилировать и создавать экземпляры кода WebAssembly.
Эта перегрузка принимает двоичный код WebAssembly в виде типизированного массива или ArrayBuffer и выполняет компиляцию и создание экземпляра за один шаг. Возвращённый Promise разрешается в скомпилированный WebAssembly.Module и его первый WebAssembly.Instance.
Параметры
bytes: BufferSource importObject: Imports Тип возвращаемого значения
Promise<WebAssemblyInstantiatedSource> Перегрузка 2
instantiate(): Promise<Instance>Функция WebAssembly.instantiate() позволяет компилировать и создавать экземпляры кода WebAssembly.
Эта перегрузка принимает уже скомпилированный WebAssembly.Module и возвращает Promise, который разрешается в экземпляр этого модуля. Эта перегрузка полезна, если модуль уже был скомпилирован.
Параметры
Тип возвращаемого значения
Promise<Instance> функция WebAssembly.instantiateStreaming
instantiateStreaming(): Promise<WebAssemblyInstantiatedSource>Функция WebAssembly.instantiateStreaming() компилирует и создаёт экземпляр модуля WebAssembly непосредственно из передаваемого потоком источника. Это самый эффективный и оптимизированный способ загрузки кода wasm.
Параметры
Тип возвращаемого значения
Promise<WebAssemblyInstantiatedSource> функция WebAssembly.validate
validate(bytes: BufferSource): booleanФункция WebAssembly.validate() проверяет заданный типизированный массив двоичного кода WebAssembly и возвращает, является ли последовательность байтов допустимым модулем wasm (true) или нет (false).
Параметры
bytes: BufferSource Тип возвращаемого значения
boolean интерфейс WebAssembly.GlobalDescriptor
интерфейс WebAssembly.MemoryDescriptor
MemoryDescriptor описывает параметры, которые можно передать в new WebAssembly.Memory().
Свойства
интерфейс WebAssembly.ModuleExportDescriptor
ModuleExportDescriptor описывает объявленный экспорт в WebAssembly.Module.
Свойства
Тип экспортируемой сущности.
name: string Имя, под которым экспортируется сущность.
интерфейс WebAssembly.ModuleImportDescriptor
интерфейс WebAssembly.TableDescriptor
TableDescriptor описывает параметры, которые можно передать в new WebAssembly.Table().
Свойства
интерфейс WebAssembly.WebAssemblyInstantiatedSource
Значение, возвращаемое WebAssembly.instantiate.
Свойства
пространство имен WebAssembly
Объект JavaScript WebAssembly служит пространством имен для всех функций, связанных с WebAssembly. В отличие от большинства глобальных объектов, он не является конструктором; в нем собраны функции компиляции и создания экземпляров модулей WebAssembly, а также классы (Module, Instance, Memory, Table, Global) и типы ошибок, используемые для работы с ними.
Классы
Объект WebAssembly.CompileError указывает на ошибку при декодировании или проверке WebAssembly.
Объект WebAssembly.Global представляет экземпляр глобальной переменной, доступный как из JavaScript, так и для импорта и экспорта в одном или нескольких экземплярах WebAssembly.Module. Это позволяет выполнять динамическую компоновку нескольких модулей.
Объект WebAssembly.Instance — это экземпляр WebAssembly.Module, обладающий состоянием и возможностью выполнения. Объекты экземпляров содержат все экспортированные функции WebAssembly, позволяющие вызывать код WebAssembly из JavaScript.
Объект WebAssembly.LinkError указывает на ошибку при создании экземпляра модуля (за исключением ловушек, вызванных стартовой функцией).
Объект WebAssembly.Memory — это изменяемый по размеру ArrayBuffer или SharedArrayBuffer, в котором хранятся исходные байты памяти, доступной экземпляру WebAssembly.
Объект WebAssembly.Module содержит не имеющий состояния код WebAssembly, уже скомпилированный браузером. Им можно эффективно обмениваться с рабочими потоками и создавать на его основе несколько экземпляров.
Объект WebAssembly.RuntimeError — это тип ошибки, возникающей всякий раз, когда WebAssembly указывает на ловушку.
Объект WebAssembly.Table() — это объект-обертка JavaScript, представляющий собой структуру, подобную массиву, для таблицы WebAssembly, в которой хранятся ссылки на функции. Таблица, созданная в JavaScript или коде WebAssembly, доступна для чтения и изменения как из JavaScript, так и из WebAssembly.
Функции
Функция WebAssembly.compile() компилирует двоичный код WebAssembly в объект WebAssembly.Module. Эта функция полезна, если необходимо скомпилировать модуль до создания его экземпляра (в противном случае следует использовать функцию WebAssembly.instantiate()).
Функция WebAssembly.compileStreaming() компилирует WebAssembly.Module непосредственно из потока исходных данных. Эта функция полезна, если необходимо скомпилировать модуль до создания его экземпляра (в противном случае следует использовать функцию WebAssembly.instantiateStreaming()).
Функция WebAssembly.instantiate() позволяет скомпилировать код WebAssembly и создать его экземпляр.
Функция WebAssembly.instantiateStreaming() компилирует модуль WebAssembly и создает его экземпляр непосредственно из потока исходных данных. Это самый эффективный и оптимизированный способ загрузки кода wasm.
Функция WebAssembly.validate() проверяет заданный типизированный массив двоичного кода WebAssembly и возвращает, образуют ли байты допустимый модуль wasm (true) или нет (false).
Интерфейсы
GlobalDescriptor описывает параметры, которые можно передать в new WebAssembly.Global().
MemoryDescriptor описывает параметры, которые можно передать в new WebAssembly.Memory().
ModuleExportDescriptor описывает объявленный экспорт в WebAssembly.Module.
ModuleImportDescriptor описывает объявленный импорт в WebAssembly.Module.
TableDescriptor описывает параметры, которые можно передать в new WebAssembly.Table().
Значение, возвращаемое WebAssembly.instantiate.
Псевдонимы типов
Набор значений, экспортируемых экземпляром модуля WebAssembly и индексируемых по именам экспорта.
Значение, которое можно экспортировать из экземпляра модуля WebAssembly.
Тип сущности, на которую ссылается дескриптор импорта или экспорта модуля.
Объект импорта, передаваемый при создании экземпляра модуля WebAssembly; импортируемые значения сгруппированы по именам модулей.
Значение, которое можно передать модулю WebAssembly в качестве импорта.
Набор значений, импортируемых из одного модуля и индексируемых по именам импорта.
Тип значения, хранящегося в WebAssembly.Table.
Тип данных значения WebAssembly, используемый для описания глобальных переменных.
псевдоним типа WebAssembly.Exports
Набор значений, экспортируемых экземпляром модуля WebAssembly и индексируемых по именам экспорта.
Определение
Record<string, ExportValue> псевдоним типа WebAssembly.ExportValue
псевдоним типа 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