diff --git a/lib/optimize/ConcatenatedModule.js b/lib/optimize/ConcatenatedModule.js index 558aec96fd9..9789c1b720e 100644 --- a/lib/optimize/ConcatenatedModule.js +++ b/lib/optimize/ConcatenatedModule.js @@ -143,6 +143,7 @@ function getPathInAst(ast, node) { } function enterNode(n) { + if(!n) return undefined; const r = n.range; if(r) { if(r[0] <= nr[0] && r[1] >= nr[1]) { diff --git a/test/cases/scope-hoisting/issue-6407/import-one.js b/test/cases/scope-hoisting/issue-6407/import-one.js new file mode 100644 index 00000000000..4caae05377f --- /dev/null +++ b/test/cases/scope-hoisting/issue-6407/import-one.js @@ -0,0 +1,4 @@ +function foo(n) { + return 'bar'; +} +export default [, foo]; diff --git a/test/cases/scope-hoisting/issue-6407/import-two.js b/test/cases/scope-hoisting/issue-6407/import-two.js new file mode 100644 index 00000000000..4caae05377f --- /dev/null +++ b/test/cases/scope-hoisting/issue-6407/import-two.js @@ -0,0 +1,4 @@ +function foo(n) { + return 'bar'; +} +export default [, foo]; diff --git a/test/cases/scope-hoisting/issue-6407/index.js b/test/cases/scope-hoisting/issue-6407/index.js new file mode 100644 index 00000000000..193213228fa --- /dev/null +++ b/test/cases/scope-hoisting/issue-6407/index.js @@ -0,0 +1,11 @@ +import importOne from './import-one'; +import importTwo from './import-two'; + +it("should concatenate modules default exports and empty array values", function() { + importOne.length.should.be.eql(2); + (typeof importOne[0]).should.be.eql('undefined'); + (typeof importOne[1]).should.be.eql('function'); + importTwo.length.should.be.eql(2); + (typeof importTwo[0]).should.be.eql('undefined'); + (typeof importTwo[1]).should.be.eql('function'); +});