<!-- Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ --> <!-- Bug 1084065 - Sanity test for interaction between DOM promises and Debugger.prototype.onPromiseResolved. --> <html> <head> <title>Test for interaction with SpiderMonkey's Debugger.prototype.onNewPromise</title> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"> </head> <body> <p id="display"></p> <div id="content" style="display: none"> </div> <pre id="test"> <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); is(Object.prototype.toString.call(new Promise(function () {})), "[object Promise]", "We should have the native DOM promise implementation."); var Cu = Components.utils; Cu.import("resource://gre/modules/jsdebugger.jsm"); var dbgGlobal = new Cu.Sandbox(document.nodePrincipal); addDebuggerToGlobal(dbgGlobal); var dbg = new dbgGlobal.Debugger(this); var wrappedPromise; dbg.onPromiseSettled = function (wp) { wrappedPromise = wp; }; var promise = Promise.resolve(); promise .then(function () { ok(wrappedPromise); is(wrappedPromise.unsafeDereference(), promise); dbg.onPromiseSettled = undefined; }) .then(null, function (e) { ok(false, "Got an unexpected error: " + e); }) .then(SimpleTest.finish); </script> </pre> </body> </html>