| // META: global=window,dedicatedworker,jsshell |
| |
| test(() => { |
| const argument = { "value": "i32" }; |
| const thisValues = [ |
| undefined, |
| null, |
| true, |
| "", |
| Symbol(), |
| 1, |
| {}, |
| WebAssembly.Global, |
| WebAssembly.Global.prototype, |
| ]; |
| |
| const fn = WebAssembly.Global.prototype.valueOf; |
| |
| for (const thisValue of thisValues) { |
| assert_throws_js(TypeError, () => fn.call(thisValue), `this=${format_value(thisValue)}`); |
| } |
| }, "Branding"); |
| |
| test(() => { |
| const argument = { "value": "i32" }; |
| const global = new WebAssembly.Global(argument, 0); |
| assert_equals(global.valueOf({}), 0); |
| }, "Stray argument"); |