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