From 47097196bd0e9bf5ebad53a459cccd16edff16f7 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Sat, 10 Oct 2020 01:14:00 +0200 Subject: [PATCH] skip connections copied to concatenated module fixes #11617 --- lib/optimize/ConcatenatedModule.js | 1 + test/cases/scope-hoisting/import-order-11617/a.js | 6 ++++++ test/cases/scope-hoisting/import-order-11617/b.js | 5 +++++ test/cases/scope-hoisting/import-order-11617/c.js | 3 +++ test/cases/scope-hoisting/import-order-11617/index.js | 8 ++++++++ test/cases/scope-hoisting/import-order-11617/tracker.js | 5 +++++ test/cases/scope-hoisting/import-order-11617/x.js | 1 + test/cases/scope-hoisting/import-order-11617/y.js | 1 + 8 files changed, 30 insertions(+) create mode 100644 test/cases/scope-hoisting/import-order-11617/a.js create mode 100644 test/cases/scope-hoisting/import-order-11617/b.js create mode 100644 test/cases/scope-hoisting/import-order-11617/c.js create mode 100644 test/cases/scope-hoisting/import-order-11617/index.js create mode 100644 test/cases/scope-hoisting/import-order-11617/tracker.js create mode 100644 test/cases/scope-hoisting/import-order-11617/x.js create mode 100644 test/cases/scope-hoisting/import-order-11617/y.js diff --git a/lib/optimize/ConcatenatedModule.js b/lib/optimize/ConcatenatedModule.js index fb8ac12cc..e2bb2526a 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 000000000..72a4ea378 --- /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 000000000..06015728c --- /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 000000000..df81336b7 --- /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 000000000..620e8555f --- /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 000000000..153896765 --- /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 000000000..122ec5d2d --- /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 000000000..122ec5d2d --- /dev/null +++ b/test/cases/scope-hoisting/import-order-11617/y.js @@ -0,0 +1 @@ +console.log.bind(console);