tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Debugger-allowUnobservedAsmJS-01.js (779B)


      1 load(libdir + "asm.js");
      2 
      3 var g = newGlobal({newCompartment: true});
      4 g.parent = this;
      5 g.eval("dbg = new Debugger(parent);");
      6 
      7 // Initial state is to inhibit asm.js.
      8 assertEq(g.dbg.allowUnobservedAsmJS, false);
      9 
     10 var asmFunStr = USE_ASM + 'function f() {} return f';
     11 
     12 // With asm.js inhibited, asm.js should fail with a type error about the
     13 // debugger being on.
     14 assertAsmTypeFail(asmFunStr);
     15 
     16 // With asm.js uninhibited, asm.js linking should work.
     17 g.dbg.allowUnobservedAsmJS = true;
     18 assertEq(asmLink(asmCompile(asmFunStr))(), undefined);
     19 
     20 // Toggling back should inhibit again.
     21 g.dbg.allowUnobservedAsmJS = false;
     22 assertAsmTypeFail(asmFunStr);
     23 
     24 // Removing the global should lift the inhibition.
     25 g.dbg.removeDebuggee(this);
     26 assertEq(asmLink(asmCompile(asmFunStr))(), undefined);