From da598b3d33fc646eb0dc2a3d7be7ce6e030e8d1c Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 20 Feb 2017 14:03:53 +0200 Subject: [PATCH] ensure __esModule flag check for existing, only on object-like --- src/format-helpers.js | 8 +++++--- src/instantiate.js | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/format-helpers.js b/src/format-helpers.js index 25581ab9..adcabddc 100644 --- a/src/format-helpers.js +++ b/src/format-helpers.js @@ -384,9 +384,11 @@ function amdGetCJSDeps(source, requireIndex) { function wrapEsModuleExecute (execute) { return function (require, exports, module) { execute(require, exports, module); - Object.defineProperty(module.exports, '__esModule', { - value: true - }); + exports = module.exports; + if ((typeof exports === 'object' || typeof exports === 'function') && !('__esModule' in exports)) + Object.defineProperty(module.exports, '__esModule', { + value: true + }); }; } diff --git a/src/instantiate.js b/src/instantiate.js index d18f19f4..565b59ad 100644 --- a/src/instantiate.js +++ b/src/instantiate.js @@ -12,7 +12,8 @@ if (typeof require !== 'undefined' && typeof process !== 'undefined' && !process nodeRequire = require; function setMetaEsModule (metadata, moduleValue) { - if (metadata.load.esModule && !('__esModule' in moduleValue)) + if (metadata.load.esModule && (typeof moduleValue === 'object' || typeof moduleValue === 'function') && + !('__esModule' in moduleValue)) Object.defineProperty(moduleValue, '__esModule', { value: true });