diff --git a/src/ast/nodes/MetaProperty.ts b/src/ast/nodes/MetaProperty.ts index cc3e2de28b2..9a328513d62 100644 --- a/src/ast/nodes/MetaProperty.ts +++ b/src/ast/nodes/MetaProperty.ts @@ -36,14 +36,14 @@ export default class MetaProperty extends NodeBase { ? parent.propertyKey : null); if (metaProperty) { - if (metaProperty === 'url') { - this.scope.addAccessedGlobalsByFormat(accessedMetaUrlGlobals); - } else if ( + if ( metaProperty.startsWith(FILE_PREFIX) || metaProperty.startsWith(ASSET_PREFIX) || metaProperty.startsWith(CHUNK_PREFIX) ) { this.scope.addAccessedGlobalsByFormat(accessedFileUrlGlobals); + } else { + this.scope.addAccessedGlobalsByFormat(accessedMetaUrlGlobals); } } } diff --git a/test/form/samples/import-meta-resolve/_config.js b/test/form/samples/import-meta-resolve/_config.js new file mode 100644 index 00000000000..aba00ef3ded --- /dev/null +++ b/test/form/samples/import-meta-resolve/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'supports import.meta.resolve' +}; diff --git a/test/form/samples/import-meta-resolve/_expected/amd.js b/test/form/samples/import-meta-resolve/_expected/amd.js new file mode 100644 index 00000000000..b5156ab0be7 --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/amd.js @@ -0,0 +1,5 @@ +define(['module'], function (module) { 'use strict'; + + undefined('./foo.js'); + +}); diff --git a/test/form/samples/import-meta-resolve/_expected/cjs.js b/test/form/samples/import-meta-resolve/_expected/cjs.js new file mode 100644 index 00000000000..74654a688c1 --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/cjs.js @@ -0,0 +1,3 @@ +'use strict'; + +undefined('./foo.js'); diff --git a/test/form/samples/import-meta-resolve/_expected/es.js b/test/form/samples/import-meta-resolve/_expected/es.js new file mode 100644 index 00000000000..295126042e1 --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/es.js @@ -0,0 +1 @@ +import.meta.resolve('./foo.js'); diff --git a/test/form/samples/import-meta-resolve/_expected/iife.js b/test/form/samples/import-meta-resolve/_expected/iife.js new file mode 100644 index 00000000000..902be78fdce --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/iife.js @@ -0,0 +1,6 @@ +(function () { + 'use strict'; + + undefined('./foo.js'); + +}()); diff --git a/test/form/samples/import-meta-resolve/_expected/system.js b/test/form/samples/import-meta-resolve/_expected/system.js new file mode 100644 index 00000000000..9712e5d98d3 --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/system.js @@ -0,0 +1,10 @@ +System.register([], function (exports, module) { + 'use strict'; + return { + execute: function () { + + module.meta.resolve('./foo.js'); + + } + }; +}); diff --git a/test/form/samples/import-meta-resolve/_expected/umd.js b/test/form/samples/import-meta-resolve/_expected/umd.js new file mode 100644 index 00000000000..78d19e6c693 --- /dev/null +++ b/test/form/samples/import-meta-resolve/_expected/umd.js @@ -0,0 +1,8 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +}(function () { 'use strict'; + + undefined('./foo.js'); + +})); diff --git a/test/form/samples/import-meta-resolve/main.js b/test/form/samples/import-meta-resolve/main.js new file mode 100644 index 00000000000..295126042e1 --- /dev/null +++ b/test/form/samples/import-meta-resolve/main.js @@ -0,0 +1 @@ +import.meta.resolve('./foo.js');