diff options
author | Moonchild <moonchild@palemoon.org> | 2020-07-08 12:58:30 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-08-30 09:33:06 +0000 |
commit | 498b1ab0c8db07784badbd2148f372027ef8cc27 (patch) | |
tree | 4b25652523fc84ca588671412b556195cef33d80 /js/src/jit-test/tests/modules/bug-1420420-2.js | |
parent | 2f145b6eda95c08a76711f0393e4d9ebe13a5f92 (diff) | |
download | UXP-498b1ab0c8db07784badbd2148f372027ef8cc27.tar UXP-498b1ab0c8db07784badbd2148f372027ef8cc27.tar.gz UXP-498b1ab0c8db07784badbd2148f372027ef8cc27.tar.lz UXP-498b1ab0c8db07784badbd2148f372027ef8cc27.tar.xz UXP-498b1ab0c8db07784badbd2148f372027ef8cc27.zip |
Issue #618 - Align error handling for module scripts with the spec (again)
This updates module implementation to match spec regarding handling of
instantiation errors, after it was changed yet again, this time to not remember
instantiation errors, but instead immediately rethrow applicable ones.
Ref: BZ 1420420
Diffstat (limited to 'js/src/jit-test/tests/modules/bug-1420420-2.js')
-rw-r--r-- | js/src/jit-test/tests/modules/bug-1420420-2.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/modules/bug-1420420-2.js b/js/src/jit-test/tests/modules/bug-1420420-2.js new file mode 100644 index 000000000..0511e8126 --- /dev/null +++ b/js/src/jit-test/tests/modules/bug-1420420-2.js @@ -0,0 +1,19 @@ +// Test re-instantiation module after failure. + +load(libdir + "asserts.js"); +load(libdir + "dummyModuleResolveHook.js"); + +moduleRepo["good"] = parseModule(`export let x`); + +moduleRepo["y1"] = parseModule(`export let y`); +moduleRepo["y2"] = parseModule(`export let y`); +moduleRepo["bad"] = parseModule(`export* from "y1"; export* from "y2";`); + +moduleRepo["a"] = parseModule(`import* as ns from "good"; import {y} from "bad";`); + +let b = moduleRepo["b"] = parseModule(`import "a";`); +let c = moduleRepo["c"] = parseModule(`import "a";`); + +assertThrowsInstanceOf(() => b.declarationInstantiation(), SyntaxError); +assertThrowsInstanceOf(() => c.declarationInstantiation(), SyntaxError); + |