From 3f25d0c8e4d9296f0d45c85c251eab71f076937b Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 3 Jul 2020 13:56:49 +0000 Subject: Issue #618 - Align module instantiation/errors with the updated spec. Store and re-throw module instantiation and evaluation errors. Ref: BZ 1374239, 1394492 --- js/src/jit-test/tests/modules/bad-namespace-created.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 js/src/jit-test/tests/modules/bad-namespace-created.js (limited to 'js/src/jit-test/tests/modules/bad-namespace-created.js') diff --git a/js/src/jit-test/tests/modules/bad-namespace-created.js b/js/src/jit-test/tests/modules/bad-namespace-created.js new file mode 100644 index 000000000..127892d6e --- /dev/null +++ b/js/src/jit-test/tests/modules/bad-namespace-created.js @@ -0,0 +1,17 @@ +// Prior to https://github.com/tc39/ecma262/pull/916 it was possible for a +// module namespace object to be successfully created that was later found to be +// erroneous. Test that this is no longer the case. + +"use strict"; + +load(libdir + "asserts.js"); +load(libdir + "dummyModuleResolveHook.js"); + +moduleRepo['A'] = parseModule('import "B"; export {x} from "C"'); +moduleRepo['B'] = parseModule('import * as a from "A"'); +moduleRepo['C'] = parseModule('export * from "D"; export * from "E"'); +moduleRepo['D'] = parseModule('export let x'); +moduleRepo['E'] = parseModule('export let x'); + +let m = moduleRepo['A']; +assertThrowsInstanceOf(() => m.declarationInstantiation(), SyntaxError); -- cgit v1.2.3