bug1950360.js (1094B)
1 function wasmEvalText(str, imports, compileOptions) { 2 var binary = wasmTextToBinary(str); 3 var m = new WebAssembly.Module(binary, compileOptions); 4 return new WebAssembly.Instance(m, imports); 5 } 6 var ins0 = wasmEvalText(`(module 7 (func \$fac-acc (export "fac-acc") (param i64 i64) (result i64) 8 (if (result i64) (i64.eqz (local.get 0)) 9 (then (local.get 1)) 10 (else 11 (return_call \$fac-acc 12 (i64.sub (local.get 0) (i64.const 1)) 13 (i64.mul (local.get 0) (local.get 1)) 14 ) 15 ) 16 ) 17 ) 18 )`); 19 var ins1 = wasmEvalText(`(module 20 (import "" "fac-acc" (func \$fac-acc (param i64 i64) (result i64))) 21 (type \$ty (func (param i64 i64) (result i64))) 22 (table \$t 1 1 funcref) 23 (func \$f (export "fac") (param i64) (result i64) 24 local.get 0 25 i64.const 1 26 i32.const 0 27 return_call_indirect \$t (type \$ty) 28 ) 29 (elem \$t (i32.const 0) \$fac-acc) 30 )`, {"": {"fac-acc": ins0.exports["fac-acc"]}}); 31 const check = () => ins1.exports.fac(true); 32 for (var i = 0; i < 100; i++) { 33 oomTest(check); 34 }