function run_test() { // Hack around Promise.jsm being stuck on my global Assert.equal(false, PromiseDebugging === undefined); var res; var p = new Promise(function (resolve, reject) { res = resolve; }); var state = PromiseDebugging.getState(p); Assert.equal(state.state, "pending"); do_test_pending(); p.then(function () { var state2 = PromiseDebugging.getState(p); Assert.equal(state2.state, "fulfilled"); Assert.equal(state2.value, 5); do_test_finished(); }); res(5); }