diff --git a/types/webassembly-js-api/index.d.ts b/types/webassembly-js-api/index.d.ts index 959e7c9ab5..30dec78a57 100644 --- a/types/webassembly-js-api/index.d.ts +++ b/types/webassembly-js-api/index.d.ts @@ -36,6 +36,20 @@ declare namespace WebAssembly { static imports(module: Module): Exports; } + /** + * WebAssembly.Global + */ + interface GlobalDescriptor { + value: 'i32' | 'i64' | 'f32' | 'f64'; + mutable?: boolean; + } + + class Global { + value: number; + constructor(descriptor: GlobalDescriptor, value?: number); + valueOf(): number; + } + /** * WebAssembly.Instance */ diff --git a/types/webassembly-js-api/tsconfig.json b/types/webassembly-js-api/tsconfig.json index 286d2c0fb4..3688b77890 100644 --- a/types/webassembly-js-api/tsconfig.json +++ b/types/webassembly-js-api/tsconfig.json @@ -20,4 +20,4 @@ "index.d.ts", "webassembly-js-api-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/webassembly-js-api/webassembly-js-api-tests.ts b/types/webassembly-js-api/webassembly-js-api-tests.ts index 78d5883e9d..f1ace9b575 100644 --- a/types/webassembly-js-api/webassembly-js-api-tests.ts +++ b/types/webassembly-js-api/webassembly-js-api-tests.ts @@ -36,6 +36,10 @@ debug(`wasmDataU8 is ${valid ? "" : "not "}a valid wasm wasmModule`); let wasmModule = new WebAssembly.Module(wasmDataU8); debug(`wasmModule=${wasmModule}`); +// Global +let wasmGlobal = new WebAssembly.Global({ value: 'i32', mutable: true }, 0); +debug(`wasmGlobal=${wasmGlobal}`); + // CustomSections let nameSections = WebAssembly.Module.customSections(wasmModule, "name"); debug(`Module contains ${nameSections.length} name sections`);