Skip to content

Commit b238495

Browse files
authored
[wasm][js-api] Add test case for externref global (#1983)
1 parent 9479f1d commit b238495

2 files changed

Lines changed: 46 additions & 1 deletion

File tree

test/js-api/global/constructor.any.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,5 +167,29 @@ test(() => {
167167

168168
test(() => {
169169
const argument = { "value": "v128" };
170-
assert_throws_js(TypeError, () =>new WebAssembly.Global(argument));
170+
assert_throws_js(TypeError, () => new WebAssembly.Global(argument));
171171
}, "Construct v128 global");
172+
173+
test(() => {
174+
for (let value of [
175+
undefined,
176+
null,
177+
true,
178+
1,
179+
-0,
180+
1.5,
181+
-2n,
182+
Symbol("test"),
183+
"string",
184+
{"an": "object"},
185+
() => null
186+
]) {
187+
let global = new WebAssembly.Global({value: "externref"}, value);
188+
assert_Global(global, value);
189+
}
190+
}, "externref global");
191+
192+
test(() => {
193+
let global = new WebAssembly.Global({value: "externref"});
194+
assert_Global(global, undefined);
195+
}, "externref global with default value");

test/js-api/global/value-get-set.any.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,24 @@ test(() => {
150150
assert_equals(setter.call(global, 1, {}), undefined);
151151
assert_equals(global.value, 1);
152152
}, "Stray argument");
153+
154+
test(() => {
155+
let global = new WebAssembly.Global({value: "externref", mutable: true});
156+
for (let value of [
157+
undefined,
158+
null,
159+
true,
160+
1,
161+
-0,
162+
1.5,
163+
-2n,
164+
Symbol("test"),
165+
"string",
166+
{"an": "object"},
167+
() => null
168+
]) {
169+
global.value = value;
170+
assert_equals(global.value, value);
171+
assert_equals(global.valueOf(), value);
172+
}
173+
}, "externref global");

0 commit comments

Comments
 (0)