diff --git a/lib/optimize/ConcatenatedModule.js b/lib/optimize/ConcatenatedModule.js index fb8ac12cc7d..e2bb2526a88 100644 --- a/lib/optimize/ConcatenatedModule.js +++ b/lib/optimize/ConcatenatedModule.js @@ -795,6 +795,7 @@ class ConcatenatedModule extends Module { return false; return ( connection && + connection.resolvedOriginModule === module && connection.module && connection.isTargetActive(runtime) ); diff --git a/test/cases/scope-hoisting/import-order-11617/a.js b/test/cases/scope-hoisting/import-order-11617/a.js new file mode 100644 index 00000000000..72a4ea378cf --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/a.js @@ -0,0 +1,6 @@ +import "./b"; +import "./c"; + +import { track } from "./tracker"; + +track("a"); diff --git a/test/cases/scope-hoisting/import-order-11617/b.js b/test/cases/scope-hoisting/import-order-11617/b.js new file mode 100644 index 00000000000..06015728c19 --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/b.js @@ -0,0 +1,5 @@ +import "./x"; + +import { track } from "./tracker"; + +track("b"); diff --git a/test/cases/scope-hoisting/import-order-11617/c.js b/test/cases/scope-hoisting/import-order-11617/c.js new file mode 100644 index 00000000000..df81336b7aa --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/c.js @@ -0,0 +1,3 @@ +var track = require("./tracker").track; + +track("c"); diff --git a/test/cases/scope-hoisting/import-order-11617/index.js b/test/cases/scope-hoisting/import-order-11617/index.js new file mode 100644 index 00000000000..620e8555fb4 --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/index.js @@ -0,0 +1,8 @@ +import "./x"; +import "./y"; +import "./a"; +import { log } from "./tracker"; + +it("should evaluate import in the correct order", function () { + expect(log).toEqual(["b", "c", "a"]); +}); diff --git a/test/cases/scope-hoisting/import-order-11617/tracker.js b/test/cases/scope-hoisting/import-order-11617/tracker.js new file mode 100644 index 00000000000..15389676588 --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/tracker.js @@ -0,0 +1,5 @@ +export var log = []; + +export function track(name) { + log.push(name); +} diff --git a/test/cases/scope-hoisting/import-order-11617/x.js b/test/cases/scope-hoisting/import-order-11617/x.js new file mode 100644 index 00000000000..122ec5d2d79 --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/x.js @@ -0,0 +1 @@ +console.log.bind(console); diff --git a/test/cases/scope-hoisting/import-order-11617/y.js b/test/cases/scope-hoisting/import-order-11617/y.js new file mode 100644 index 00000000000..122ec5d2d79 --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/y.js @@ -0,0 +1 @@ +console.log.bind(console);