From d7f80146e5aac2599a23371ff6f07762dd893f62 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig Date: Tue, 23 Jun 2020 14:42:40 +0200 Subject: [PATCH] Add explanation --- packages/babel-helper-module-transforms/src/index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/babel-helper-module-transforms/src/index.js b/packages/babel-helper-module-transforms/src/index.js index c9642bcc13ef..81983f773c09 100644 --- a/packages/babel-helper-module-transforms/src/index.js +++ b/packages/babel-helper-module-transforms/src/index.js @@ -241,7 +241,13 @@ function buildNamespaceReexport(metadata, namespace, loose) { EXPORTS[key] = NAMESPACE[key]; }); ` - : template.statement` + : // Also skip already assigned bindings if they are strictly equal + // to be somewhat more spec-compliant when a file has multiple + // namespace re-exports that would cause a binding to be exported + // multiple times. However, multiple bindings of the same name that + // export the same primitive value are silently skipped + // (the spec requires an "ambigous bindings" early error here). + template.statement` Object.keys(NAMESPACE).forEach(function(key) { if (key === "default" || key === "__esModule") return; VERIFY_NAME_LIST;