bug1904644-2.js (948B)
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 (param i32) 14 (result i32) 15 (local i32) 16 try 17 call $foreign 18 local.get 0 19 local.set 1 20 catch_all 21 i32.const 12345 22 local.get 0 23 i32.add 24 local.set 1 25 end 26 local.get 1 27 ) 28 )`); 29 var mod = new WebAssembly.Module(bin); 30 var inst = new WebAssembly.Instance(mod, e); 31 for (var i = 0; i < 30; i++) { 32 if (i === 20) { 33 throwExc = true; 34 } 35 var res = inst.exports.f(i); 36 assertEq(res, throwExc ? (12345 + i) : i); 37 } 38 } 39 test();