From f1545cbf039b0ec8863f7307ec4484b981b7bee1 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sat, 18 Jul 2015 23:29:14 -0400 Subject: [PATCH] mark export declarations as used, to preserve side-effects (#43) --- src/Bundle.js | 4 +++- src/Module.js | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Bundle.js b/src/Bundle.js index 538ba45..9a857fd 100644 --- a/src/Bundle.js +++ b/src/Bundle.js @@ -418,7 +418,9 @@ export default class Bundle { keys( statement.modifies ).forEach( name => { const definingStatement = module.definitions[ name ]; - const exportDeclaration = module.exports[ name ]; + const exportDeclaration = module.exports[ name ] || ( + module.exports.default && module.exports.default.identifier === name && module.exports.default + ); const shouldMark = ( definingStatement && definingStatement.isIncluded ) || ( exportDeclaration && exportDeclaration.isUsed ); diff --git a/src/Module.js b/src/Module.js index 946a96e..018d2b6 100644 --- a/src/Module.js +++ b/src/Module.js @@ -412,6 +412,7 @@ export default class Module { }); } + exportDeclaration.isUsed = true; return module.mark( exportDeclaration.localName ); }); }