diff --git a/src/ast/nodes/Import.ts b/src/ast/nodes/Import.ts
index 4ed9bceed87..b49074d90f4 100644
--- a/src/ast/nodes/Import.ts
+++ b/src/ast/nodes/Import.ts
@@ -86,14 +86,24 @@ export default class Import extends NodeBase {
private getDynamicImportMechanism(options: RenderOptions): DynamicImportMechanism | null {
switch (options.format) {
case 'cjs': {
+ const _ = options.compact ? '' : ' ';
+ const resolve = options.compact ? 'c' : 'resolve';
switch (this.exportMode) {
case 'default':
- const _ = options.compact ? '' : ' ';
- return { left: `Promise.resolve({${_}'default':${_}require(`, right: `)${_}})` };
+ return {
+ left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}({${_}'default':${_}require(`,
+ right: `)${_}});${_}})`
+ };
case 'auto':
- return { left: `Promise.resolve(${INTEROP_NAMESPACE_VARIABLE}(require(`, right: ')))' };
+ return {
+ left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(${INTEROP_NAMESPACE_VARIABLE}(require(`,
+ right: `)));${_}})`
+ };
default:
- return { left: 'Promise.resolve(require(', right: '))' };
+ return {
+ left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(require(`,
+ right: `));${_}})`
+ };
}
}
case 'amd': {
diff --git a/test/chunking-form/samples/aliasing-extensions/_expected/cjs/main1.js b/test/chunking-form/samples/aliasing-extensions/_expected/cjs/main1.js
index 4e8cf4fb59f..d85d07f3ebc 100644
--- a/test/chunking-form/samples/aliasing-extensions/_expected/cjs/main1.js
+++ b/test/chunking-form/samples/aliasing-extensions/_expected/cjs/main1.js
@@ -1,5 +1,5 @@
'use strict';
console.log('main1');
-Promise.resolve(require('./generated-main4.dynamic.js'));
-Promise.resolve(require('./generated-main5.js'));
+new Promise(function (resolve) { resolve(require('./generated-main4.dynamic.js')); });
+new Promise(function (resolve) { resolve(require('./generated-main5.js')); });
diff --git a/test/chunking-form/samples/asset-emission/_expected/cjs/main.js b/test/chunking-form/samples/asset-emission/_expected/cjs/main.js
index 218ad8e14c1..16adc59ce96 100644
--- a/test/chunking-form/samples/asset-emission/_expected/cjs/main.js
+++ b/test/chunking-form/samples/asset-emission/_expected/cjs/main.js
@@ -5,4 +5,4 @@ var __chunk_1 = require('./nested/chunk.js');
var logo = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __dirname + '/assets/logo1-25253976.svg').href : new URL('assets/logo1-25253976.svg', document.currentScript && document.currentScript.src || document.baseURI).href);
__chunk_1.showImage(logo);
-Promise.resolve(require('./nested/chunk2.js'));
+new Promise(function (resolve) { resolve(require('./nested/chunk2.js')); });
diff --git a/test/chunking-form/samples/configure-file-url/_expected/cjs/main.js b/test/chunking-form/samples/configure-file-url/_expected/cjs/main.js
index de1e61444a0..f365d118a36 100644
--- a/test/chunking-form/samples/configure-file-url/_expected/cjs/main.js
+++ b/test/chunking-form/samples/configure-file-url/_expected/cjs/main.js
@@ -6,4 +6,4 @@ const chunk = 'resolved';
const asset$1 = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __dirname + '/assets/asset-unresolved-9548436d.txt').href : new URL('assets/asset-unresolved-9548436d.txt', document.currentScript && document.currentScript.src || document.baseURI).href);
const chunk$1 = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __dirname + '/nested/chunk.js').href : new URL('nested/chunk.js', document.currentScript && document.currentScript.src || document.baseURI).href);
-Promise.resolve(require('./nested/chunk2.js')).then(result => console.log(result, chunk, chunk$1, asset, asset$1));
+new Promise(function (resolve) { resolve(require('./nested/chunk2.js')); }).then(result => console.log(result, chunk, chunk$1, asset, asset$1));
diff --git a/test/chunking-form/samples/deprecated/configure-asset-url/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/configure-asset-url/_expected/cjs/main.js
index 06d653838af..8518bc0354c 100644
--- a/test/chunking-form/samples/deprecated/configure-asset-url/_expected/cjs/main.js
+++ b/test/chunking-form/samples/deprecated/configure-asset-url/_expected/cjs/main.js
@@ -4,4 +4,4 @@ var asset2 = 'resolved';
var asset3 = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __dirname + '/assets/asset-unresolved-9548436d.txt').href : new URL('assets/asset-unresolved-9548436d.txt', document.currentScript && document.currentScript.src || document.baseURI).href);
-Promise.resolve(require('./nested/chunk.js')).then(result => console.log(result, asset2, asset3));
+new Promise(function (resolve) { resolve(require('./nested/chunk.js')); }).then(result => console.log(result, asset2, asset3));
diff --git a/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/generated-dep1.js b/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/generated-dep1.js
index 8f77bed67fc..c575743511e 100644
--- a/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/generated-dep1.js
+++ b/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/generated-dep1.js
@@ -1,4 +1,4 @@
'use strict';
console.log('dep1');
-Promise.resolve(require('./generated-dep2.js'));
+new Promise(function (resolve) { resolve(require('./generated-dep2.js')); });
diff --git a/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/main.js
index aeff3cd02fb..1ed868a97b7 100644
--- a/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-chained/_expected/cjs/main.js
@@ -1,4 +1,4 @@
'use strict';
console.log('main');
-Promise.resolve(require('./generated-dep1.js'));
+new Promise(function (resolve) { resolve(require('./generated-dep1.js')); });
diff --git a/test/chunking-form/samples/dynamic-import-chunking/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-chunking/_expected/cjs/main.js
index cb2d4803bf4..c4cb8c2855e 100644
--- a/test/chunking-form/samples/dynamic-import-chunking/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-chunking/_expected/cjs/main.js
@@ -11,7 +11,7 @@ function fn (num) {
}
function dynamic (num) {
- return Promise.resolve(require('./generated-dep2.js'))
+ return new Promise(function (resolve) { resolve(require('./generated-dep2.js')); })
.then(dep2 => {
return dep2.mult(num);
});
diff --git a/test/chunking-form/samples/dynamic-import-comments/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-comments/_expected/cjs/main.js
index 93ae5687f30..7e7e20c640d 100644
--- a/test/chunking-form/samples/dynamic-import-comments/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-comments/_expected/cjs/main.js
@@ -19,6 +19,6 @@ function _interopNamespace(e) {
}
}
-Promise.resolve(_interopNamespace(require(
+new Promise(function (resolve) { resolve(_interopNamespace(require(
/* webpackChunkName: "chunk-name" */
-'./foo.js'/*suffix*/)));
+'./foo.js'/*suffix*/))); });
diff --git a/test/chunking-form/samples/dynamic-import-dynamic/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-dynamic/_expected/cjs/main.js
index af2fbb3f464..f6815c3ec01 100644
--- a/test/chunking-form/samples/dynamic-import-dynamic/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-dynamic/_expected/cjs/main.js
@@ -21,4 +21,4 @@ function _interopNamespace(e) {
var dep = 'dep';
-Promise.resolve(_interopNamespace(require(dep)));
+new Promise(function (resolve) { resolve(_interopNamespace(require(dep))); });
diff --git a/test/chunking-form/samples/dynamic-import-external/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-external/_expected/cjs/main.js
index b259c28c50f..aaa5eccd4d8 100644
--- a/test/chunking-form/samples/dynamic-import-external/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-external/_expected/cjs/main.js
@@ -19,4 +19,4 @@ function _interopNamespace(e) {
}
}
-Promise.resolve(_interopNamespace(require('./foo.js')));
+new Promise(function (resolve) { resolve(_interopNamespace(require('./foo.js'))); });
diff --git a/test/chunking-form/samples/dynamic-import-facade/_expected/cjs/main1.js b/test/chunking-form/samples/dynamic-import-facade/_expected/cjs/main1.js
index 374a10ce818..94c55f49481 100644
--- a/test/chunking-form/samples/dynamic-import-facade/_expected/cjs/main1.js
+++ b/test/chunking-form/samples/dynamic-import-facade/_expected/cjs/main1.js
@@ -1,3 +1,3 @@
'use strict';
-Promise.resolve(require('./generated-dynamic.js')).then(({dynamic}) => console.log('main1', dynamic));
+new Promise(function (resolve) { resolve(require('./generated-dynamic.js')); }).then(({dynamic}) => console.log('main1', dynamic));
diff --git a/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main1.js b/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main1.js
index 7154e55ccc7..4b2bcc7fdd5 100644
--- a/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main1.js
+++ b/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main1.js
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
require('./generated-inlined.js');
require('./generated-separate.js');
-const inlined = Promise.resolve(require('./generated-inlined.js'));
-const separate = Promise.resolve(require('./generated-separate.js'));
+const inlined = new Promise(function (resolve) { resolve(require('./generated-inlined.js')); });
+const separate = new Promise(function (resolve) { resolve(require('./generated-separate.js')); });
exports.inlined = inlined;
exports.separate = separate;
diff --git a/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main2.js b/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main2.js
index 62e8058aba0..b4bce63256b 100644
--- a/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main2.js
+++ b/test/chunking-form/samples/dynamic-import-inline-colouring/_expected/cjs/main2.js
@@ -2,6 +2,6 @@
Object.defineProperty(exports, '__esModule', { value: true });
-const separate = Promise.resolve(require('./generated-separate.js'));
+const separate = new Promise(function (resolve) { resolve(require('./generated-separate.js')); });
exports.separate = separate;
diff --git a/test/chunking-form/samples/dynamic-import-name/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-name/_expected/cjs/main.js
index b10082c2798..98907d83923 100644
--- a/test/chunking-form/samples/dynamic-import-name/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-name/_expected/cjs/main.js
@@ -19,4 +19,4 @@ function _interopNamespace(e) {
}
}
-Promise.resolve(_interopNamespace(require('./foo.js'))).then(result => console.log(result));
+new Promise(function (resolve) { resolve(_interopNamespace(require('./foo.js'))); }).then(result => console.log(result));
diff --git a/test/chunking-form/samples/dynamic-import-only-default/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-only-default/_expected/cjs/main.js
index 8370d237cfe..ffe9cc8a52f 100644
--- a/test/chunking-form/samples/dynamic-import-only-default/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-only-default/_expected/cjs/main.js
@@ -1,5 +1,5 @@
'use strict';
-var main = Promise.all([Promise.resolve({ 'default': require('./entry.js') }), Promise.resolve(require('./generated-other.js'))]);
+var main = Promise.all([new Promise(function (resolve) { resolve({ 'default': require('./entry.js') }); }), new Promise(function (resolve) { resolve(require('./generated-other.js')); })]);
module.exports = main;
diff --git a/test/chunking-form/samples/dynamic-import-only-reexports/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import-only-reexports/_expected/cjs/main.js
index 8da97186d0e..44e4f948ad7 100644
--- a/test/chunking-form/samples/dynamic-import-only-reexports/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import-only-reexports/_expected/cjs/main.js
@@ -1,3 +1,3 @@
'use strict';
-Promise.resolve(require('./generated-dynamic.js')).then(({ value }) => console.log(value));
+new Promise(function (resolve) { resolve(require('./generated-dynamic.js')); }).then(({ value }) => console.log(value));
diff --git a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/main2.js b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/main2.js
index 41b25026533..b910e11fb85 100644
--- a/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/main2.js
+++ b/test/chunking-form/samples/dynamic-import-statically-imported-2/_expected/cjs/main2.js
@@ -1,3 +1,3 @@
'use strict';
-Promise.resolve(require('./generated-dep1.js')).then(({ bar }) => console.log(bar()));
+new Promise(function (resolve) { resolve(require('./generated-dep1.js')); }).then(({ bar }) => console.log(bar()));
diff --git a/test/chunking-form/samples/dynamic-import/_expected/cjs/main.js b/test/chunking-form/samples/dynamic-import/_expected/cjs/main.js
index e4241fd2cf8..047a282dd81 100644
--- a/test/chunking-form/samples/dynamic-import/_expected/cjs/main.js
+++ b/test/chunking-form/samples/dynamic-import/_expected/cjs/main.js
@@ -6,7 +6,7 @@ var __chunk_1 = require('./chunks/chunk.js');
assert.equal(__chunk_1.sharedValue, 'shared');
-const promise = Promise.resolve(require('./chunks/other.js')).then(result =>
+const promise = new Promise(function (resolve) { resolve(require('./chunks/other.js')); }).then(result =>
assert.deepEqual(result, { value: 'shared' })
);
diff --git a/test/chunking-form/samples/emit-chunk-worker/_expected/cjs/main.js b/test/chunking-form/samples/emit-chunk-worker/_expected/cjs/main.js
index 4da69307c80..e7c846b892f 100644
--- a/test/chunking-form/samples/emit-chunk-worker/_expected/cjs/main.js
+++ b/test/chunking-form/samples/emit-chunk-worker/_expected/cjs/main.js
@@ -10,6 +10,6 @@ const getWorkerMessage = () => new Promise(resolve => {
document.body.innerHTML += `
main: ${__chunk_1.shared}
`;
getWorkerMessage().then(message => (document.body.innerHTML += `1: ${message.data}
`));
-Promise.resolve(require('./chunks/nested.js'))
+new Promise(function (resolve) { resolve(require('./chunks/nested.js')); })
.then(result => result.getWorkerMessage())
.then(message => (document.body.innerHTML += `2: ${message.data}
`));
diff --git a/test/chunking-form/samples/import-meta-url/_expected/cjs/main.js b/test/chunking-form/samples/import-meta-url/_expected/cjs/main.js
index d4619267ada..b68f315c4d5 100644
--- a/test/chunking-form/samples/import-meta-url/_expected/cjs/main.js
+++ b/test/chunking-form/samples/import-meta-url/_expected/cjs/main.js
@@ -3,4 +3,4 @@
var __chunk_1 = require('./nested/chunk.js');
__chunk_1.log('main: ' + (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href)));
-Promise.resolve(require('./nested/chunk2.js'));
+new Promise(function (resolve) { resolve(require('./nested/chunk2.js')); });
diff --git a/test/chunking-form/samples/manual-chunks-dynamic-facades/_expected/cjs/main.js b/test/chunking-form/samples/manual-chunks-dynamic-facades/_expected/cjs/main.js
index 529ca20e209..07eec1ca551 100644
--- a/test/chunking-form/samples/manual-chunks-dynamic-facades/_expected/cjs/main.js
+++ b/test/chunking-form/samples/manual-chunks-dynamic-facades/_expected/cjs/main.js
@@ -2,6 +2,6 @@
var dynamic = require('./generated-dynamic.js');
-Promise.all([Promise.resolve(require('./generated-dynamic.js')), Promise.resolve(require('./generated-dynamic2.js')), Promise.resolve(require('./generated-dynamic3.js'))]).then(
+Promise.all([new Promise(function (resolve) { resolve(require('./generated-dynamic.js')); }), new Promise(function (resolve) { resolve(require('./generated-dynamic2.js')); }), new Promise(function (resolve) { resolve(require('./generated-dynamic3.js')); })]).then(
results => console.log(results, dynamic.DEP)
);
diff --git a/test/chunking-form/samples/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js b/test/chunking-form/samples/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js
index ad1107c73a0..5f2da3636d4 100644
--- a/test/chunking-form/samples/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js
+++ b/test/chunking-form/samples/manual-chunks-dynamic-name-conflict/_expected/cjs/main.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic1.js')).then(result => console.log(result));
-Promise.resolve(require('./generated-dynamic.js')).then(result => console.log(result));
+new Promise(function (resolve) { resolve(require('./generated-dynamic1.js')); }).then(result => console.log(result));
+new Promise(function (resolve) { resolve(require('./generated-dynamic.js')); }).then(result => console.log(result));
diff --git a/test/chunking-form/samples/manual-chunks-dynamic/_expected/cjs/main.js b/test/chunking-form/samples/manual-chunks-dynamic/_expected/cjs/main.js
index 6dec24c5ece..3a4f16d1486 100644
--- a/test/chunking-form/samples/manual-chunks-dynamic/_expected/cjs/main.js
+++ b/test/chunking-form/samples/manual-chunks-dynamic/_expected/cjs/main.js
@@ -1,3 +1,3 @@
'use strict';
-Promise.resolve(require('./generated-dynamic.js')).then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A));
+new Promise(function (resolve) { resolve(require('./generated-dynamic.js')); }).then(({DYNAMIC_USED_BY_A}) => console.log(DYNAMIC_USED_BY_A));
diff --git a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic1.js b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic1.js
index 2e429ed58c4..988a64fd35e 100644
--- a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic1.js
+++ b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic1.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic2.js'));
+new Promise(function (resolve) { resolve(require('./generated-dynamic2.js')); });
console.log('dynamic1');
diff --git a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic2.js b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic2.js
index a9896858b47..41b004168ba 100644
--- a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic2.js
+++ b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic2.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic3.js'));
+new Promise(function (resolve) { resolve(require('./generated-dynamic3.js')); });
console.log('dynamic2');
diff --git a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic3.js b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic3.js
index 1e884c8b3db..05760968f6b 100644
--- a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic3.js
+++ b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic3.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic4.js'));
+new Promise(function (resolve) { resolve(require('./generated-dynamic4.js')); });
console.log('dynamic3');
diff --git a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic4.js b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic4.js
index aaafd7e6277..4b8cb60ad35 100644
--- a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic4.js
+++ b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/generated-dynamic4.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic5.js'));
+new Promise(function (resolve) { resolve(require('./generated-dynamic5.js')); });
console.log('dynamic4');
diff --git a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/main.js b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/main.js
index dcea8717078..ea850b714f2 100644
--- a/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/main.js
+++ b/test/chunking-form/samples/nested-dynamic-imports/_expected/cjs/main.js
@@ -1,4 +1,4 @@
'use strict';
-Promise.resolve(require('./generated-dynamic1.js'));
+new Promise(function (resolve) { resolve(require('./generated-dynamic1.js')); });
console.log('main');
diff --git a/test/chunking-form/samples/preserve-modules-dynamic-imports/_expected/cjs/main.js b/test/chunking-form/samples/preserve-modules-dynamic-imports/_expected/cjs/main.js
index 4c20525ca3f..6aae4c44f67 100644
--- a/test/chunking-form/samples/preserve-modules-dynamic-imports/_expected/cjs/main.js
+++ b/test/chunking-form/samples/preserve-modules-dynamic-imports/_expected/cjs/main.js
@@ -1,3 +1,3 @@
'use strict';
-Promise.resolve(require('./dynamic-included.js')).then(result => console.log(result));
+new Promise(function (resolve) { resolve(require('./dynamic-included.js')); }).then(result => console.log(result));
diff --git a/test/chunking-form/samples/resolve-dynamic-import/_expected/cjs/main.js b/test/chunking-form/samples/resolve-dynamic-import/_expected/cjs/main.js
index 2cd02c54778..9f7a3cdf69a 100644
--- a/test/chunking-form/samples/resolve-dynamic-import/_expected/cjs/main.js
+++ b/test/chunking-form/samples/resolve-dynamic-import/_expected/cjs/main.js
@@ -26,20 +26,20 @@ require('direct-absolute-external');
require('to-indirect-absolute-external');
// nested
-Promise.resolve(require('./generated-existing.js'));
-Promise.resolve(_interopNamespace(require('./direct-relative-external')));
-Promise.resolve(_interopNamespace(require('to-indirect-relative-external')));
-Promise.resolve(_interopNamespace(require('direct-absolute-external')));
-Promise.resolve(_interopNamespace(require('to-indirect-absolute-external')));
+new Promise(function (resolve) { resolve(require('./generated-existing.js')); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('./direct-relative-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('to-indirect-relative-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('direct-absolute-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('to-indirect-absolute-external'))); });
//main
-Promise.resolve(require('./generated-existing.js'));
-Promise.resolve(_interopNamespace(require('./direct-relative-external')));
-Promise.resolve(_interopNamespace(require('to-indirect-relative-external')));
-Promise.resolve(_interopNamespace(require('direct-absolute-external')));
-Promise.resolve(_interopNamespace(require('to-indirect-absolute-external')));
+new Promise(function (resolve) { resolve(require('./generated-existing.js')); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('./direct-relative-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('to-indirect-relative-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('direct-absolute-external'))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('to-indirect-absolute-external'))); });
-Promise.resolve(_interopNamespace(require('dynamic-direct-external' + unknown)));
-Promise.resolve(_interopNamespace(require('to-dynamic-indirect-external')));
-Promise.resolve(require('./generated-existing.js'));
-Promise.resolve(_interopNamespace(require('my' + 'replacement')));
+new Promise(function (resolve) { resolve(_interopNamespace(require('dynamic-direct-external' + unknown))); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('to-dynamic-indirect-external'))); });
+new Promise(function (resolve) { resolve(require('./generated-existing.js')); });
+new Promise(function (resolve) { resolve(_interopNamespace(require('my' + 'replacement'))); });
diff --git a/test/chunking-form/samples/sanitize-internal-exports/_expected/cjs/main.js b/test/chunking-form/samples/sanitize-internal-exports/_expected/cjs/main.js
index 202e70c12c0..6ac4cd24d43 100644
--- a/test/chunking-form/samples/sanitize-internal-exports/_expected/cjs/main.js
+++ b/test/chunking-form/samples/sanitize-internal-exports/_expected/cjs/main.js
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
var __chunk_1 = require('./generated-chunk.js');
-const lazy = Promise.resolve(require('./generated-lazy.js'));
+const lazy = new Promise(function (resolve) { resolve(require('./generated-lazy.js')); });
exports.v1 = __chunk_1.v1;
exports.v10 = __chunk_1.v10;
diff --git a/test/form/samples/deconflict-format-specific-globals/_expected/cjs.js b/test/form/samples/deconflict-format-specific-globals/_expected/cjs.js
index 675b430f276..e4b705b3e7e 100644
--- a/test/form/samples/deconflict-format-specific-globals/_expected/cjs.js
+++ b/test/form/samples/deconflict-format-specific-globals/_expected/cjs.js
@@ -34,7 +34,7 @@ const document$1 = 1;
const URL$1 = 1;
console.log(_interopDefault$1, _interopNamespace$1, module$1, require$1, exports$1, document$1, URL$1);
-Promise.resolve(_interopNamespace(require('external')));
+new Promise(function (resolve) { resolve(_interopNamespace(require('external'))); });
exports.default = 0;
console.log((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cjs.js', document.baseURI).href)));
@@ -48,7 +48,7 @@ function nested1() {
const URL$1 = 1;
console.log(_interopDefault, _interopNamespace$1, module, require$1, exports$1, document$1, URL$1);
- Promise.resolve(_interopNamespace(require('external')));
+ new Promise(function (resolve) { resolve(_interopNamespace(require('external'))); });
exports.default = 1;
console.log((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('cjs.js', document.baseURI).href)));
}
diff --git a/test/form/samples/resolve-external-dynamic-imports/_expected/cjs.js b/test/form/samples/resolve-external-dynamic-imports/_expected/cjs.js
index 4b0f1123560..1c1da77d519 100644
--- a/test/form/samples/resolve-external-dynamic-imports/_expected/cjs.js
+++ b/test/form/samples/resolve-external-dynamic-imports/_expected/cjs.js
@@ -27,7 +27,7 @@ var myExternal = _interopDefault(require('external'));
const test = () => myExternal;
-const someDynamicImport = () => Promise.resolve(_interopNamespace(require('external')));
+const someDynamicImport = () => new Promise(function (resolve) { resolve(_interopNamespace(require('external'))); });
exports.someDynamicImport = someDynamicImport;
exports.test = test;
diff --git a/test/function/samples/catch-dynamic-import-failure/_config.js b/test/function/samples/catch-dynamic-import-failure/_config.js
new file mode 100644
index 00000000000..475d2078603
--- /dev/null
+++ b/test/function/samples/catch-dynamic-import-failure/_config.js
@@ -0,0 +1,16 @@
+const assert = require('assert');
+
+module.exports = {
+ description: 'allows catching failed dynamic imports',
+ options: {
+ input: ['main', 'exists-default'],
+ external: ['does-not-exist']
+ },
+ exports(exports) {
+ return exports.then(result => {
+ assert.strictEqual(result[0].message, 'exists-named');
+ assert.strictEqual(result[1].message, 'exists-default');
+ assert.strictEqual(result[2].message, "Cannot find module 'does-not-exist'");
+ });
+ }
+};
diff --git a/test/function/samples/catch-dynamic-import-failure/exists-default.js b/test/function/samples/catch-dynamic-import-failure/exists-default.js
new file mode 100644
index 00000000000..37d50bb6605
--- /dev/null
+++ b/test/function/samples/catch-dynamic-import-failure/exists-default.js
@@ -0,0 +1,2 @@
+export default 42;
+throw new Error('exists-default');
diff --git a/test/function/samples/catch-dynamic-import-failure/exists-named.js b/test/function/samples/catch-dynamic-import-failure/exists-named.js
new file mode 100644
index 00000000000..35df0b26886
--- /dev/null
+++ b/test/function/samples/catch-dynamic-import-failure/exists-named.js
@@ -0,0 +1,2 @@
+export const value = 42;
+throw new Error('exists-named');
diff --git a/test/function/samples/catch-dynamic-import-failure/main.js b/test/function/samples/catch-dynamic-import-failure/main.js
new file mode 100644
index 00000000000..eaa837a2d14
--- /dev/null
+++ b/test/function/samples/catch-dynamic-import-failure/main.js
@@ -0,0 +1,5 @@
+export default Promise.all([
+ import('./exists-named.js').catch(err => err),
+ import('./exists-default.js').catch(err => err),
+ import('does-not-exist').catch(err => err)
+]);
diff --git a/test/function/samples/dynamic-import-expression/_config.js b/test/function/samples/dynamic-import-expression/_config.js
index 05eca696b13..4844bfc3fd4 100644
--- a/test/function/samples/dynamic-import-expression/_config.js
+++ b/test/function/samples/dynamic-import-expression/_config.js
@@ -23,7 +23,7 @@ module.exports = {
}
]
},
- runtimeError(error) {
- assert.equal(error.message.split('\n')[0], "Cannot find module 'x/y'");
+ exports(exports) {
+ return exports.catch(err => assert.strictEqual(err.message, "Cannot find module 'x/y'"));
}
};
diff --git a/test/function/samples/dynamic-import-expression/main.js b/test/function/samples/dynamic-import-expression/main.js
index 078da170d8e..f70305f0004 100644
--- a/test/function/samples/dynamic-import-expression/main.js
+++ b/test/function/samples/dynamic-import-expression/main.js
@@ -1 +1 @@
-import( 'x/' + 'y' )
\ No newline at end of file
+export default import('x/' + 'y');
diff --git a/test/function/samples/dynamic-import-rewriting/_config.js b/test/function/samples/dynamic-import-rewriting/_config.js
index 0f30dccdc16..5d2dce5b68c 100644
--- a/test/function/samples/dynamic-import-rewriting/_config.js
+++ b/test/function/samples/dynamic-import-rewriting/_config.js
@@ -13,9 +13,6 @@ module.exports = {
]
},
exports(exports) {
- return exports.promise;
- },
- runtimeError(error) {
- assert.equal(error.message.split('\n')[0], "Cannot find module 'asdf'");
+ return exports.promise.catch(err => assert.equal(err.message, "Cannot find module 'asdf'"));
}
};