tor-browser

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

Debugger-findScripts-18.js (1530B)


      1 // In a debuggee with multiple scripts with varying displayURLs (aka //#
      2 // sourceURL), findScripts can filter by displayURL.
      3 
      4 var g = newGlobal({newCompartment: true});
      5 
      6 g.eval("function f(){} //# sourceURL=f.js");
      7 g.eval("function g(){} //# sourceURL=g.js");
      8 g.eval("function h(){}");
      9 
     10 var dbg = new Debugger();
     11 var gw = dbg.addDebuggee(g);
     12 var fw = gw.makeDebuggeeValue(g.f);
     13 var ggw = gw.makeDebuggeeValue(g.g);
     14 var hw = gw.makeDebuggeeValue(g.h);
     15 
     16 var fScripts = dbg.findScripts({ displayURL: "f.js" });
     17 assertEq(fScripts.indexOf(fw.script) != -1, true);
     18 assertEq(fScripts.indexOf(ggw.script), -1);
     19 assertEq(fScripts.indexOf(hw.script), -1);
     20 
     21 
     22 fScripts = dbg.findScripts({ displayURL: "f.js",
     23                             line: 1 });
     24 assertEq(fScripts.indexOf(fw.script) != -1, true);
     25 assertEq(fScripts.indexOf(ggw.script), -1);
     26 assertEq(fScripts.indexOf(hw.script), -1);
     27 
     28 var gScripts = dbg.findScripts({ displayURL: "g.js" });
     29 assertEq(gScripts.indexOf(ggw.script) != -1, true);
     30 assertEq(gScripts.indexOf(fw.script), -1);
     31 assertEq(gScripts.indexOf(hw.script), -1);
     32 
     33 var allScripts = dbg.findScripts();
     34 assertEq(allScripts.indexOf(fw.script) != -1, true);
     35 assertEq(allScripts.indexOf(ggw.script) != -1, true);
     36 assertEq(allScripts.indexOf(hw.script) != -1, true);
     37 
     38 try {
     39  dbg.findScripts({ displayURL: 3 });
     40  // Should never get here because the above line should throw
     41  // JSMSG_UNEXPECTED_TYPE.
     42  assertEq(true, false);
     43 } catch(e) {
     44  assertEq(e.name, "TypeError");
     45  assertEq(e.message.includes("displayURL"), true);
     46 }