diff --git a/lib/dependencies/HarmonyImportDependency.js b/lib/dependencies/HarmonyImportDependency.js index f5a62d041fc..433cabf146c 100644 --- a/lib/dependencies/HarmonyImportDependency.js +++ b/lib/dependencies/HarmonyImportDependency.js @@ -33,8 +33,8 @@ HarmonyImportDependency.makeStatement = function(declare, dep, outputOptions, re } else if(dep.importedVar) { content = "/* harmony import */ " + declaration + dep.importedVar + " = __webpack_require__(" + comment + JSON.stringify(dep.module.id) + ");\n"; if(!dep.module.meta.harmonyModule) { - content += "/* harmony import */ " + declaration + dep.importedVar + "_default = function() { return " + dep.importedVar + " && typeof " + dep.importedVar + " === 'object' && 'default' in " + dep.importedVar + " ? " + dep.importedVar + "['default'] : " + dep.importedVar + "; }\n"; - content += "/* harmony import */ Object.defineProperty(" + dep.importedVar + "_default, 'a', { get: function() { return " + dep.importedVar + "_default(); }});\n"; + content += "/* harmony import */ " + declaration + dep.importedVar + "_default = " + dep.importedVar + " && " + dep.importedVar + ".__esModule ? function() { return " + dep.importedVar + "['default'] } : function() { return " + dep.importedVar + "; }\n"; + content += "/* harmony import */ Object.defineProperty(" + dep.importedVar + "_default, 'a', { get: " + dep.importedVar + "_default });\n"; } } else { content = ""; diff --git a/test/cases/parsing/harmony/node_modules/commonjs-trans.js b/test/cases/parsing/harmony/node_modules/commonjs-trans.js index c0a1a22ea72..148ade17b7b 100644 --- a/test/cases/parsing/harmony/node_modules/commonjs-trans.js +++ b/test/cases/parsing/harmony/node_modules/commonjs-trans.js @@ -1,5 +1,7 @@ +exports.__esModule = true; + exports.default = function Thing() { this.value = "thing"; }; -exports.Other = "other"; \ No newline at end of file +exports.Other = "other";