michael@0: function run_test() michael@0: { michael@0: Components.utils.import("resource://gre/modules/jsdebugger.jsm"); michael@0: addDebuggerToGlobal(this); michael@0: var g = testGlobal("test1"); michael@0: michael@0: var dbg = new Debugger(); michael@0: dbg.addDebuggee(g); michael@0: dbg.onDebuggerStatement = function(aFrame) { michael@0: let args = aFrame.arguments; michael@0: try { michael@0: args[0]; michael@0: do_check_true(true); michael@0: } catch(ex) { michael@0: do_check_true(false); michael@0: } michael@0: }; michael@0: michael@0: g.eval("function stopMe(arg) {debugger;}"); michael@0: michael@0: g2 = testGlobal("test2"); michael@0: g2.g = g; michael@0: g2.eval("(" + function createBadEvent() { michael@0: let parser = Components.classes["@mozilla.org/xmlextras/domparser;1"].createInstance(Components.interfaces.nsIDOMParser); michael@0: let doc = parser.parseFromString("", "text/xml"); michael@0: g.stopMe(doc.createEvent("MouseEvent")); michael@0: } + ")()"); michael@0: michael@0: dbg.enabled = false; michael@0: }