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..92ba37cbff77efd7283be71bd4bf31030b7396a2 --- /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 +// It is a Syntax Error if ModuleItemList Contains NewTarget +// This is still valid in script code +new.target; + +//- 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/syntax/valid/empty_FIXTURE.js b/test/language/module-code/dynamic-import/syntax/valid/empty_FIXTURE.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391