diff --git a/src/dynamic-import/catch/nested-arrow.template b/src/dynamic-import/catch/nested-arrow.template index 96aa28b1035bff5b4286525c0de304ef2d58b270..957927a3671c07d31e21b8727b54ab9a1b9defac 100644 --- a/src/dynamic-import/catch/nested-arrow.template +++ b/src/dynamic-import/catch/nested-arrow.template @@ -25,7 +25,7 @@ flags: [async] ---*/ let f = () => { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-async-function-await.template b/src/dynamic-import/catch/nested-async-function-await.template index fb62d11290dbefacc6c91fc8c3d58befd47531c3..99d2957b13ebe44be88f502811e1a11175a0b7a8 100644 --- a/src/dynamic-import/catch/nested-async-function-await.template +++ b/src/dynamic-import/catch/nested-async-function-await.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - await import(/*{ params }*/).catch(error => { + await /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-async-function-return-await.template b/src/dynamic-import/catch/nested-async-function-return-await.template index 75b81e0dc2fbfc183b6e3852a9e16061551da3d7..71e3010746b37f6b79a587bfce843761a7147b56 100644 --- a/src/dynamic-import/catch/nested-async-function-return-await.template +++ b/src/dynamic-import/catch/nested-async-function-return-await.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - return await import(/*{ params }*/).catch(error => { + return await /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-async-function.template b/src/dynamic-import/catch/nested-async-function.template index 3a2ae552836cfeee826f41672d3c10e67109b786..257ac79e12c4ec22e7eeb61e130dbc751c89b983 100644 --- a/src/dynamic-import/catch/nested-async-function.template +++ b/src/dynamic-import/catch/nested-async-function.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-block-labeled.template b/src/dynamic-import/catch/nested-block-labeled.template index ad857641b128e2ef3c1bd950446e11fcab53695a..2d1503dd640a53653f4432e8bd8728c1ecf55879 100644 --- a/src/dynamic-import/catch/nested-block-labeled.template +++ b/src/dynamic-import/catch/nested-block-labeled.template @@ -25,7 +25,7 @@ flags: [async] ---*/ label: { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-block.template b/src/dynamic-import/catch/nested-block.template index 47254e57fe2ad59b45fa5eca435120e230e1fcfc..d17585b1a9e14fae164f7e0863fd0652e331110e 100644 --- a/src/dynamic-import/catch/nested-block.template +++ b/src/dynamic-import/catch/nested-block.template @@ -25,7 +25,7 @@ flags: [async] ---*/ { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-do-while.template b/src/dynamic-import/catch/nested-do-while.template index ffda5199d9712a880691ad1f27d4ae83272099ad..644d83448123824eff3740096e7e4a595bc841f0 100644 --- a/src/dynamic-import/catch/nested-do-while.template +++ b/src/dynamic-import/catch/nested-do-while.template @@ -25,7 +25,7 @@ flags: [async] ---*/ do { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-else.template b/src/dynamic-import/catch/nested-else.template index cc36621adaa324bf1eb108a38ab4da06e61b935e..0b994c52f6bec471eda3f41f716e81d0102a6f92 100644 --- a/src/dynamic-import/catch/nested-else.template +++ b/src/dynamic-import/catch/nested-else.template @@ -27,7 +27,7 @@ flags: [async] if (false) { } else { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-function.template b/src/dynamic-import/catch/nested-function.template index febdb2d6394d131c9f4e045003bbb4496188d23d..311ac33b363ebb2947be05666f2be3a4d3ba1ad3 100644 --- a/src/dynamic-import/catch/nested-function.template +++ b/src/dynamic-import/catch/nested-function.template @@ -25,7 +25,7 @@ flags: [async] ---*/ function f() { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-if.template b/src/dynamic-import/catch/nested-if.template index 78b4f1968713f5670f3b82376a4753dbd3e506d7..60d639fe21a92fe0846d01a709fd83bfe9e5f404 100644 --- a/src/dynamic-import/catch/nested-if.template +++ b/src/dynamic-import/catch/nested-if.template @@ -25,7 +25,7 @@ flags: [async] ---*/ if (true) { - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-while.template b/src/dynamic-import/catch/nested-while.template index 341572885a806549a7374513f3295dcb9fc03133..c2dcdae201bb05a4c6edc004936ecc4484fb0767 100644 --- a/src/dynamic-import/catch/nested-while.template +++ b/src/dynamic-import/catch/nested-while.template @@ -27,7 +27,7 @@ flags: [async] let x = 0; while (!x) { x++; - import(/*{ params }*/).catch(error => { + /*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/catch/nested-with.template b/src/dynamic-import/catch/nested-with.template new file mode 100644 index 0000000000000000000000000000000000000000..e88b46e6741bae3a2ff4c51fe8e75c690524f974 --- /dev/null +++ b/src/dynamic-import/catch/nested-with.template @@ -0,0 +1,31 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/module-code/dynamic-import/catch/nested-with-import-catch- +name: nested with +esid: sec-import-call-runtime-semantics-evaluation +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. +features: [dynamic-import] +flags: [async, noStrict] +---*/ + +with ({}) { + /*{ import }*/.catch(error => { + + /*{ body }*/ + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/src/dynamic-import/catch/top-level.template b/src/dynamic-import/catch/top-level.template index ee26cf4d7b283e041547d3d0d1399058a5f8aae1..099dd891b7e32c553d0d66f20ef41bfc30fe27bd 100644 --- a/src/dynamic-import/catch/top-level.template +++ b/src/dynamic-import/catch/top-level.template @@ -24,7 +24,7 @@ features: [dynamic-import] flags: [async] ---*/ -import(/*{ params }*/).catch(error => { +/*{ import }*/.catch(error => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-arrow-assign-expr.template b/src/dynamic-import/default/nested-arrow-assign-expr.template index 7d6d90aa8e8eaba943471772d3c0b2b13fd0cb01..1692b8e81beee6ff64dd80fef8d6bc71dc2d0a53 100644 --- a/src/dynamic-import/default/nested-arrow-assign-expr.template +++ b/src/dynamic-import/default/nested-arrow-assign-expr.template @@ -24,7 +24,7 @@ features: [dynamic-import] flags: [async] ---*/ -let f = () => import(/*{ params }*/).then(imported => { +let f = () => /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-arrow.template b/src/dynamic-import/default/nested-arrow.template index 061526cac5f036ea3672a8db3e3312cdccd7cb56..d010c20751ca6718809e888781ca6c16301bdd9d 100644 --- a/src/dynamic-import/default/nested-arrow.template +++ b/src/dynamic-import/default/nested-arrow.template @@ -25,7 +25,7 @@ flags: [async] ---*/ let f = () => { - return import(/*{ params }*/).then(imported => { + return /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-async-function-await.template b/src/dynamic-import/default/nested-async-function-await.template index 7e561c6ae1b83e3f880dacd90aa12ac13afa534c..6847734545a059967a69282c9728bb59cca833c1 100644 --- a/src/dynamic-import/default/nested-async-function-await.template +++ b/src/dynamic-import/default/nested-async-function-await.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - await import(/*{ params }*/).then(imported => { + await /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-async-function-return-await.template b/src/dynamic-import/default/nested-async-function-return-await.template index 55e85c71ee81c229858e7321047a2acf0a97e061..79158d65d741238cd58e77fd33243d1c1c825277 100644 --- a/src/dynamic-import/default/nested-async-function-return-await.template +++ b/src/dynamic-import/default/nested-async-function-return-await.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - return await import(/*{ params }*/); + return await /*{ import }*/; } f().then(imported => { diff --git a/src/dynamic-import/default/nested-async-function.template b/src/dynamic-import/default/nested-async-function.template index f83da4142f1f7a978cb3cfd59d9cdb92a69fb4c1..cfc641bb2a4332b9e4f65c12083091d6412092ab 100644 --- a/src/dynamic-import/default/nested-async-function.template +++ b/src/dynamic-import/default/nested-async-function.template @@ -25,7 +25,7 @@ flags: [async] ---*/ async function f() { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-block-labeled.template b/src/dynamic-import/default/nested-block-labeled.template index 71e8125919f352a23d4252ec0228d0fa948536f2..58c57cf27f32507d8de79f51c6876908c8d460fc 100644 --- a/src/dynamic-import/default/nested-block-labeled.template +++ b/src/dynamic-import/default/nested-block-labeled.template @@ -25,7 +25,7 @@ flags: [async] ---*/ label: { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-block.template b/src/dynamic-import/default/nested-block.template index ebfce21e35d358654e0d0d4fd170282dde675af6..5ca6ac488bbdf36b4506d009bb9a602418bf4156 100644 --- a/src/dynamic-import/default/nested-block.template +++ b/src/dynamic-import/default/nested-block.template @@ -25,7 +25,7 @@ flags: [async] ---*/ { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-do-while.template b/src/dynamic-import/default/nested-do-while.template index 902b3236e9fb2232fd3d5fd731189618ae7d11a1..204da1c37f83a6f01ef1be79ead85b5d60531388 100644 --- a/src/dynamic-import/default/nested-do-while.template +++ b/src/dynamic-import/default/nested-do-while.template @@ -25,7 +25,7 @@ flags: [async] ---*/ do { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-else.template b/src/dynamic-import/default/nested-else.template index b26a128e16df70eb2b17cefc3c5fbbaba1b2004f..1cb4be08f6e1af2aeea005fa54aee64235f6bf4c 100644 --- a/src/dynamic-import/default/nested-else.template +++ b/src/dynamic-import/default/nested-else.template @@ -27,7 +27,7 @@ flags: [async] if (false) { } else { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-function.template b/src/dynamic-import/default/nested-function.template index 48e60f4bfc70fb2f88d189ed697d2ed585a6d895..b99372ff819c62488681c50414406e672734e383 100644 --- a/src/dynamic-import/default/nested-function.template +++ b/src/dynamic-import/default/nested-function.template @@ -25,7 +25,7 @@ flags: [async] ---*/ function f() { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-if-braceless.template b/src/dynamic-import/default/nested-if-braceless.template index 907dd35e9eababaf4eca6a1677a7644a1ec53e6f..2374e28c29597dd05c15c02f725301f4a990c49c 100644 --- a/src/dynamic-import/default/nested-if-braceless.template +++ b/src/dynamic-import/default/nested-if-braceless.template @@ -24,7 +24,7 @@ features: [dynamic-import] flags: [async] ---*/ -if (true) import(/*{ params }*/).then(imported => { +if (true) /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-if.template b/src/dynamic-import/default/nested-if.template index c8fb0c83e6c2af48b289f3f6ba15f776e7125456..9c07bf8514498349c32c58a6ee4595afd4da3b7c 100644 --- a/src/dynamic-import/default/nested-if.template +++ b/src/dynamic-import/default/nested-if.template @@ -25,7 +25,7 @@ flags: [async] ---*/ if (true) { - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-while.template b/src/dynamic-import/default/nested-while.template index fa2a103a2f6205bf0090e14e5bb145ee3dedb6e3..97c400d0f0d459eebc8e2d9b91b3004943f79f5e 100644 --- a/src/dynamic-import/default/nested-while.template +++ b/src/dynamic-import/default/nested-while.template @@ -27,7 +27,7 @@ flags: [async] let x = 0; while (!x) { x++; - import(/*{ params }*/).then(imported => { + /*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/default/nested-with.template b/src/dynamic-import/default/nested-with.template new file mode 100644 index 0000000000000000000000000000000000000000..05203214971a8b7663828dbb08a6a3cfaecb48af --- /dev/null +++ b/src/dynamic-import/default/nested-with.template @@ -0,0 +1,30 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/module-code/dynamic-import/usage/nested-with-import-then- +name: nested with +esid: sec-import-call-runtime-semantics-evaluation +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. +features: [dynamic-import] +flags: [async, noStrict] +---*/ + +with ({}) { + /*{ import }*/.then(imported => { + + /*{ body }*/ + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/src/dynamic-import/default/top-level.template b/src/dynamic-import/default/top-level.template index 9982059a0992d06d78a460615cf34791c27a06a5..bd46db1fcfe96fb552b8d80c05c077500151f52d 100644 --- a/src/dynamic-import/default/top-level.template +++ b/src/dynamic-import/default/top-level.template @@ -24,7 +24,7 @@ features: [dynamic-import] flags: [async] ---*/ -import(/*{ params }*/).then(imported => { +/*{ import }*/.then(imported => { /*{ body }*/ diff --git a/src/dynamic-import/eval-gtbndng-indirect-update-dflt.case b/src/dynamic-import/eval-gtbndng-indirect-update-dflt.case index ae7310a5b01271a33cfbb8c12c7f0fc7b2ed04dc..4c0bd0aa568186c0d3345de742fcd9df4ca6b207 100644 --- a/src/dynamic-import/eval-gtbndng-indirect-update-dflt.case +++ b/src/dynamic-import/eval-gtbndng-indirect-update-dflt.case @@ -20,8 +20,8 @@ info: | template: default ---*/ -//- params -'./eval-gtbndng-indirect-update-dflt_FIXTURE.js' +//- import +import('./eval-gtbndng-indirect-update-dflt_FIXTURE.js') //- body assert.sameValue(imported.default(), 1); assert.sameValue(imported.default, 2); diff --git a/src/dynamic-import/eval-gtbndng-indirect-update.case b/src/dynamic-import/eval-gtbndng-indirect-update.case index 030b53291411bbd0dec4804f93d59491d9930322..3072affae02d90000e405c150a2afe26e5dc0ca6 100644 --- a/src/dynamic-import/eval-gtbndng-indirect-update.case +++ b/src/dynamic-import/eval-gtbndng-indirect-update.case @@ -21,8 +21,8 @@ includes: [fnGlobalObject.js] template: default ---*/ -//- params -'./eval-gtbndng-indirect-update_FIXTURE.js' +//- import +import('./eval-gtbndng-indirect-update_FIXTURE.js') //- body assert.sameValue(imported.x, 1); diff --git a/src/dynamic-import/eval-rqstd-abrupt-typeerror.case b/src/dynamic-import/eval-rqstd-abrupt-typeerror.case index 371b0d680043e44f62cf600c964cdea89fc27efe..f5dddeba9da7278a686ba6ab7b65c8a2b69a5f94 100644 --- a/src/dynamic-import/eval-rqstd-abrupt-typeerror.case +++ b/src/dynamic-import/eval-rqstd-abrupt-typeerror.case @@ -14,7 +14,7 @@ info: | template: catch ---*/ -//- params -'./eval-rqstd-abrupt-err-type_FIXTURE.js' +//- import +import('./eval-rqstd-abrupt-err-type_FIXTURE.js') //- body assert.sameValue(error.name, 'TypeError'); diff --git a/src/dynamic-import/eval-rqstd-abrupt-urierror.case b/src/dynamic-import/eval-rqstd-abrupt-urierror.case index bff657b556e0e30203c8cce0c76a5ac740a9d365..c8ed90897f257719bb3fd81e617c94ae90bf6f8c 100644 --- a/src/dynamic-import/eval-rqstd-abrupt-urierror.case +++ b/src/dynamic-import/eval-rqstd-abrupt-urierror.case @@ -14,7 +14,7 @@ info: | template: catch ---*/ -//- params -'./eval-rqstd-abrupt-err-uri_FIXTURE.js' +//- import +import('./eval-rqstd-abrupt-err-uri_FIXTURE.js') //- body assert.sameValue(error.name, 'URIError'); diff --git a/src/dynamic-import/file-does-not-exist.case b/src/dynamic-import/file-does-not-exist.case new file mode 100644 index 0000000000000000000000000000000000000000..dd869ffc06458f578e71197ca626f5342efc4902 --- /dev/null +++ b/src/dynamic-import/file-does-not-exist.case @@ -0,0 +1,16 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: > + Non existent file can't resolve to a Script or Module Record +esid: sec-hostresolveimportedmodule +info: | + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. +template: catch +---*/ + +//- import +import('./THIS_FILE_DOES_NOT_EXIST.js') +//- body +assert.notSameValue(typeof error, 'undefined'); diff --git a/src/dynamic-import/instn-iee-err-ambiguous-import.case b/src/dynamic-import/instn-iee-err-ambiguous-import.case index 184744db3f33af53884bb28e82a8aaf384a0b38a..74de078676f59d61a2640c6fe2f509f0ba66bc5f 100644 --- a/src/dynamic-import/instn-iee-err-ambiguous-import.case +++ b/src/dynamic-import/instn-iee-err-ambiguous-import.case @@ -34,7 +34,7 @@ info: | template: catch ---*/ -//- params -'./instn-iee-err-ambiguous-export_FIXTURE.js' +//- import +import('./instn-iee-err-ambiguous-export_FIXTURE.js') //- body assert.sameValue(error.name, 'SyntaxError'); diff --git a/src/dynamic-import/instn-iee-err-circular.case b/src/dynamic-import/instn-iee-err-circular.case index 6b34395f17aa71880c9ba8a4fb92e64c8a4cb0b3..a1fd29ef790b03c180199372c93160b65d5c35f4 100644 --- a/src/dynamic-import/instn-iee-err-circular.case +++ b/src/dynamic-import/instn-iee-err-circular.case @@ -23,7 +23,7 @@ info: | template: catch ---*/ -//- params -'./instn-iee-err-circular-1_FIXTURE.js' +//- import +import('./instn-iee-err-circular-1_FIXTURE.js') //- body assert.sameValue(error.name, 'SyntaxError'); diff --git a/src/dynamic-import/is-call-expression-square-brackets.case b/src/dynamic-import/is-call-expression-square-brackets.case new file mode 100644 index 0000000000000000000000000000000000000000..9038263ffc96fc522a43dc750db0ea3460fc3dcd --- /dev/null +++ b/src/dynamic-import/is-call-expression-square-brackets.case @@ -0,0 +1,11 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: ImportCall is a CallExpression, it can be followed by square brackets +template: default +---*/ + +//- import +import('./dynamic-import-module_FIXTURE.js')['then'](x => x) +//- body +assert.sameValue(imported.x, 1); diff --git a/src/dynamic-import/nested-imports.case b/src/dynamic-import/nested-imports.case new file mode 100644 index 0000000000000000000000000000000000000000..db7b3683914ad26ea4455bc0d9f8750ccd0c975c --- /dev/null +++ b/src/dynamic-import/nested-imports.case @@ -0,0 +1,9 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: ImportCall is a CallExpression can be nested in other import calls +template: syntax/valid +---*/ + +//- import +import(import(import('./empty_FIXTURE.js'))) diff --git a/src/dynamic-import/not-extensible-args.case b/src/dynamic-import/not-extensible-args.case new file mode 100644 index 0000000000000000000000000000000000000000..655444498a3422e6ba9db612d0c53b97961c8e4b --- /dev/null +++ b/src/dynamic-import/not-extensible-args.case @@ -0,0 +1,16 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: ImportCall is not extensible - no arguments list +template: syntax/invalid +info: | + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +//- import +import('', '') diff --git a/src/dynamic-import/not-extensible-no-trailing-comma.case b/src/dynamic-import/not-extensible-no-trailing-comma.case new file mode 100644 index 0000000000000000000000000000000000000000..3d97a3b9d9ce39e88c2a71bdb31d94b2e37e22ee --- /dev/null +++ b/src/dynamic-import/not-extensible-no-trailing-comma.case @@ -0,0 +1,16 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: ImportCall is not extensible - trailing comma +template: syntax/invalid +info: | + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +//- import +import('',) diff --git a/src/dynamic-import/returns-promise.case b/src/dynamic-import/returns-promise.case index 0160b0704de9183a98e1e85cfd599974f005ba2d..e03f674d3187a5f96a25f8d50a67e4f8a4be956c 100644 --- a/src/dynamic-import/returns-promise.case +++ b/src/dynamic-import/returns-promise.case @@ -6,7 +6,7 @@ desc: Dynamic import() returns a Promise object. template: default ---*/ -//- params -'./dynamic-import-module_FIXTURE.js' +//- import +import('./dynamic-import-module_FIXTURE.js') //- body assert.sameValue(imported.x, 1); diff --git a/src/dynamic-import/script-code-valid.case b/src/dynamic-import/script-code-valid.case new file mode 100644 index 0000000000000000000000000000000000000000..1c4f813a0668348a3b4518bbffe48eecb3790a54 --- /dev/null +++ b/src/dynamic-import/script-code-valid.case @@ -0,0 +1,14 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: import() can be used in script code +template: syntax/valid +---*/ + +//- setup +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + +//- import +import('./script-code-valid.js') diff --git a/src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template b/src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template index 98ee16f6a1c89cd50bfe0f2040e04c876bd178d2..639ec1a23c97104d1035ee919b8554fd9bc7a70b 100644 --- a/src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template +++ b/src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-arrow.template b/src/dynamic-import/syntax/invalid/nested-arrow.template index 5a50736bae763a2b1b30289b7c1b68a6949d22d6..f92d615bc0ccdbbbf4ff8868e16123534d3c400b 100644 --- a/src/dynamic-import/syntax/invalid/nested-arrow.template +++ b/src/dynamic-import/syntax/invalid/nested-arrow.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-async-function-await.template b/src/dynamic-import/syntax/invalid/nested-async-function-await.template index 4d433c2b1f0508e0dfcbf01ce89f4a609959579e..74087382e113ab83e47944f4dec7b785d6015c9f 100644 --- a/src/dynamic-import/syntax/invalid/nested-async-function-await.template +++ b/src/dynamic-import/syntax/invalid/nested-async-function-await.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-async-function-return-await.template b/src/dynamic-import/syntax/invalid/nested-async-function-return-await.template index 34c7097634621567ab5bbcc348acee290bae764d..661c80920f678a51d27b18a5bdd998b191c42429 100644 --- a/src/dynamic-import/syntax/invalid/nested-async-function-return-await.template +++ b/src/dynamic-import/syntax/invalid/nested-async-function-return-await.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-async-function.template b/src/dynamic-import/syntax/invalid/nested-async-function.template index d84cc931edea39d3924579850f3a1787ef7a5f96..5cb6c074be0eeacf6a8e72d51511a8032ed0ae36 100644 --- a/src/dynamic-import/syntax/invalid/nested-async-function.template +++ b/src/dynamic-import/syntax/invalid/nested-async-function.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-block-labeled.template b/src/dynamic-import/syntax/invalid/nested-block-labeled.template index 2c37acf00882df555a819ec3971bbac7b8759101..e1c86d209f562ccac56bd22001db553fa321914a 100644 --- a/src/dynamic-import/syntax/invalid/nested-block-labeled.template +++ b/src/dynamic-import/syntax/invalid/nested-block-labeled.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-block.template b/src/dynamic-import/syntax/invalid/nested-block.template index d569536bb9b182f364db6140b6e0b82e310f762e..9f8a6e3b6cc8f076a2042135dfdba1609b4e573a 100644 --- a/src/dynamic-import/syntax/invalid/nested-block.template +++ b/src/dynamic-import/syntax/invalid/nested-block.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-do-while.template b/src/dynamic-import/syntax/invalid/nested-do-while.template index 73e567579d51455c3a5220b47f5cadb43f58daae..9d8c705c2e093ec868ee479208ae70ec2c0f6fa0 100644 --- a/src/dynamic-import/syntax/invalid/nested-do-while.template +++ b/src/dynamic-import/syntax/invalid/nested-do-while.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-else-braceless.template b/src/dynamic-import/syntax/invalid/nested-else-braceless.template index 61989c9b593a7df1a19766f4166bc257ffadc919..2a9997ad46d44469a470663f07e77daecfe16d49 100644 --- a/src/dynamic-import/syntax/invalid/nested-else-braceless.template +++ b/src/dynamic-import/syntax/invalid/nested-else-braceless.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-else.template b/src/dynamic-import/syntax/invalid/nested-else.template index 14017d2c5e1a3771b8625d563a0fe4f8262193e6..2042c316628e97e858ef39a2cf56373bdbe52830 100644 --- a/src/dynamic-import/syntax/invalid/nested-else.template +++ b/src/dynamic-import/syntax/invalid/nested-else.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-function-return.template b/src/dynamic-import/syntax/invalid/nested-function-return.template index 1590943656cdf40e32c8816de85f3b77d416a6c1..875e9131fbd1caeb86450d35d1e7ef16d843997b 100644 --- a/src/dynamic-import/syntax/invalid/nested-function-return.template +++ b/src/dynamic-import/syntax/invalid/nested-function-return.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-function.template b/src/dynamic-import/syntax/invalid/nested-function.template index e81ddf9c9aa66d8f9967bcab9f39f7e738a05d9c..df99408228a04d19ffe6d6d5cdf24763369ce77c 100644 --- a/src/dynamic-import/syntax/invalid/nested-function.template +++ b/src/dynamic-import/syntax/invalid/nested-function.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-if-braceless.template b/src/dynamic-import/syntax/invalid/nested-if-braceless.template index 7f51cb411b9cb75a27d811ad2d6444aef1366443..820a1161ca2543bf7f61e33c9b974035a1fbcde4 100644 --- a/src/dynamic-import/syntax/invalid/nested-if-braceless.template +++ b/src/dynamic-import/syntax/invalid/nested-if-braceless.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-if.template b/src/dynamic-import/syntax/invalid/nested-if.template index 830eab471b025d4d06cbbb6463cdbcac8f58d54d..202e3517efe2568e9e07a6649a33ca8f83cc1569 100644 --- a/src/dynamic-import/syntax/invalid/nested-if.template +++ b/src/dynamic-import/syntax/invalid/nested-if.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-while.template b/src/dynamic-import/syntax/invalid/nested-while.template index daeb7b4a447d5642feba19a29c80b43390a02477..a2c27248ef358435566dfe3bfa545a40b259730b 100644 --- a/src/dynamic-import/syntax/invalid/nested-while.template +++ b/src/dynamic-import/syntax/invalid/nested-while.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/invalid/nested-with.template b/src/dynamic-import/syntax/invalid/nested-with.template new file mode 100644 index 0000000000000000000000000000000000000000..225b9b44badefc6a08bb9b30102ec1501cc1e697 --- /dev/null +++ b/src/dynamic-import/syntax/invalid/nested-with.template @@ -0,0 +1,32 @@ +// Copyright (C) 2018 Rick Waldron. All rights reserved. +// Copyright (C) 2018 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/module-code/dynamic-import/syntax/invalid/nested-with- +name: nested with syntax +esid: sec-import-call-runtime-semantics-evaluation +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. +features: [dynamic-import] +flags: [noStrict] +negative: + phase: parse + type: SyntaxError +---*/ + +throw "Test262: This statement should not be evaluated."; + +with ({}) { + /*{ import }*/; +} diff --git a/src/dynamic-import/syntax/invalid/top-level.template b/src/dynamic-import/syntax/invalid/top-level.template index c85c6393ebc57c599eefbdec79b04e75215e228f..31fb845cb3d21171b5a47ae95bce1299ced0d7af 100644 --- a/src/dynamic-import/syntax/invalid/top-level.template +++ b/src/dynamic-import/syntax/invalid/top-level.template @@ -8,8 +8,6 @@ esid: sec-import-call-runtime-semantics-evaluation info: | ImportCall : import( AssignmentExpression ) - -flags: [module] features: [dynamic-import] negative: phase: parse diff --git a/src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template b/src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template index 1e3b61b9d5ada4716d1c963c0b84e6eb122eaf1d..5b06b5c8a106a4b501cbf56cdf59b90113647ddd 100644 --- a/src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template +++ b/src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-arrow.template b/src/dynamic-import/syntax/valid/nested-arrow.template index f906eaa4dd1de93639cc8d51f69f290711ca2624..491052c1572adc526b4d91dda322b33b4e31b9af 100644 --- a/src/dynamic-import/syntax/valid/nested-arrow.template +++ b/src/dynamic-import/syntax/valid/nested-arrow.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-async-function-await.template b/src/dynamic-import/syntax/valid/nested-async-function-await.template index 0480ab68fda99065f4ac65978d71feabd702d335..1072d23a06630d37f36fbeffa5000b68e34b6ee1 100644 --- a/src/dynamic-import/syntax/valid/nested-async-function-await.template +++ b/src/dynamic-import/syntax/valid/nested-async-function-await.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-async-function-return-await.template b/src/dynamic-import/syntax/valid/nested-async-function-return-await.template index d9063ca78f55f21910170a651c3b75b387652bef..6ae8c305b54133b43019d8b650ee9722118d896c 100644 --- a/src/dynamic-import/syntax/valid/nested-async-function-return-await.template +++ b/src/dynamic-import/syntax/valid/nested-async-function-return-await.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-async-function.template b/src/dynamic-import/syntax/valid/nested-async-function.template index f358c16314566d1fcf6fc127d81461b268251d84..cec45979baee6c5c1de0f8261b2829763a5bb0c2 100644 --- a/src/dynamic-import/syntax/valid/nested-async-function.template +++ b/src/dynamic-import/syntax/valid/nested-async-function.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-block-labeled.template b/src/dynamic-import/syntax/valid/nested-block-labeled.template index 970edc5fb7805d1de5f93140ab1087ea622a6f83..cb85b8bcd375967852f997d0cceedeb267876643 100644 --- a/src/dynamic-import/syntax/valid/nested-block-labeled.template +++ b/src/dynamic-import/syntax/valid/nested-block-labeled.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-block.template b/src/dynamic-import/syntax/valid/nested-block.template index 38e23565162dd9059e1cf146cf12957963ce19c6..18d711ee761145fe93bfc6d7d5370f988e479326 100644 --- a/src/dynamic-import/syntax/valid/nested-block.template +++ b/src/dynamic-import/syntax/valid/nested-block.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-do-while.template b/src/dynamic-import/syntax/valid/nested-do-while.template index a269d99144a2cddca4293a3b1be2ab27eeec856b..b2c71cd73f9a9b7208e2cd904dffc0c0e8150e3e 100644 --- a/src/dynamic-import/syntax/valid/nested-do-while.template +++ b/src/dynamic-import/syntax/valid/nested-do-while.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-else-braceless.template b/src/dynamic-import/syntax/valid/nested-else-braceless.template index 86948d93027255caa641f42b8a49ffcb67be71a9..f031a07c5ca79eb875b7145ec4a8096b385aeb23 100644 --- a/src/dynamic-import/syntax/valid/nested-else-braceless.template +++ b/src/dynamic-import/syntax/valid/nested-else-braceless.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-else.template b/src/dynamic-import/syntax/valid/nested-else.template index 1f93708b692cff40108c74e62aa6a4c9f696e49e..81c10cdcfa6e2812243089edbc94533c79def157 100644 --- a/src/dynamic-import/syntax/valid/nested-else.template +++ b/src/dynamic-import/syntax/valid/nested-else.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-function-return.template b/src/dynamic-import/syntax/valid/nested-function-return.template index db04a04757e54297c28c37b36f171b06939e7e9c..619d369cb1f790e330d350aea0fcf7cad674bf41 100644 --- a/src/dynamic-import/syntax/valid/nested-function-return.template +++ b/src/dynamic-import/syntax/valid/nested-function-return.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-function.template b/src/dynamic-import/syntax/valid/nested-function.template index 8fd7eff00dce5e181c62ac57c9c947eafcaf8fa9..25c730bba680af302737168bce0256842db87c18 100644 --- a/src/dynamic-import/syntax/valid/nested-function.template +++ b/src/dynamic-import/syntax/valid/nested-function.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-if-braceless.template b/src/dynamic-import/syntax/valid/nested-if-braceless.template index 0cd924889fd8bd33ee1ee3fd0b773f347bb53a22..a620bad7e37831bc11dc70b28615257c70168cb8 100644 --- a/src/dynamic-import/syntax/valid/nested-if-braceless.template +++ b/src/dynamic-import/syntax/valid/nested-if-braceless.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-if.template b/src/dynamic-import/syntax/valid/nested-if.template index 5cebc7a6281d20e9929f310973ffc1962b4e71fd..a8add970defae4ffa3c972b028f547bca574c2e1 100644 --- a/src/dynamic-import/syntax/valid/nested-if.template +++ b/src/dynamic-import/syntax/valid/nested-if.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - - features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-while.template b/src/dynamic-import/syntax/valid/nested-while.template index ac2cd12bf151a4e3e503c4b2a1752ad62cf7bd96..d1cffee34988bc0afce0b2af2be57f3a4b830a04 100644 --- a/src/dynamic-import/syntax/valid/nested-while.template +++ b/src/dynamic-import/syntax/valid/nested-while.template @@ -18,8 +18,6 @@ info: | 7. IfAbruptRejectPromise(specifierString, promiseCapability). 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). 9. Return promiseCapability.[[Promise]]. - -flags: [module] features: [dynamic-import] ---*/ diff --git a/src/dynamic-import/syntax/valid/nested-with.template b/src/dynamic-import/syntax/valid/nested-with.template new file mode 100644 index 0000000000000000000000000000000000000000..8ee2d5a61c888eeaacb7eb01013800f6e40fec8f --- /dev/null +++ b/src/dynamic-import/syntax/valid/nested-with.template @@ -0,0 +1,27 @@ +// Copyright (C) 2018 Rick Waldron. All rights reserved. +// Copyright (C) 2018 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/module-code/dynamic-import/syntax/valid/nested-with- +name: nested with syntax +esid: sec-import-call-runtime-semantics-evaluation +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. +features: [dynamic-import] +flags: [noStrict] +---*/ + +with ({}) { + /*{ import }*/; +} diff --git a/src/dynamic-import/syntax/valid/top-level.template b/src/dynamic-import/syntax/valid/top-level.template index 33387103d8542a4d6c411b15b86086592f399cf2..ba421abeec7480c0926f52c339b604a08d5549bc 100644 --- a/src/dynamic-import/syntax/valid/top-level.template +++ b/src/dynamic-import/syntax/valid/top-level.template @@ -8,8 +8,6 @@ esid: sec-import-call-runtime-semantics-evaluation info: | ImportCall : import( AssignmentExpression ) - -flags: [module] features: [dynamic-import] ---*/ diff --git a/test/language/module-code/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..e20fea77bb00ea9dffdd3924b66d159c1a05f1fa --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-arrow.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested arrow) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +let f = () => { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +}; + +f(); diff --git a/test/language/module-code/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..dc7aed766ddc4352faf43e4dc288d1f08970ae8b --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-async-function-await.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested in async function, awaited) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +async function f() { + await import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} + +f(); diff --git a/test/language/module-code/dynamic-import/catch/nested-async-function-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-async-function-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..cb69b14cefaf9680b7110a78e0716d7a8016164e --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-async-function-file-does-not-exist.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-async-function.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested in async function) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +async function f() { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} + +f(); + diff --git a/test/language/module-code/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..9ed17fc2f283c02f988f3ecdeb3dc417580bad99 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-async-function-return-await.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested in async function, returns awaited) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +async function f() { + return await import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} + +f(); diff --git a/test/language/module-code/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..b15eca60ac060ce974094317c42bb9684b629081 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-block.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested block) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +{ + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +}; diff --git a/test/language/module-code/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..b111ce36c005336709d3aeaa39a0d2059b775854 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-block-labeled.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +label: { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +}; diff --git a/test/language/module-code/dynamic-import/catch/nested-do-while-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-do-while-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..7dd7497a8ac7498d67a0d34da1451c9639c3aee0 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-do-while-file-does-not-exist.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-do-while.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +do { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} while (false); diff --git a/test/language/module-code/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..089f06a196a7de95ff10c833ea764e065cefbba5 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-else.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested else) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +if (false) { + +} else { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} diff --git a/test/language/module-code/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..ba5f1660af7f0ff6505fc83793c6f85af2462326 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-function.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested function) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +function f() { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} +f(); diff --git a/test/language/module-code/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..623ae7166236fa2622c5108e19645dd48ebaa465 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-if.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested if) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +if (true) { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} diff --git a/test/language/module-code/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..671238e7c353af7602e9ae4de3b846e140757822 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-while.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested while) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +let x = 0; +while (!x) { + x++; + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +}; diff --git a/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-typeerror.js b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-typeerror.js new file mode 100644 index 0000000000000000000000000000000000000000..cf8b175614cfc93e51a8dd345e565783c4105d3f --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-typeerror.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/eval-rqstd-abrupt-typeerror.case +// - src/dynamic-import/catch/nested-with.template +/*--- +description: Abrupt completion during module evaluation precludes further evaluation (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + [...] + 6. For each String required that is an element of + module.[[RequestedModules]] do, + a. Let requiredModule be ? HostResolveImportedModule(module, required). + b. Perform ? requiredModule.ModuleEvaluation(). + +---*/ + +with ({}) { + import('./eval-rqstd-abrupt-err-type_FIXTURE.js').catch(error => { + + assert.sameValue(error.name, 'TypeError'); + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-urierror.js b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-urierror.js new file mode 100644 index 0000000000000000000000000000000000000000..7544674b0bdb3b36c661be904965c92f71ff31a9 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-eval-rqstd-abrupt-urierror.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/eval-rqstd-abrupt-urierror.case +// - src/dynamic-import/catch/nested-with.template +/*--- +description: Abrupt completion during module evaluation precludes further evaluation (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + [...] + 6. For each String required that is an element of + module.[[RequestedModules]] do, + a. Let requiredModule be ? HostResolveImportedModule(module, required). + b. Perform ? requiredModule.ModuleEvaluation(). + +---*/ + +with ({}) { + import('./eval-rqstd-abrupt-err-uri_FIXTURE.js').catch(error => { + + assert.sameValue(error.name, 'URIError'); + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/test/language/module-code/dynamic-import/catch/nested-with-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..082c42f568af3ce9417f5574b63a90630811057e --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-file-does-not-exist.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/nested-with.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +with ({}) { + import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-ambiguous-import.js b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-ambiguous-import.js new file mode 100644 index 0000000000000000000000000000000000000000..028e8d510457ea0b80e04643c81514f103a80e95 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-ambiguous-import.js @@ -0,0 +1,60 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/instn-iee-err-ambiguous-import.case +// - src/dynamic-import/catch/nested-with.template +/*--- +description: IndirectExportEntries validation - ambiguous imported bindings (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + [...] + 9. For each ExportEntry Record e in module.[[IndirectExportEntries]], do + a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « », « »). + b. If resolution is null or resolution is "ambiguous", throw a + SyntaxError exception. + [...] + + 15.2.1.16.3 ResolveExport + + [...] + 9. Let starResolution be null. + 10. For each ExportEntry Record e in module.[[StarExportEntries]], do + a. Let importedModule be ? HostResolveImportedModule(module, + e.[[ModuleRequest]]). + b. Let resolution be ? importedModule.ResolveExport(exportName, + resolveSet, exportStarSet). + c. If resolution is "ambiguous", return "ambiguous". + d. If resolution is not null, then + i. If starResolution is null, let starResolution be resolution. + ii. Else, + 1. Assert: there is more than one * import that includes the + requested name. + 2. If resolution.[[Module]] and starResolution.[[Module]] are + not the same Module Record or + SameValue(resolution.[[BindingName]], + starResolution.[[BindingName]]) is false, return "ambiguous". + +---*/ + +with ({}) { + import('./instn-iee-err-ambiguous-export_FIXTURE.js').catch(error => { + + assert.sameValue(error.name, 'SyntaxError'); + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-circular.js b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-circular.js new file mode 100644 index 0000000000000000000000000000000000000000..07dd99c5019d9b3192e3ded3d0cc4d92ffbe8625 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/nested-with-import-catch-instn-iee-err-circular.js @@ -0,0 +1,49 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/instn-iee-err-circular.case +// - src/dynamic-import/catch/nested-with.template +/*--- +description: IndirectExportEntries validation - circular imported bindings (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + [...] + 9. For each ExportEntry Record e in module.[[IndirectExportEntries]], do + a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « », « »). + b. If resolution is null or resolution is "ambiguous", throw a + SyntaxError exception. + [...] + + 15.2.1.16.3 ResolveExport + + [...] + 2. For each Record {[[Module]], [[ExportName]]} r in resolveSet, do: + a. If module and r.[[Module]] are the same Module Record and + SameValue(exportName, r.[[ExportName]]) is true, then + i. Assert: this is a circular import request. + ii. Return null. + +---*/ + +with ({}) { + import('./instn-iee-err-circular-1_FIXTURE.js').catch(error => { + + assert.sameValue(error.name, 'SyntaxError'); + + }).then($DONE, $DONE); +} + \ No newline at end of file diff --git a/test/language/module-code/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js b/test/language/module-code/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js new file mode 100644 index 0000000000000000000000000000000000000000..cbf8c6913221b1598b6a89bbd51292c623d56165 --- /dev/null +++ b/test/language/module-code/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/file-does-not-exist.case +// - src/dynamic-import/catch/top-level.template +/*--- +description: Non existent file can't resolve to a Script or Module Record (top level) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + If a Module Record corresponding to the pair referencingModulereferencingScriptOrModule, + specifier does not exist or cannot be created, an exception must be thrown. + +---*/ + +import('./THIS_FILE_DOES_NOT_EXIST.js').catch(error => { + + assert.notSameValue(typeof error, 'undefined'); + +}).then($DONE, $DONE); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js index 96a8bb62471b251709598357f410057c9a1f2001..1c22154efb03ac7b8d9a0d1112f06cbf6c8397dd 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js index 825bdf5c31337669f0311246254dfe8ed1e7dff5..cffc0b81b83420a7e645bde1436a8e0537b174c2 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..649537df22284ebef20ced849a13763ed72553d5 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template +/*--- +description: ImportCall is not extensible - no arguments list (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let f = () => import('', ''); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..f567a656b67bbf4c6b187b1493920884624fc66b --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-arrow-assignment-expression.template +/*--- +description: ImportCall is not extensible - trailing comma (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let f = () => import('',); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..892ba946de483293a7aecc7da1bcb8976aec5e4e --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-arrow.template +/*--- +description: ImportCall is not extensible - no arguments list (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let f = () => { + import('', ''); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..7a1ac82403ea772ede087825d0c121c80a6ac970 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-arrow.template +/*--- +description: ImportCall is not extensible - trailing comma (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let f = () => { + import('',); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js index 622142e8491fda5307e522e61413388d2d996e83..43fd7992b22b7bf2f24547f41713e3ec9da0c306 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js index f36a527edc33433b4bcd9beb2a5e898deb2e0e7a..3bf559403517eb2845af621479b0ea2e36c2d13d 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..95af703720cfd7c38f766ce8715924d9483dd118 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-async-function-await.template +/*--- +description: ImportCall is not extensible - no arguments list (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + await import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..610e918d46eb4757f4215443e7a5b05412131b8d --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-async-function-await.template +/*--- +description: ImportCall is not extensible - trailing comma (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + await import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..91dd884497feb7dec837c8cb344a29611bea5fba --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-async-function.template +/*--- +description: ImportCall is not extensible - no arguments list (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + import('', ''); +} + diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..db47b50c3a03dce058f2a91ef9f6d88e40d36d90 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-async-function.template +/*--- +description: ImportCall is not extensible - trailing comma (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + import('',); +} + diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js index e4bc337d8c4eb835f4aa0ceb6853269f86fc53a5..7663c36529dde0c9b494858bc633f4d0ccca54d7 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..a91e9d1f633395ae11dab34554fec0688efe273c --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-async-function-return-await.template +/*--- +description: ImportCall is not extensible - no arguments list (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + return await import('', ''); +} + diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..873820d4100788cb9f44296ac6af235785c9b68e --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-async-function-return-await.template +/*--- +description: ImportCall is not extensible - trailing comma (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +async function f() { + return await import('',); +} + diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js index 7867d2a4e91116cdb91e7be16452c09743c875e7..a4691ca71d19e4f99585c47c7d6aed54576fc7b3 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested block syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js index 6296b903bc54ca669fd91eb8719b491c23e4db58..6932f7797e851389dc7042b864ca3cf5f487bf0e 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested block syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..1823f1486d10b1476a551f326e906c40c5bab79e --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-block-labeled.template +/*--- +description: ImportCall is not extensible - no arguments list (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +label: { + import('', ''); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..774d853665a53bbce5f88e086823bcaa97051055 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-block-labeled.template +/*--- +description: ImportCall is not extensible - trailing comma (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +label: { + import('',); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..84e1499005c53cabcb007043ec9d40bb225a52b1 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-block.template +/*--- +description: ImportCall is not extensible - no arguments list (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +{ + import('', ''); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..a73878a6b408c7187b77e66263602785490d9b87 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-block.template +/*--- +description: ImportCall is not extensible - trailing comma (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +{ + import('',); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js index a1bbe92af5dc4aa72c88e42837b8f22927e5039b..d1b92fee08b5849697cd94f68138b4be7b88a983 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested do while syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..48a8ee93b75aab7a19caccb780099717e15fb3e0 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-do-while.template +/*--- +description: ImportCall is not extensible - no arguments list (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +do { + import('', ''); +} while (false); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..33224be168db88203ef05eee701fcadc6cc11bc1 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-do-while.template +/*--- +description: ImportCall is not extensible - trailing comma (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +do { + import('',); +} while (false); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js index 00dce8cf5c7ad45f3bf2312851ba2929d54a785b..83ba3db7657881792bc18b501a24df28c29e0652 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested else syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js index 1e691f817d9d808344d56258ba94cdfd2782f957..11e7beec898f75a849e6440f3ca3a5c8470ac0e0 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested else syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..d2eab4c9a01a5ae7d7d807c4ecc495253347ab89 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-else-braceless.template +/*--- +description: ImportCall is not extensible - no arguments list (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (false) { + +} else import('', ''); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..69510347fae113204f84f6f6256024b178e2b4ec --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-else-braceless.template +/*--- +description: ImportCall is not extensible - trailing comma (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (false) { + +} else import('',); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..4290f00c5f7d03348496eb699359b90c85bd37e0 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-else.template +/*--- +description: ImportCall is not extensible - no arguments list (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (false) { + +} else { + import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..f94c5105a1592d77b01b44d9f4c87e44dd720659 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-else.template +/*--- +description: ImportCall is not extensible - trailing comma (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (false) { + +} else { + import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js index 4873ae664c42f804f9b0064a6aabb28280c467b8..a6c48c3928aa83af2783c23dbe24d39e175c3d71 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested function syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..5748b12dc33e0586bcdb9c24426d499d9f886c07 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-function.template +/*--- +description: ImportCall is not extensible - no arguments list (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +function fn() { + import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..e5b898ea2cd3bbb4e5b3a86b911ee870e96676f8 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-function.template +/*--- +description: ImportCall is not extensible - trailing comma (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +function fn() { + import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js index 4a10c5de24948f75d726f9d8e719a729d015e7a8..042677a78963f2cfd00313f9fbf402b0ed4c1db4 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested function syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..9d80e2f20ff7cccc0e79372daed86a0aee59db32 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-function-return.template +/*--- +description: ImportCall is not extensible - no arguments list (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +function fn() { + return import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..298b979ae06b36770b91d8ef05c5ec00233ce64d --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-function-return.template +/*--- +description: ImportCall is not extensible - trailing comma (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +function fn() { + return import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js index d0a3ff0af4b4302811883a584f97c7cdd5fd62bb..c00eccbbb99727c10299baf37e8c2e0b1897b510 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested if syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js index af0f9caa7e8bc95998c166fbb4c9874eca79fcbf..a53086c259e95abd995d5a7aca3f497aacfb7d28 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested if syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..713d0ac65e511fd87416dfffe6c3a706d53a4867 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-if-braceless.template +/*--- +description: ImportCall is not extensible - no arguments list (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (true) import('', ''); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..ac7e9aa750c7f6f287fb587202bab64b410956bc --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-if-braceless.template +/*--- +description: ImportCall is not extensible - trailing comma (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (true) import('',); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..98180c77ab57b40f12d77e9ff3a111e30de78be0 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-if.template +/*--- +description: ImportCall is not extensible - no arguments list (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (true) { + import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..87c91b7b533d4d950d220e9cdfac6ddc8262bcc4 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-if.template +/*--- +description: ImportCall is not extensible - trailing comma (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +if (true) { + import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js index 25cdafb6f5d12832d8ef4725854dd6d2fe49fca4..478a5f5744248af98dba097291db00474e0d34aa 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (nested while syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..d41674b4a0f3e8c43cc93a6e2c43629f0bfe3267 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-while.template +/*--- +description: ImportCall is not extensible - no arguments list (nested while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let x = 0; +while (!x) { + x++; + import('', ''); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..69cb2c18143924ec4be6c789daa9db574c6c4146 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-while.template +/*--- +description: ImportCall is not extensible - trailing comma (nested while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +let x = 0; +while (!x) { + x++; + import('',); +}; diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional.js new file mode 100644 index 0000000000000000000000000000000000000000..be620c56664a11bd87e621ed91aa3f0dd6bb8eaf --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/assignment-expr-not-optional.case +// - src/dynamic-import/syntax/invalid/nested-with.template +/*--- +description: It's a SyntaxError if AssignmentExpression is omitted (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) +---*/ + +throw "Test262: This statement should not be evaluated."; + +with ({}) { + import(); +} + +/* The params region intentionally empty */ diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..6c43a0d1f4257164eb63ac8a5cc7e9a803766822 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/nested-with.template +/*--- +description: ImportCall is not extensible - no arguments list (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +with ({}) { + import('', ''); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..ecafdd9455cae607ede2b106e353c35564271826 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/nested-with.template +/*--- +description: ImportCall is not extensible - trailing comma (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +with ({}) { + import('',); +} diff --git a/test/language/module-code/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js b/test/language/module-code/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js index 32810c3d8baaba9296e8a32126842b208e809404..e0f2430577c4846e1fabc6e41f3d4569317cfea7 100644 --- a/test/language/module-code/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js +++ b/test/language/module-code/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js @@ -5,7 +5,7 @@ description: It's a SyntaxError if AssignmentExpression is omitted (top level syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] negative: phase: parse type: SyntaxError diff --git a/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-args.js b/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-args.js new file mode 100644 index 0000000000000000000000000000000000000000..aa517c93ac87e798debff79cf940b09cdc4d36d0 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-args.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-args.case +// - src/dynamic-import/syntax/invalid/top-level.template +/*--- +description: ImportCall is not extensible - no arguments list (top level syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +import('', ''); diff --git a/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js b/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..d7c12259fc8dde18d0c240683645421d1db37520 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/not-extensible-no-trailing-comma.case +// - src/dynamic-import/syntax/invalid/top-level.template +/*--- +description: ImportCall is not extensible - trailing comma (top level syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +negative: + phase: parse + type: SyntaxError +info: | + ImportCall : + import( AssignmentExpression ) + + + ImportCall : + import( AssignmentExpression[+In, ?Yield] ) + + Forbidden Extensions + + - ImportCall must not be extended. +---*/ + +throw "Test262: This statement should not be evaluated."; + +import('',); diff --git a/test/language/module-code/dynamic-import/syntax/valid/empty_FIXTURE.js b/test/language/module-code/dynamic-import/syntax/valid/empty_FIXTURE.js new file mode 100644 index 0000000000000000000000000000000000000000..29cb49e1fd3a6a1a1652a1b1ca635a23e7503dab --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/empty_FIXTURE.js @@ -0,0 +1,4 @@ +// Copyright (C) 2018 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +// empty code diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js index 7273a33e6c12a18acccd7949e5e1b920d878990d..a3286b57e68bd12b7996cb6bf35a34ca979d11be 100644 --- a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js @@ -5,7 +5,7 @@ description: Calling import('') (nested arrow syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] info: | ImportCall : import( AssignmentExpression ) diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..2d80caa1fe15321e3e9e70eb2b7e4fb846252815 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports.js @@ -0,0 +1,25 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let f = () => import(import(import('./empty_FIXTURE.js'))); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..c5654cd220ed217ebd15905f56603a0ba4ea4eb5 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-arrow-assignment-expression.template +/*--- +description: import() can be used in script code (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +let f = () => import('./script-code-valid.js'); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..5ef1458d0636ffdc176d6aba5e3ffebd54478432 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-arrow.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let f = () => { + import(import(import('./empty_FIXTURE.js'))); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..590fff106f11f7420c7d250f1c75fafc2744bc3a --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-arrow-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-arrow.template +/*--- +description: import() can be used in script code (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +let f = () => { + import('./script-code-valid.js'); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..810d7774d5f7985d3503657ecc82605fa2f5e082 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-async-function-await.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + await import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..90849fabfe36863028cc816da16777c3e39294e9 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-async-function-await.template +/*--- +description: import() can be used in script code (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +async function f() { + await import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..346590fed25819a8b7616266be8b80e33a3e9de3 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-nested-imports.js @@ -0,0 +1,28 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-async-function.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + import(import(import('./empty_FIXTURE.js'))); +} + diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..5ae4dcc38288bb8a5dcbdf8cce1cfdd30c103989 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports.js @@ -0,0 +1,28 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-async-function-return-await.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + return await import(import(import('./empty_FIXTURE.js'))); +} + diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..f383065913465092cae33b5087905c9dda67a470 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-async-function-return-await.template +/*--- +description: import() can be used in script code (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +async function f() { + return await import('./script-code-valid.js'); +} + diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..e00d0a7ffdbee48c09c9720e89bac53769e3642d --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-async-function-script-code-valid.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-async-function.template +/*--- +description: import() can be used in script code (nested arrow syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +async function f() { + import('./script-code-valid.js'); +} + diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..0f7b975091d0aee0a4766f784fee5f6842e2eff4 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-block-labeled.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +label: { + import(import(import('./empty_FIXTURE.js'))); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..0d36b64b70dfa0ac40d4c526a77ab500fe23df04 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-block-labeled.template +/*--- +description: import() can be used in script code (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +label: { + import('./script-code-valid.js'); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-block-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-block-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..1966a3f2c3d7ccdd158478bf146eba1fe902aceb --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-block-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-block.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +{ + import(import(import('./empty_FIXTURE.js'))); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-block-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-block-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..f66e994bd06829810b0b4e055b3e763e8a34d2f7 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-block-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-block.template +/*--- +description: import() can be used in script code (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +{ + import('./script-code-valid.js'); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..a0cd602d3cef8dfadc48311661476391bb4c7b70 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-do-while.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +do { + import(import(import('./empty_FIXTURE.js'))); +} while (false); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..1b86097b58448ff3c7753d407d73671eebfddde8 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-do-while-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-do-while.template +/*--- +description: import() can be used in script code (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +do { + import('./script-code-valid.js'); +} while (false); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..ed3996f100856252a3f15b5b28a68f7a9a1808cf --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-else-braceless.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (false) { + +} else import(import(import('./empty_FIXTURE.js'))); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..4426fcca22c2f01099eeb0b30d6f7fdebb8bf3bf --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-else-braceless.template +/*--- +description: import() can be used in script code (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +if (false) { + +} else import('./script-code-valid.js'); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-else-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-else-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..b4a44c9afcf135e99fe88b1126a08acca8a42afd --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-else-nested-imports.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-else.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (false) { + +} else { + import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-else-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-else-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..7ec91b881a30c0e613df73ee46c0f614de8cc54d --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-else-script-code-valid.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-else.template +/*--- +description: import() can be used in script code (nested else syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +if (false) { + +} else { + import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js index d6358b05fa59a50b2aa912207acc412755cae564..220404899236791964e9e57d53a7cb959e748ed2 100644 --- a/test/language/module-code/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js @@ -5,7 +5,7 @@ description: Calling import('') (nested function syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] info: | ImportCall : import( AssignmentExpression ) diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..3adda3653594fc20c3dd67204891e65d4aabd8e5 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-function.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +function fn() { + import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js index e1238bcfdb05e15ec239af45ce009e5f7ab0f1b3..9a223eeb19499bf1b69f952fe97004c937bdbdbe 100644 --- a/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js @@ -5,7 +5,7 @@ description: Calling import('') (nested function syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] info: | ImportCall : import( AssignmentExpression ) diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc194e7c2b4a243ce79c20753dd0a130157787d --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-function-return.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +function fn() { + return import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..5a871fa54affccb9904dfa1c223a67a2166af329 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-return-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-function-return.template +/*--- +description: import() can be used in script code (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +function fn() { + return import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-function-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-function-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..68f127e3e1cca5086619bc951bcbba3a0ba810ce --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-function-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-function.template +/*--- +description: import() can be used in script code (nested function syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +function fn() { + import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..6b384a3597d8c6c8e7f2be6cbcecd88f9707786a --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-nested-imports.js @@ -0,0 +1,25 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-if-braceless.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (true) import(import(import('./empty_FIXTURE.js'))); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..e449237b2bda8b69acfe6e6a26150343a1d6c026 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-if-braceless.template +/*--- +description: import() can be used in script code (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +if (true) import('./script-code-valid.js'); diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-if-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-if-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..8720ddc84ec327296f37927d85d398df00a91113 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-if-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-if.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (true) { + import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-if-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-if-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..f2b1eb9c25604ec66ef58e3e99feb131fb8ecc36 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-if-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-if.template +/*--- +description: import() can be used in script code (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +if (true) { + import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js index 06ed77a9dfb63520d4fb5a3d4ebc7015451d4e16..8f4e2d62c3f140d695dcb09dca419d5ca3986b2f 100644 --- a/test/language/module-code/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js @@ -5,7 +5,7 @@ description: Calling import('') (nested while syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] info: | ImportCall : import( AssignmentExpression ) diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-while-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-while-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..b14401a2cd40a24304d8d80c754a2158475cab63 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-while-nested-imports.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-while.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let x = 0; +while (!x) { + x++; + import(import(import('./empty_FIXTURE.js'))); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-while-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-while-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..b196e203ea4a0deda6c4e8bd38e6e0199c3605ca --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-while-script-code-valid.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-while.template +/*--- +description: import() can be used in script code (nested while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +let x = 0; +while (!x) { + x++; + import('./script-code-valid.js'); +}; diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr.js new file mode 100644 index 0000000000000000000000000000000000000000..9cda7876149af2773e580200423fd90b37b6d3bb --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/empty-str-is-valid-assign-expr.case +// - src/dynamic-import/syntax/valid/nested-with.template +/*--- +description: Calling import('') (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +with ({}) { + import(''); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-with-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/nested-with-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..d87919be1623e4266d5471c84ad78620ca086165 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-with-nested-imports.js @@ -0,0 +1,27 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/nested-with.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +with ({}) { + import(import(import('./empty_FIXTURE.js'))); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/nested-with-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/nested-with-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..b46979d5ece4dd73928d0143dc618b20f8497531 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/nested-with-script-code-valid.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/nested-with.template +/*--- +description: import() can be used in script code (nested with syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +with ({}) { + import('./script-code-valid.js'); +} diff --git a/test/language/module-code/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js b/test/language/module-code/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js index ed13876b70ec0052db4c3b3c994ed588eb43c5c5..b5e7d2ad2414361d9008f5b26f16aa83e41cacf4 100644 --- a/test/language/module-code/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js +++ b/test/language/module-code/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js @@ -5,7 +5,7 @@ description: Calling import('') (top level syntax) esid: sec-import-call-runtime-semantics-evaluation features: [dynamic-import] -flags: [generated, module] +flags: [generated] info: | ImportCall : import( AssignmentExpression ) diff --git a/test/language/module-code/dynamic-import/syntax/valid/top-level-nested-imports.js b/test/language/module-code/dynamic-import/syntax/valid/top-level-nested-imports.js new file mode 100644 index 0000000000000000000000000000000000000000..fd0db04ead45fb8489bb049803d0927d133b94c5 --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/top-level-nested-imports.js @@ -0,0 +1,15 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/nested-imports.case +// - src/dynamic-import/syntax/valid/top-level.template +/*--- +description: ImportCall is a CallExpression can be nested in other import calls (top level syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + +---*/ + +import(import(import('./empty_FIXTURE.js'))); diff --git a/test/language/module-code/dynamic-import/syntax/valid/top-level-script-code-valid.js b/test/language/module-code/dynamic-import/syntax/valid/top-level-script-code-valid.js new file mode 100644 index 0000000000000000000000000000000000000000..3aa54554ba511e998e9dacecae48ce53688ee0af --- /dev/null +++ b/test/language/module-code/dynamic-import/syntax/valid/top-level-script-code-valid.js @@ -0,0 +1,19 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/script-code-valid.case +// - src/dynamic-import/syntax/valid/top-level.template +/*--- +description: import() can be used in script code (top level syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated] +info: | + ImportCall : + import( AssignmentExpression ) + +---*/ +// This is still valid in script code, and should not be valid for module code +// https://tc39.github.io/ecma262/#sec-scripts-static-semantics-lexicallydeclarednames +var smoosh; function smoosh() {} + + +import('./script-code-valid.js'); diff --git a/test/language/module-code/dynamic-import/usage/nested-arrow-assignment-expression-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-arrow-assignment-expression-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..db29f502337f7fd28a5257fa4663157128171510 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-arrow-assignment-expression-is-call-expression-square-brackets.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-arrow-assign-expr.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested arrow) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let f = () => import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + +}); + + +f().then($DONE, $DONE).catch($DONE); diff --git a/test/language/module-code/dynamic-import/usage/nested-arrow-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-arrow-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..8e9b9dec4230e723ad624d560e75bddec941e8fc --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-arrow-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-arrow.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested arrow) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let f = () => { + return import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +}; + +f(); + diff --git a/test/language/module-code/dynamic-import/usage/nested-async-function-await-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-async-function-await-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..eab198119b4351ef9bb07a44a45a9b0348d68859 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-async-function-await-is-call-expression-square-brackets.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-async-function-await.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested in async function, awaited) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + await import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }); +} + +f().then($DONE, $DONE).catch($DONE); diff --git a/test/language/module-code/dynamic-import/usage/nested-async-function-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-async-function-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..9f4a45f0e02c666489aeceefc4f6f94b2055bcbc --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-async-function-is-call-expression-square-brackets.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-async-function.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested in async function) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} + +f(); diff --git a/test/language/module-code/dynamic-import/usage/nested-async-function-return-await-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-async-function-return-await-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..97af8e8f9837a2cab803db0c4752e161113cf143 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-async-function-return-await-is-call-expression-square-brackets.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-async-function-return-await.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested in async function, returns awaited) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +async function f() { + return await import('./dynamic-import-module_FIXTURE.js')['then'](x => x); +} + +f().then(imported => { + + assert.sameValue(imported.x, 1); + +}).then($DONE, $DONE).catch($DONE); diff --git a/test/language/module-code/dynamic-import/usage/nested-block-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-block-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..422750c0641f05618ea56f71f1ba758e9072832f --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-block-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-block.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested block) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +{ + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +}; diff --git a/test/language/module-code/dynamic-import/usage/nested-do-while-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-do-while-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..8b8822323e199dce21e2e794729007e4269caaf9 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-do-while-is-call-expression-square-brackets.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-do-while.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested do while syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +do { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} while (false); diff --git a/test/language/module-code/dynamic-import/usage/nested-else-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-else-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..95419be6d1addc7986c524a39886ce3369eef3b4 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-else-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-else.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested else) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (false) { + +} else { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/nested-function-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-function-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..860cdb5f19d7a3f9415eda886e47241e347f0a61 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-function-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-function.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested function) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +function f() { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} +f(); diff --git a/test/language/module-code/dynamic-import/usage/nested-if-braceless-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-if-braceless-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..35349af68117334ecd666592f6ad8e8d1b81535a --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-if-braceless-is-call-expression-square-brackets.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-if-braceless.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested if syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (true) import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + +}).then($DONE, $DONE).catch($DONE); diff --git a/test/language/module-code/dynamic-import/usage/nested-if-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-if-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..63b003c9a4b9470cb4ef6b5784a1a56b79036ee5 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-if-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-if.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested if) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +if (true) { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/nested-while-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-while-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..d5b56b232c2da517ba1fed0e32ead6cc238cf9aa --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-while-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-while.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested while) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +let x = 0; +while (!x) { + x++; + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +}; diff --git a/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update-dflt.js b/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update-dflt.js new file mode 100644 index 0000000000000000000000000000000000000000..c8232adb174dd330d35422d8895e1936526e2297 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update-dflt.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/eval-gtbndng-indirect-update-dflt.case +// - src/dynamic-import/default/nested-with.template +/*--- +description: Modifications to default binding that occur after dependency has been evaluated are reflected in local binding (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + GetBindingValue (N, S) + + [...] + 3. If the binding for N is an indirect binding, then + a. Let M and N2 be the indirection values provided when this binding for + N was created. + b. Let targetEnv be M.[[Environment]]. + c. If targetEnv is undefined, throw a ReferenceError exception. + d. Let targetER be targetEnv's EnvironmentRecord. + e. Return ? targetER.GetBindingValue(N2, S). + +---*/ + +with ({}) { + import('./eval-gtbndng-indirect-update-dflt_FIXTURE.js').then(imported => { + + assert.sameValue(imported.default(), 1); + assert.sameValue(imported.default, 2); + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update.js b/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update.js new file mode 100644 index 0000000000000000000000000000000000000000..d39cd5cfae154f07f8b7e2c772830746a2f6df13 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-with-import-then-eval-gtbndng-indirect-update.js @@ -0,0 +1,52 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/eval-gtbndng-indirect-update.case +// - src/dynamic-import/default/nested-with.template +/*--- +description: Modifications to named bindings that occur after dependency has been evaluated are reflected in local binding (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +includes: [fnGlobalObject.js] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + + + GetBindingValue (N, S) + + [...] + 3. If the binding for N is an indirect binding, then + a. Let M and N2 be the indirection values provided when this binding for + N was created. + b. Let targetEnv be M.[[Environment]]. + c. If targetEnv is undefined, throw a ReferenceError exception. + d. Let targetER be targetEnv's EnvironmentRecord. + e. Return ? targetER.GetBindingValue(N2, S). + +---*/ + +with ({}) { + import('./eval-gtbndng-indirect-update_FIXTURE.js').then(imported => { + + assert.sameValue(imported.x, 1); + + // This function is exposed on the global scope (instead of as an exported + // binding) in order to avoid possible false positives from assuming correct + // behavior of the semantics under test. + fnGlobalObject().test262update(); + + assert.sameValue(imported.x, 2); + + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/nested-with-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/nested-with-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..18d95fe17a03710c9b404dae042b7b2b6c937b3b --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-with-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-with.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +with ({}) { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/nested-with-import-then-returns-promise.js b/test/language/module-code/dynamic-import/usage/nested-with-import-then-returns-promise.js new file mode 100644 index 0000000000000000000000000000000000000000..0b17dd7aeba79e0c5327e6d1b488e175506bb4f3 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/nested-with-import-then-returns-promise.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/returns-promise.case +// - src/dynamic-import/default/nested-with.template +/*--- +description: Dynamic import() returns a Promise object. (nested with) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async, noStrict] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +with ({}) { + import('./dynamic-import-module_FIXTURE.js').then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +} diff --git a/test/language/module-code/dynamic-import/usage/syntax-nested-block-labeled-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/syntax-nested-block-labeled-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..9aae4a39fc0216692fbc3b2f025ebd88e506a682 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/syntax-nested-block-labeled-is-call-expression-square-brackets.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/nested-block-labeled.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (nested block syntax) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +label: { + import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + + }).then($DONE, $DONE).catch($DONE); +}; diff --git a/test/language/module-code/dynamic-import/usage/top-level-import-then-is-call-expression-square-brackets.js b/test/language/module-code/dynamic-import/usage/top-level-import-then-is-call-expression-square-brackets.js new file mode 100644 index 0000000000000000000000000000000000000000..0193cae1faf643cd546ec67ba4acf003b625c860 --- /dev/null +++ b/test/language/module-code/dynamic-import/usage/top-level-import-then-is-call-expression-square-brackets.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/dynamic-import/is-call-expression-square-brackets.case +// - src/dynamic-import/default/top-level.template +/*--- +description: ImportCall is a CallExpression, it can be followed by square brackets (top level) +esid: sec-import-call-runtime-semantics-evaluation +features: [dynamic-import] +flags: [generated, async] +info: | + ImportCall : + import( AssignmentExpression ) + + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null). + 3. Let argRef be the result of evaluating AssignmentExpression. + 4. Let specifier be ? GetValue(argRef). + 5. Let promiseCapability be ! NewPromiseCapability(%Promise%). + 6. Let specifierString be ToString(specifier). + 7. IfAbruptRejectPromise(specifierString, promiseCapability). + 8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability). + 9. Return promiseCapability.[[Promise]]. + +---*/ + +import('./dynamic-import-module_FIXTURE.js')['then'](x => x).then(imported => { + + assert.sameValue(imported.x, 1); + +}).then($DONE, $DONE).catch($DONE);