test_import_global.js (1302B)
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/. */ 4 5 add_task(async function testShared() { 6 const ns1 = ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs"); 7 8 const ns2 = ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs", { 9 global: "shared", 10 }); 11 12 Assert.equal(ns1, ns2); 13 Assert.equal(ns1.obj, ns2.obj); 14 }); 15 16 add_task(async function testDevTools() { 17 const ns1 = ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs"); 18 19 const ns2 = ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs", { 20 global: "devtools", 21 }); 22 23 Assert.notEqual(ns1, ns2); 24 Assert.notEqual(ns1.obj, ns2.obj); 25 }); 26 27 add_task(async function testInvalidOptions() { 28 // Unknown value is rejected. 29 Assert.throws(() => { 30 ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs", { 31 global: "invalid", 32 }); 33 }, Error); 34 35 Assert.throws(() => { 36 ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs", { 37 global: globalThis, 38 }); 39 }, Error); 40 41 // Unknown name is ignored. 42 ChromeUtils.importESModule("resource://test/esmified-1.sys.mjs", { 43 global2: "shared", 44 }); 45 });