From 4b066f7f1b7963dec867f9c85d04504190b2f457 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:12:38 +1100 Subject: [PATCH 01/18] add input sourcemap false option #827 --- src/babel/transformation/file.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/babel/transformation/file.js b/src/babel/transformation/file.js index 900ffc3106..5054d7bdcd 100644 --- a/src/babel/transformation/file.js +++ b/src/babel/transformation/file.js @@ -280,10 +280,12 @@ export default class File { parseInputSourceMap(code: string) { var opts = this.opts; - var inputMap = convertSourceMap.fromSource(code); - if (inputMap) { - opts.inputSourceMap = inputMap.toObject(); - code = convertSourceMap.removeComments(code); + if (opts.inputSourceMap === false) { + var inputMap = convertSourceMap.fromSource(code); + if (inputMap) { + opts.inputSourceMap = inputMap.toObject(); + code = convertSourceMap.removeComments(code); + } } return code; From bb26183b44f3f582b32784a455abf2d4393543fb Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:14:17 +1100 Subject: [PATCH 02/18] set `inputSourceMap` to `null` by default --- src/babel/transformation/file.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/babel/transformation/file.js b/src/babel/transformation/file.js index 5054d7bdcd..c4a9cf7b34 100644 --- a/src/babel/transformation/file.js +++ b/src/babel/transformation/file.js @@ -139,7 +139,7 @@ export default class File { returnUsedHelpers: false, externalHelpers: false, auxilaryComment: "", - inputSourceMap: false, + inputSourceMap: null, experimental: false, reactCompat: false, playground: false, From eb4922b1ec19cdc92a670a21c73b3cd222c2114f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:25:19 +1100 Subject: [PATCH 03/18] update acorn-babel --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6e2cd2721b..e7293c5105 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "test": "make test" }, "dependencies": { - "acorn-babel": "0.11.1-37", + "acorn-babel": "0.11.1-38", "ast-types": "~0.7.0", "chalk": "^1.0.0", "chokidar": "^0.12.6", From 4971d0c7f01a9a108131d1b5047798336b2c678c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:25:37 +1100 Subject: [PATCH 04/18] fix labeled nested for ofs - fixes #996 --- .../transformation/transformers/es6/for-of.js | 7 +-- .../es6-for-of/nested-label-for-of/actual.js | 5 ++ .../nested-label-for-of/expected.js | 48 +++++++++++++++++++ 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/transformation/es6-for-of/nested-label-for-of/actual.js create mode 100644 test/fixtures/transformation/es6-for-of/nested-label-for-of/expected.js diff --git a/src/babel/transformation/transformers/es6/for-of.js b/src/babel/transformation/transformers/es6/for-of.js index 28f7d98df0..7c6674ab2d 100644 --- a/src/babel/transformation/transformers/es6/for-of.js +++ b/src/babel/transformation/transformers/es6/for-of.js @@ -32,11 +32,8 @@ export function ForOfStatement(node, parent, scope, file) { // todo: find out why this is necessary? #538 loop._scopeInfo = node._scopeInfo; - if (build.replaceParent) { - this.parentPath.node = build.node; - } else { - return build.node; - } + if (build.replaceParent) this.parentPath.node = build.node; + return build.node; } var loose = function (node, parent, scope, file) { diff --git a/test/fixtures/transformation/es6-for-of/nested-label-for-of/actual.js b/test/fixtures/transformation/es6-for-of/nested-label-for-of/actual.js new file mode 100644 index 0000000000..73c8203449 --- /dev/null +++ b/test/fixtures/transformation/es6-for-of/nested-label-for-of/actual.js @@ -0,0 +1,5 @@ +b: for (let c of d()) { + for (let e of f()) { + continue b; + } +} diff --git a/test/fixtures/transformation/es6-for-of/nested-label-for-of/expected.js b/test/fixtures/transformation/es6-for-of/nested-label-for-of/expected.js new file mode 100644 index 0000000000..fd63d9c8f5 --- /dev/null +++ b/test/fixtures/transformation/es6-for-of/nested-label-for-of/expected.js @@ -0,0 +1,48 @@ +"use strict"; + +var _iteratorNormalCompletion = true; +var _didIteratorError = false; +var _iteratorError = undefined; + +try { + b: for (var _iterator = d()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var c = _step.value; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = f()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var e = _step2.value; + + continue b; + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"]) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } +} catch (err) { + _didIteratorError = true; + _iteratorError = err; +} finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"]) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } +} From 7c3d052714a9a5b702f6638d7de286cc9d6d514d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:27:40 +1100 Subject: [PATCH 05/18] add 4.7.9 changelog --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c96dbae186..461e1c7288 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,17 @@ _Note: Gaps between patch versions are faulty/broken releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. +## 4.7.9 + + * **Polish** + * Allow `inputSourceMap` to be set to `false` to skip the source map inference. + * Infer computed literal property names. + * **Bug Fix** + * Fix nested labeled for-ofs. + * Fix block scoping `break` colliding with the parent switch case. + * **Internal** + * Upgrade `acorn-babel`. + ## 4.7.8 * **Bug Fix** From 491cb26c1fff586fff6fd38ace4df7d6206004ce Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:29:13 +1100 Subject: [PATCH 06/18] remove console.log --- src/babel/transformation/helpers/name-method.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/babel/transformation/helpers/name-method.js b/src/babel/transformation/helpers/name-method.js index de2d8f423d..d7f8d3b6f1 100644 --- a/src/babel/transformation/helpers/name-method.js +++ b/src/babel/transformation/helpers/name-method.js @@ -123,7 +123,6 @@ export function bare(node, parent, scope) { var name; if (t.isLiteral(id)) { - console.log(id); name = id.value; } else if (t.isIdentifier(id)) { name = id.name; From a3b1fcc79cede4e209fa8e5e46f215c624d28ffc Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:30:14 +1100 Subject: [PATCH 07/18] v4.7.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e7293c5105..61b1ad2560 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel", "description": "Turn ES6 code into readable vanilla ES5 with source maps", - "version": "4.7.8", + "version": "4.7.9", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "repository": "babel/babel", From 27fc574e9f78071b77e910aab9799d78aa3d5ce9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Mar 2015 13:33:50 +1100 Subject: [PATCH 08/18] 4.7.9 --- packages/babel-runtime/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 2722b91e34..bbbda75b91 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,7 +1,7 @@ { "name": "babel-runtime", "description": "babel selfContained runtime", - "version": "4.7.8", + "version": "4.7.9", "repository": "babel/babel", "author": "Sebastian McKenzie ", "dependencies": { From a00d2c33d8c1818f3352f7afe1be1baec9acee0b Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 13 Mar 2015 10:46:50 -0400 Subject: [PATCH 09/18] fix inputSourceMap option See #827 - it looks like `opts.inputSourceMap` is the wrong way round, babel should only use an input sourcemap if the `inputSourceMap` option is *not* `false` --- src/babel/transformation/file.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/babel/transformation/file.js b/src/babel/transformation/file.js index c4a9cf7b34..ee40919b2f 100644 --- a/src/babel/transformation/file.js +++ b/src/babel/transformation/file.js @@ -280,7 +280,7 @@ export default class File { parseInputSourceMap(code: string) { var opts = this.opts; - if (opts.inputSourceMap === false) { + if (opts.inputSourceMap !== false) { var inputMap = convertSourceMap.fromSource(code); if (inputMap) { opts.inputSourceMap = inputMap.toObject(); From 75dda1005752090e4d990f8b0d23942ddd07cfaa Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 01:52:51 +1100 Subject: [PATCH 10/18] add 4.7.10 changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 461e1c7288..5839fa277c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,13 @@ _Note: Gaps between patch versions are faulty/broken releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. +## 4.7.10 + + * **Internal** + * Deprecate `playground.methodBinding` and `playground.objectGetterMemoization`. + * **Bug Fix** + * Fix `inputSourceMap` option. Thanks [@Rich-Harris](https://github.com/Rich-Harris)! + ## 4.7.9 * **Polish** From 2c053038137674aa4a0d6323d397458db4d55380 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 01:52:59 +1100 Subject: [PATCH 11/18] deprecate some playground transformers --- .../transformers/playground/memoization-operator.js | 1 + .../transformers/playground/object-getter-memoization.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/babel/transformation/transformers/playground/memoization-operator.js b/src/babel/transformation/transformers/playground/memoization-operator.js index 7c63ad102a..f8d55d854c 100644 --- a/src/babel/transformation/transformers/playground/memoization-operator.js +++ b/src/babel/transformation/transformers/playground/memoization-operator.js @@ -11,6 +11,7 @@ build(exports, { }, build(node, file) { + console.error("The memoization operator is deprecated and will be removed in 5.0.0"); return t.unaryExpression( "!", t.callExpression( diff --git a/src/babel/transformation/transformers/playground/object-getter-memoization.js b/src/babel/transformation/transformers/playground/object-getter-memoization.js index af5ffe8c4c..e2f0ac6487 100644 --- a/src/babel/transformation/transformers/playground/object-getter-memoization.js +++ b/src/babel/transformation/transformers/playground/object-getter-memoization.js @@ -20,6 +20,8 @@ export function MethodDefinition(node, parent, scope, file) { if (node.kind !== "memo") return; node.kind = "get"; + console.error("Object getter memoization is deprecated and will be removed in 5.0.0"); + var value = node.value; t.ensureBlock(value); From 2871d8a710f24aa5d42e9a0a4b5638637e63bedd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 01:57:26 +1100 Subject: [PATCH 12/18] v4.7.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61b1ad2560..70a1326a14 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel", "description": "Turn ES6 code into readable vanilla ES5 with source maps", - "version": "4.7.9", + "version": "4.7.10", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "repository": "babel/babel", From c23b47f7963800fb664e46649a19a2a26193de7b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:02:06 +1100 Subject: [PATCH 13/18] 4.7.10 --- packages/babel-runtime/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index bbbda75b91..06e2f7feec 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,7 +1,7 @@ { "name": "babel-runtime", "description": "babel selfContained runtime", - "version": "4.7.9", + "version": "4.7.10", "repository": "babel/babel", "author": "Sebastian McKenzie ", "dependencies": { From 33f7c0b67ee9124a3bf0161f24932949f3edc403 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:12:13 +1100 Subject: [PATCH 14/18] rejigger regex flag pulling --- src/babel/transformation/helpers/regex.js | 4 ++-- src/babel/transformation/transformers/es6/regex.unicode.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/babel/transformation/helpers/regex.js b/src/babel/transformation/helpers/regex.js index 9251fdb823..1d3d4c2a4c 100644 --- a/src/babel/transformation/helpers/regex.js +++ b/src/babel/transformation/helpers/regex.js @@ -7,7 +7,7 @@ export function is(node, flag) { export function pullFlag(node, flag) { var flags = node.regex.flags.split(""); - if (node.regex.flags.indexOf("u") < 0) return; - pull(flags, "u"); + if (node.regex.flags.indexOf(flag) < 0) return; + pull(flags, flag); node.regex.flags = flags.join(""); } diff --git a/src/babel/transformation/transformers/es6/regex.unicode.js b/src/babel/transformation/transformers/es6/regex.unicode.js index 2cf7717c7e..9bcc0ab8be 100644 --- a/src/babel/transformation/transformers/es6/regex.unicode.js +++ b/src/babel/transformation/transformers/es6/regex.unicode.js @@ -7,6 +7,6 @@ export function check(node) { export function Literal(node) { if (!regex.is(node, "u")) return; - regex.pullFlag(node, "y"); + regex.pullFlag(node, "u"); node.regex.pattern = rewritePattern(node.regex.pattern, node.regex.flags); } From 24807120bf63a33e5ccffbc4d3dbc7a21a033a6b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:26:20 +1100 Subject: [PATCH 15/18] fix unicode regexes stripping their unicode flag before being passed on two `regexpu` - fixes #1009 --- CHANGELOG.md | 5 +++++ src/babel/transformation/transformers/es6/regex.unicode.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5839fa277c..b928bb7d3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,11 @@ _Note: Gaps between patch versions are faulty/broken releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. +## 4.7.11 + + * **Bug Fix** + * Fix unicode regexes stripping their unicode flag before being passed on two `regexpu`. + ## 4.7.10 * **Internal** diff --git a/src/babel/transformation/transformers/es6/regex.unicode.js b/src/babel/transformation/transformers/es6/regex.unicode.js index 9bcc0ab8be..1f82388cbe 100644 --- a/src/babel/transformation/transformers/es6/regex.unicode.js +++ b/src/babel/transformation/transformers/es6/regex.unicode.js @@ -7,6 +7,6 @@ export function check(node) { export function Literal(node) { if (!regex.is(node, "u")) return; - regex.pullFlag(node, "u"); node.regex.pattern = rewritePattern(node.regex.pattern, node.regex.flags); + regex.pullFlag(node, "u"); } From b670ee18df657946037e94896c0de7ad5618bf15 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:28:32 +1100 Subject: [PATCH 16/18] fix unicode regex test --- .../fixtures/transformation/es6-regex.unicode/basic/expected.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/transformation/es6-regex.unicode/basic/expected.js b/test/fixtures/transformation/es6-regex.unicode/basic/expected.js index 9e4e69cf20..670ac43a38 100644 --- a/test/fixtures/transformation/es6-regex.unicode/basic/expected.js +++ b/test/fixtures/transformation/es6-regex.unicode/basic/expected.js @@ -1,4 +1,4 @@ "use strict"; var string = "foo💩bar"; -var match = string.match(/foo((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))bar/); +var match = string.match(/foo((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))bar/); From 0e877acfdfeec98249c1ac39b5387827167a88b6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:29:42 +1100 Subject: [PATCH 17/18] v4.7.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 70a1326a14..ba12cfb85d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel", "description": "Turn ES6 code into readable vanilla ES5 with source maps", - "version": "4.7.10", + "version": "4.7.11", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "repository": "babel/babel", From d0b6aa98820b7c0bac414ad35ce94bd09aedad96 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 02:30:59 +1100 Subject: [PATCH 18/18] 4.7.11 --- packages/babel-runtime/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 06e2f7feec..6575b439af 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,7 +1,7 @@ { "name": "babel-runtime", "description": "babel selfContained runtime", - "version": "4.7.10", + "version": "4.7.11", "repository": "babel/babel", "author": "Sebastian McKenzie ", "dependencies": {