1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/debug/Debugger-findScripts-18.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,39 @@ 1.4 +// In a debuggee with multiple scripts with varying displayURLs (aka //# 1.5 +// sourceURL), findScripts can filter by displayURL. 1.6 + 1.7 +var g = newGlobal(); 1.8 + 1.9 +g.eval("function f(){} //# sourceURL=f.js"); 1.10 +g.eval("function g(){} //# sourceURL=g.js"); 1.11 +g.eval("function h(){}"); 1.12 + 1.13 +var dbg = new Debugger(); 1.14 +var gw = dbg.addDebuggee(g); 1.15 +var fw = gw.makeDebuggeeValue(g.f); 1.16 +var ggw = gw.makeDebuggeeValue(g.g); 1.17 +var hw = gw.makeDebuggeeValue(g.h); 1.18 + 1.19 +var fScripts = dbg.findScripts({ displayURL: "f.js" }); 1.20 +assertEq(fScripts.indexOf(fw.script) != -1, true); 1.21 +assertEq(fScripts.indexOf(ggw.script), -1); 1.22 +assertEq(fScripts.indexOf(hw.script), -1); 1.23 + 1.24 +var gScripts = dbg.findScripts({ displayURL: "g.js" }); 1.25 +assertEq(gScripts.indexOf(ggw.script) != -1, true); 1.26 +assertEq(gScripts.indexOf(fw.script), -1); 1.27 +assertEq(gScripts.indexOf(hw.script), -1); 1.28 + 1.29 +var allScripts = dbg.findScripts(); 1.30 +assertEq(allScripts.indexOf(fw.script) != -1, true); 1.31 +assertEq(allScripts.indexOf(ggw.script) != -1, true); 1.32 +assertEq(allScripts.indexOf(hw.script) != -1, true); 1.33 + 1.34 +try { 1.35 + dbg.findScripts({ displayURL: 3 }); 1.36 + // Should never get here because the above line should throw 1.37 + // JSMSG_UNEXPECTED_TYPE. 1.38 + assertEq(true, false); 1.39 +} catch(e) { 1.40 + assertEq(e.name, "TypeError"); 1.41 + assertEq(e.message.contains("displayURL"), true); 1.42 +}