diff --git a/test/js-api/global/constructor.any.js b/test/js-api/global/constructor.any.js index 7c2c02c790..f11ae8af6f 100644 --- a/test/js-api/global/constructor.any.js +++ b/test/js-api/global/constructor.any.js @@ -167,5 +167,29 @@ test(() => { test(() => { const argument = { "value": "v128" }; - assert_throws_js(TypeError, () =>new WebAssembly.Global(argument)); + assert_throws_js(TypeError, () => new WebAssembly.Global(argument)); }, "Construct v128 global"); + +test(() => { + for (let value of [ + undefined, + null, + true, + 1, + -0, + 1.5, + -2n, + Symbol("test"), + "string", + {"an": "object"}, + () => null + ]) { + let global = new WebAssembly.Global({value: "externref"}, value); + assert_Global(global, value); + } +}, "externref global"); + +test(() => { + let global = new WebAssembly.Global({value: "externref"}); + assert_Global(global, undefined); +}, "externref global with default value"); diff --git a/test/js-api/global/value-get-set.any.js b/test/js-api/global/value-get-set.any.js index f95b7ca9e3..c4c058285c 100644 --- a/test/js-api/global/value-get-set.any.js +++ b/test/js-api/global/value-get-set.any.js @@ -150,3 +150,24 @@ test(() => { assert_equals(setter.call(global, 1, {}), undefined); assert_equals(global.value, 1); }, "Stray argument"); + +test(() => { + let global = new WebAssembly.Global({value: "externref", mutable: true}); + for (let value of [ + undefined, + null, + true, + 1, + -0, + 1.5, + -2n, + Symbol("test"), + "string", + {"an": "object"}, + () => null + ]) { + global.value = value; + assert_equals(global.value, value); + assert_equals(global.valueOf(), value); + } +}, "externref global");