From 4fc2b5cec5dfe8cca32d75c0c11ffb01971fc1fb Mon Sep 17 00:00:00 2001 From: Oliver Hoffmann Date: Fri, 24 Jul 2015 11:39:19 +0200 Subject: [PATCH 1/5] update to core-js 1.0.0 --- packages/babel-runtime/package.json | 4 ++-- packages/babel/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 49ce712d16..9b6b477940 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -6,10 +6,10 @@ "repository": "babel/babel", "author": "Sebastian McKenzie ", "dependencies": { - "core-js": "^0.9.0" + "core-js": "^1.0.0" }, "devDependencies": { "babel-plugin-runtime": "^1.0.7", "regenerator": "^0.8.34" } -} \ No newline at end of file +} diff --git a/packages/babel/package.json b/packages/babel/package.json index 8bb33cab32..2c1ed6b3df 100644 --- a/packages/babel/package.json +++ b/packages/babel/package.json @@ -46,7 +46,7 @@ "bluebird": "^2.9.33", "chalk": "^1.0.0", "convert-source-map": "^1.1.0", - "core-js": "^0.9.0", + "core-js": "^1.0.0", "debug": "^2.1.1", "detect-indent": "^3.0.0", "esutils": "^2.0.0", From beaff831d2c4b6c499581c6587e73999a5c18494 Mon Sep 17 00:00:00 2001 From: Dan Fabulich Date: Sun, 26 Jul 2015 23:26:00 -0700 Subject: [PATCH 2/5] Add Unicode BOM to browser.js, fixes issue #340 running from file URL. --- packages/babel/scripts/build-dist.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/babel/scripts/build-dist.sh b/packages/babel/scripts/build-dist.sh index a2c7845393..3993f3235f 100755 --- a/packages/babel/scripts/build-dist.sh +++ b/packages/babel/scripts/build-dist.sh @@ -12,8 +12,11 @@ node scripts/cache-templates node $BROWSERIFY_CMD -e lib/polyfill.js >dist/polyfill.js node $UGLIFY_CMD dist/polyfill.js >dist/polyfill.min.js -node $BROWSERIFY_CMD lib/api/browser.js -s babel $BROWSERIFY_IGNORE >dist/browser.js -node $UGLIFY_CMD dist/browser.js >dist/browser.min.js +# Add a Unicode BOM so browsers will interpret the file as UTF-8 +printf '\xEF\xBB\xBF' > dist/browser.js +node $BROWSERIFY_CMD lib/api/browser.js -s babel $BROWSERIFY_IGNORE >>dist/browser.js +printf '\xEF\xBB\xBF' > dist/browser.min.js +node $UGLIFY_CMD dist/browser.js >>dist/browser.min.js node $BROWSERIFY_CMD lib/api/node.js --node $BROWSERIFY_IGNORE >dist/node.js From 04857656d6245285a8f17148f725aae2287782e6 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 30 Jul 2015 18:41:01 -0400 Subject: [PATCH 3/5] Update Regenerator dependency to 0.8.35. I fully expect the CI tests to pass, but it's nice to have that safety layer. --- packages/babel/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babel/package.json b/packages/babel/package.json index 58b810865f..152fc53bd8 100644 --- a/packages/babel/package.json +++ b/packages/babel/package.json @@ -62,7 +62,7 @@ "path-exists": "^1.0.0", "path-is-absolute": "^1.0.0", "private": "^0.1.6", - "regenerator": "0.8.34", + "regenerator": "0.8.35", "regexpu": "^1.1.2", "repeating": "^1.1.2", "resolve": "^1.1.6", @@ -75,4 +75,4 @@ "trim-right": "^1.0.0", "try-resolve": "^1.0.0" } -} \ No newline at end of file +} From 75d78623f706bb099e19ab29db4ca30f51d90346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Mu=C3=B1oz?= Date: Thu, 30 Jul 2015 04:42:50 -0400 Subject: [PATCH 4/5] Register import bindings to the specifier instead of the declaration - fixes #2122 --- .../babel/src/traversal/path/introspection.js | 23 +++++++++---------- packages/babel/src/traversal/scope/index.js | 9 ++++++-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/babel/src/traversal/path/introspection.js b/packages/babel/src/traversal/path/introspection.js index 804e06d9d1..0adafb130b 100644 --- a/packages/babel/src/traversal/path/introspection.js +++ b/packages/babel/src/traversal/path/introspection.js @@ -171,27 +171,26 @@ export function referencesImport(moduleSource, importName) { if (!binding || binding.kind !== "module") return false; var path = binding.path; - if (!path.isImportDeclaration()) return false; + var parent = path.parentPath; + if (!parent.isImportDeclaration()) return false; // check moduleSource - if (path.node.source.value === moduleSource) { + if (parent.node.source.value === moduleSource) { if (!importName) return true; } else { return false; } - for (var specifier of (path.node.specifiers: Array)) { - if (t.isSpecifierDefault(specifier) && importName === "default") { - return true; - } + if (path.isImportDefaultSpecifier() && importName === "default") { + return true; + } - if (t.isImportNamespaceSpecifier(specifier) && importName === "*") { - return true; - } + if (path.isImportNamespaceSpecifier() && importName === "*") { + return true; + } - if (t.isImportSpecifier(specifier) && specifier.imported.name === importName) { - return true; - } + if (path.isImportSpecifier() && path.node.imported.name === importName) { + return true; } return false; diff --git a/packages/babel/src/traversal/scope/index.js b/packages/babel/src/traversal/scope/index.js index d2a5807c39..d077459289 100644 --- a/packages/babel/src/traversal/scope/index.js +++ b/packages/babel/src/traversal/scope/index.js @@ -540,8 +540,13 @@ export default class Scope { } } else if (path.isClassDeclaration()) { this.registerBinding("let", path); - } else if (path.isImportDeclaration() || path.isExportDeclaration()) { - this.registerBinding("module", path); + } else if (path.isImportDeclaration()) { + var specifiers = path.get("specifiers"); + for (var specifier of (specifiers: Array)) { + this.registerBinding("module", specifier); + } + } else if (path.isExportDeclaration()) { + this.registerBinding("module", path.get("declaration")); } else { this.registerBinding("unknown", path); } From 2ab41ec1f71f405f7e718db2f11acbc010862b0d Mon Sep 17 00:00:00 2001 From: Jesse McCarthy Date: Thu, 30 Jul 2015 22:16:04 -0400 Subject: [PATCH 5/5] Break loop as soon as change detected. --- .../src/transformation/transformers/internal/block-hoist.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/babel/src/transformation/transformers/internal/block-hoist.js b/packages/babel/src/transformation/transformers/internal/block-hoist.js index ef611fe7fd..5cee32309e 100644 --- a/packages/babel/src/transformation/transformers/internal/block-hoist.js +++ b/packages/babel/src/transformation/transformers/internal/block-hoist.js @@ -26,7 +26,10 @@ export var visitor = { var hasChange = false; for (var i = 0; i < node.body.length; i++) { var bodyNode = node.body[i]; - if (bodyNode && bodyNode._blockHoist != null) hasChange = true; + if (bodyNode && bodyNode._blockHoist != null) { + hasChange = true; + break; + } } if (!hasChange) return;