diff --git a/src/ast/nodes/ExportDefaultDeclaration.ts b/src/ast/nodes/ExportDefaultDeclaration.ts index 34bab720c0b..2840fd3e582 100644 --- a/src/ast/nodes/ExportDefaultDeclaration.ts +++ b/src/ast/nodes/ExportDefaultDeclaration.ts @@ -46,6 +46,13 @@ export default class ExportDefaultDeclaration extends NodeBase { variable: ExportDefaultVariable; private declarationName: string; + include(includeAllChildrenRecursively: boolean) { + super.include(includeAllChildrenRecursively); + if (includeAllChildrenRecursively) { + this.context.includeVariable(this.variable); + } + } + initialise() { this.included = false; this.declarationName = diff --git a/test/form/samples/no-treeshake-default-export-conflict/_config.js b/test/form/samples/no-treeshake-default-export-conflict/_config.js new file mode 100644 index 00000000000..b312d610d77 --- /dev/null +++ b/test/form/samples/no-treeshake-default-export-conflict/_config.js @@ -0,0 +1,6 @@ +module.exports = { + description: 'properly deconflicts default exports when not tree-shaking', + options: { + treeshake: false + } +}; diff --git a/test/form/samples/no-treeshake-default-export-conflict/_expected.js b/test/form/samples/no-treeshake-default-export-conflict/_expected.js new file mode 100644 index 00000000000..825d8841cf5 --- /dev/null +++ b/test/form/samples/no-treeshake-default-export-conflict/_expected.js @@ -0,0 +1,7 @@ +function foo() { + return 'foo'; +} + +function foo$1() { + return 'default'; +} diff --git a/test/form/samples/no-treeshake-default-export-conflict/foo.js b/test/form/samples/no-treeshake-default-export-conflict/foo.js new file mode 100644 index 00000000000..a95711b9f43 --- /dev/null +++ b/test/form/samples/no-treeshake-default-export-conflict/foo.js @@ -0,0 +1,7 @@ +export function foo() { + return 'foo'; +} + +export default function() { + return 'default'; +} diff --git a/test/form/samples/no-treeshake-default-export-conflict/main.js b/test/form/samples/no-treeshake-default-export-conflict/main.js new file mode 100644 index 00000000000..ead12a719a8 --- /dev/null +++ b/test/form/samples/no-treeshake-default-export-conflict/main.js @@ -0,0 +1 @@ +import './foo';