diff --git a/src/finalisers/cjs.js b/src/finalisers/cjs.js index c71f59d..07adf72 100644 --- a/src/finalisers/cjs.js +++ b/src/finalisers/cjs.js @@ -6,7 +6,7 @@ export default function cjs ( bundle, magicString, { exportMode }, options ) { const hasDefaultImport = bundle.externalModules.some( mod => mod.declarations.default); if (hasDefaultImport) { - intro += `function _interopDefault (ex) { return 'default' in ex ? ex['default'] : ex; }\n\n`; + intro += `function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\n`; } // TODO handle empty imports, once they're supported diff --git a/test/form/external-imports-custom-names/_expected/cjs.js b/test/form/external-imports-custom-names/_expected/cjs.js index 8f6506e..9600acd 100644 --- a/test/form/external-imports-custom-names/_expected/cjs.js +++ b/test/form/external-imports-custom-names/_expected/cjs.js @@ -1,6 +1,6 @@ 'use strict'; -function _interopDefault (ex) { return 'default' in ex ? ex['default'] : ex; } +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var $ = _interopDefault(require('jquery')); diff --git a/test/form/external-imports/_expected/cjs.js b/test/form/external-imports/_expected/cjs.js index a3ee9b0..94dbdae 100644 --- a/test/form/external-imports/_expected/cjs.js +++ b/test/form/external-imports/_expected/cjs.js @@ -1,6 +1,6 @@ 'use strict'; -function _interopDefault (ex) { return 'default' in ex ? ex['default'] : ex; } +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var factory = _interopDefault(require('factory')); var baz = require('baz');