diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/interfaces/wasm-js-api.idl | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/interfaces/wasm-js-api.idl')
-rw-r--r-- | testing/web-platform/tests/interfaces/wasm-js-api.idl | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/wasm-js-api.idl b/testing/web-platform/tests/interfaces/wasm-js-api.idl new file mode 100644 index 0000000000..141af90fd2 --- /dev/null +++ b/testing/web-platform/tests/interfaces/wasm-js-api.idl @@ -0,0 +1,110 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: WebAssembly JavaScript Interface (https://webassembly.github.io/spec/js-api/) + +dictionary WebAssemblyInstantiatedSource { + required Module module; + required Instance instance; +}; + +[Exposed=(Window,Worker,Worklet)] +namespace WebAssembly { + boolean validate(BufferSource bytes); + Promise<Module> compile(BufferSource bytes); + + Promise<WebAssemblyInstantiatedSource> instantiate( + BufferSource bytes, optional object importObject); + + Promise<Instance> instantiate( + Module moduleObject, optional object importObject); +}; + +enum ImportExportKind { + "function", + "table", + "memory", + "global" +}; + +dictionary ModuleExportDescriptor { + required USVString name; + required ImportExportKind kind; + // Note: Other fields such as signature may be added in the future. +}; + +dictionary ModuleImportDescriptor { + required USVString module; + required USVString name; + required ImportExportKind kind; +}; + +[LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] +interface Module { + constructor(BufferSource bytes); + static sequence<ModuleExportDescriptor> exports(Module moduleObject); + static sequence<ModuleImportDescriptor> imports(Module moduleObject); + static sequence<ArrayBuffer> customSections(Module moduleObject, DOMString sectionName); +}; + +[LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] +interface Instance { + constructor(Module module, optional object importObject); + readonly attribute object exports; +}; + +dictionary MemoryDescriptor { + required [EnforceRange] unsigned long initial; + [EnforceRange] unsigned long maximum; +}; + +[LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] +interface Memory { + constructor(MemoryDescriptor descriptor); + unsigned long grow([EnforceRange] unsigned long delta); + readonly attribute ArrayBuffer buffer; +}; + +enum TableKind { + "externref", + "anyfunc", + // Note: More values may be added in future iterations, + // e.g., typed function references, typed GC references +}; + +dictionary TableDescriptor { + required TableKind element; + required [EnforceRange] unsigned long initial; + [EnforceRange] unsigned long maximum; +}; + +[LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] +interface Table { + constructor(TableDescriptor descriptor, optional any value); + unsigned long grow([EnforceRange] unsigned long delta, optional any value); + any get([EnforceRange] unsigned long index); + undefined set([EnforceRange] unsigned long index, optional any value); + readonly attribute unsigned long length; +}; + +enum ValueType { + "i32", + "i64", + "f32", + "f64", + "v128", + "externref", + "anyfunc", +}; + +dictionary GlobalDescriptor { + required ValueType value; + boolean mutable = false; +}; + +[LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] +interface Global { + constructor(GlobalDescriptor descriptor, optional any v); + any valueOf(); + attribute any value; +}; |