summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/unit/test_getyoungestframe.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/server/tests/unit/test_getyoungestframe.js')
-rw-r--r--devtools/server/tests/unit/test_getyoungestframe.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/devtools/server/tests/unit/test_getyoungestframe.js b/devtools/server/tests/unit/test_getyoungestframe.js
new file mode 100644
index 000000000..035ab5b0c
--- /dev/null
+++ b/devtools/server/tests/unit/test_getyoungestframe.js
@@ -0,0 +1,30 @@
+function run_test()
+{
+ Components.utils.import("resource://gre/modules/jsdebugger.jsm");
+ addDebuggerToGlobal(this);
+ var xpcInspector = Cc["@mozilla.org/jsinspector;1"].getService(Ci.nsIJSInspector);
+ var g = testGlobal("test1");
+
+ var dbg = new Debugger();
+ dbg.uncaughtExceptionHook = testExceptionHook;
+
+ dbg.addDebuggee(g);
+ dbg.onDebuggerStatement = function (aFrame) {
+ do_check_true(aFrame === dbg.getNewestFrame());
+ // Execute from the nested event loop, dbg.getNewestFrame() won't
+ // be working anymore.
+
+ do_execute_soon(function () {
+ try {
+ do_check_true(aFrame === dbg.getNewestFrame());
+ } finally {
+ xpcInspector.exitNestedEventLoop("test");
+ }
+ });
+ xpcInspector.enterNestedEventLoop("test");
+ };
+
+ g.eval("function debuggerStatement() { debugger; }; debuggerStatement();");
+
+ dbg.enabled = false;
+}