bug1904644-1.js (816B)
1 function test() { 2 var throwExc = false; 3 var e = {m: {foreign() { 4 if (throwExc) { 5 throw new TypeError("hi"); 6 } 7 }}}; 8 var bin = wasmTextToBinary(` 9 (module 10 (import "m" "foreign" (func $foreign)) 11 (func 12 (export "f") 13 try 14 (call $foreign) 15 end 16 ) 17 )`); 18 var mod = new WebAssembly.Module(bin); 19 var inst = new WebAssembly.Instance(mod, e); 20 for (var i = 0; i < 30; i++) { 21 if (i === 20) { 22 throwExc = true; 23 } 24 var ex = null; 25 try { 26 inst.exports.f(); 27 } catch (e) { 28 ex = e; 29 } 30 if (i >= 20) { 31 assertEq(ex.message, "hi"); 32 } else { 33 assertEq(ex, null); 34 } 35 } 36 } 37 test();