Bug 1915045 Ensure decode tasks are scheduled on BufferingState::Enter() r=media...
[gecko.git] / js / xpconnect / tests / unit / test_resolve_dead_promise.js
blob70615b39c09c3ec1667d69cc19f804f42e279774
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 /* See https://bugzilla.mozilla.org/show_bug.cgi?id=1298597 */
7 function run_test()
9   var sb = Cu.Sandbox("http://www.blah.com");
10   var resolveFun;
11   var p1 = new sb.Promise((res, rej) => {resolveFun = res});
12   var rejectFun;
13   var p2 = new sb.Promise((res, rej) => {rejectFun = rej});
14   Cu.nukeSandbox(sb);
15   Assert.ok(Cu.isDeadWrapper(sb), "sb should be dead");
16   Assert.ok(Cu.isDeadWrapper(p1), "p1 should be dead");
17   Assert.ok(Cu.isDeadWrapper(p2), "p2 should be dead");
19   var exception;
21   try{
22     resolveFun(1);
23     Assert.ok(false);
24   } catch (e) {
25     exception = e;
26   }
27   Assert.ok(exception.toString().includes("can't access dead object"),
28             "Resolving dead wrapped promise should throw");
30   exception = undefined;
31   try{
32     rejectFun(1);
33     Assert.ok(false);
34   } catch (e) {
35     exception = e;
36   }
37   Assert.ok(exception.toString().includes("can't access dead object"),
38             "Rejecting dead wrapped promise should throw");