bug-1461448.js (1079B)
1 // |jit-test| skip-if: helperThreadCount() === 0 2 3 gczeal(0); 4 5 let lfPreamble = ` 6 var lfOffThreadGlobal = newGlobal({newCompartment: true}); 7 for (lfLocal in this) 8 try {} catch(lfVare5) {} 9 `; 10 evaluate(lfPreamble); 11 evaluate(` 12 var g = newGlobal({newCompartment: true}); 13 var dbg = new Debugger; 14 var gw = dbg.addDebuggee(g); 15 for (lfLocal in this) 16 if (!(lfLocal in lfOffThreadGlobal)) 17 try { 18 lfOffThreadGlobal[lfLocal] = this[lfLocal]; 19 } catch(lfVare5) {} 20 var g = newGlobal({newCompartment: true}); 21 var gw = dbg.addDebuggee(g); 22 `); 23 lfOffThreadGlobal.offThreadCompileToStencil(` 24 setMarkStackLimit(1); 25 grayRoot()[0] = "foo"; 26 `); 27 var stencil = lfOffThreadGlobal.finishOffThreadStencil(); 28 lfOffThreadGlobal.evalStencil(stencil); 29 eval(` 30 var lfOffThreadGlobal = newGlobal({newCompartment: true}); 31 try { evaluate(\` 32 gczeal(18, 1); 33 grayRoot()[0] = "foo"; 34 let inst = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary( 35 \\\`(module 36 (memory (export "memory") 1 1) 37 )\\\` 38 ))); 39 \`); } catch(exc) {} 40 `);