blob: 44f2a5e3cce8ebd2a39e26f9cdd649fc7a839a61 [file] [log] [blame]
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.
// Generated from Web IDL definitions.
// ignore_for_file: unintended_html_in_doc_comment
@JS()
library;
import 'dart:js_interop';
import 'fetch.dart';
import 'webidl.dart';
typedef ImportExportKind = String;
typedef TableKind = String;
typedef ValueType = String;
extension type WebAssemblyInstantiatedSource._(JSObject _) implements JSObject {
external factory WebAssemblyInstantiatedSource({
required Module module,
required Instance instance,
});
external Module get module;
external set module(Module value);
external Instance get instance;
external set instance(Instance value);
}
@JS()
external $WebAssembly get WebAssembly;
@JS('WebAssembly')
extension type $WebAssembly._(JSObject _) implements JSObject {
external bool validate(BufferSource bytes);
external JSPromise<Module> compile(BufferSource bytes);
external JSPromise<JSObject> instantiate(
JSObject bytesOrModuleObject, [
JSObject importObject,
]);
external JSPromise<Module> compileStreaming(JSPromise<Response> source);
external JSPromise<WebAssemblyInstantiatedSource> instantiateStreaming(
JSPromise<Response> source, [
JSObject importObject,
]);
}
extension type ModuleExportDescriptor._(JSObject _) implements JSObject {
external factory ModuleExportDescriptor({
required String name,
required ImportExportKind kind,
});
external String get name;
external set name(String value);
external ImportExportKind get kind;
external set kind(ImportExportKind value);
}
extension type ModuleImportDescriptor._(JSObject _) implements JSObject {
external factory ModuleImportDescriptor({
required String module,
required String name,
required ImportExportKind kind,
});
external String get module;
external set module(String value);
external String get name;
external set name(String value);
external ImportExportKind get kind;
external set kind(ImportExportKind value);
}
@JS('WebAssembly.Module')
extension type Module._(JSObject _) implements JSObject {
external factory Module(BufferSource bytes);
external static JSArray<ModuleExportDescriptor> exports(Module moduleObject);
external static JSArray<ModuleImportDescriptor> imports(Module moduleObject);
external static JSArray<JSArrayBuffer> customSections(
Module moduleObject,
String sectionName,
);
}
@JS('WebAssembly.Instance')
extension type Instance._(JSObject _) implements JSObject {
external factory Instance(
Module module, [
JSObject importObject,
]);
external JSObject get exports;
}
extension type MemoryDescriptor._(JSObject _) implements JSObject {
external factory MemoryDescriptor({
required int initial,
int maximum,
});
external int get initial;
external set initial(int value);
external int get maximum;
external set maximum(int value);
}
@JS('WebAssembly.Memory')
extension type Memory._(JSObject _) implements JSObject {
external factory Memory(MemoryDescriptor descriptor);
external int grow(int delta);
external JSArrayBuffer get buffer;
}
extension type TableDescriptor._(JSObject _) implements JSObject {
external factory TableDescriptor({
required TableKind element,
required int initial,
int maximum,
});
external TableKind get element;
external set element(TableKind value);
external int get initial;
external set initial(int value);
external int get maximum;
external set maximum(int value);
}
@JS('WebAssembly.Table')
extension type Table._(JSObject _) implements JSObject {
external factory Table(
TableDescriptor descriptor, [
JSAny? value,
]);
external int grow(
int delta, [
JSAny? value,
]);
external JSAny? get(int index);
external void set(
int index, [
JSAny? value,
]);
external int get length;
}
extension type GlobalDescriptor._(JSObject _) implements JSObject {
external factory GlobalDescriptor({
required ValueType value,
bool mutable,
});
external ValueType get value;
external set value(ValueType value);
external bool get mutable;
external set mutable(bool value);
}
@JS('WebAssembly.Global')
extension type Global._(JSObject _) implements JSObject {
external factory Global(
GlobalDescriptor descriptor, [
JSAny? v,
]);
external JSAny? valueOf();
external JSAny? get value;
external set value(JSAny? value);
}