tor-browser

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

test_framebindings-07.js (1136B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 add_task(
      7  threadFrontTest(async ({ threadFront, debuggee }) => {
      8    const packet = await executeOnNextTickAndWaitForPause(
      9      () => evalCode(debuggee),
     10      threadFront
     11    );
     12 
     13    const environment = await packet.frame.getEnvironment();
     14    Assert.equal(environment.type, "function");
     15    Assert.equal(environment.bindings.arguments[0].z.value, "z");
     16 
     17    const parent = environment.parent;
     18    Assert.equal(parent.type, "block");
     19    Assert.equal(parent.bindings.variables.banana3.value.class, "Function");
     20 
     21    const grandpa = parent.parent;
     22    Assert.equal(grandpa.type, "function");
     23    Assert.equal(grandpa.bindings.arguments[0].y.value, "y");
     24 
     25    await threadFront.resume();
     26  })
     27 );
     28 
     29 function evalCode(debuggee) {
     30  debuggee.eval(
     31    "function banana(x) {\n" +
     32      "  return function banana2(y) {\n" +
     33      "    return function banana3(z) {\n" +
     34      '      eval("");\n' +
     35      "      debugger;\n" +
     36      "    };\n" +
     37      "  };\n" +
     38      "}\n" +
     39      "banana('x')('y')('z');\n"
     40  );
     41 }