From b08012cf125e7c75da5a7b5203877d84bc715b60 Mon Sep 17 00:00:00 2001 From: chico Date: Thu, 2 Jul 2015 04:15:55 +0300 Subject: [PATCH 1/9] add some useful links --- src/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/README.md b/src/README.md index 0003bf4223..06e657ff75 100644 --- a/src/README.md +++ b/src/README.md @@ -3,10 +3,10 @@ Babel is broken down into three parts: - Parsing -- Transformation -- Generation +- [Transformation](babel/transformation/) +- [Generation](babel/generation/) -**Parsing** is the process of turning a piece of code into an AST (Abstract +**Parsing** is the process of turning a piece of code into an [ESTree spec](https://github.com/estree/estree) compatible AST (Abstract Syntax Tree) which is a tree-like object of nodes that _describes_ the code. This makes it easier to transform the code over direct string manpulation. @@ -19,8 +19,8 @@ done transforming the AST, the generation takes over to return normal code. --- -Babel's parsing step is done by Acorn. However, because Babel is implementing -future standards it maintains a fork of Acorn in order to do it's job. You can +Babel's parsing step is done by [Acorn](https://github.com/marijnh/acorn). However, because Babel is implementing +future standards it maintains a [fork of Acorn](acorn/) in order to do it's job. You can see that fork in the "acorn" folder. The transformation and generation steps are both handled inside of the Babel From d6dc29ec6a1c200a85e7293731f6b68da16fd41c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 12 Jul 2015 00:37:55 +0100 Subject: [PATCH 2/9] remove templates doc --- src/babel/transformation/templates/README.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 src/babel/transformation/templates/README.md diff --git a/src/babel/transformation/templates/README.md b/src/babel/transformation/templates/README.md deleted file mode 100644 index db554fe0a4..0000000000 --- a/src/babel/transformation/templates/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Transformation Templates - -This is the Transformation Templates directory. From d5be4bb5b915034b7d41a91539fa66e2365d683a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 12 Jul 2015 00:39:50 +0100 Subject: [PATCH 3/9] v5.6.18 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a0fd61d64a..363f1f526f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel-core", "description": "A compiler for writing next generation JavaScript", - "version": "5.6.17", + "version": "5.6.18", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", From 420492388b06ff295a638adbea0f34c726056607 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 16:37:08 +0100 Subject: [PATCH 4/9] remove do expressions --- CHANGELOG.md | 4 +++ src/acorn/src/expression.js | 14 ---------- .../transformers/es7/do-expressions.js | 26 ------------------- .../transformation/transformers/index.js | 1 - src/babel/types/alias-keys.json | 1 - src/babel/types/visitor-keys.json | 1 - .../es7.do-expressions/do-while.js | 5 ---- .../es7.do-expressions/empty.js | 1 - .../es7.do-expressions/for-in.js | 6 ----- .../transformation/es7.do-expressions/for.js | 5 ---- .../es7.do-expressions/if-else-if.js | 7 ----- .../es7.do-expressions/if-else.js | 7 ----- .../transformation/es7.do-expressions/if.js | 5 ---- .../es7.do-expressions/options.json | 3 --- .../es7.do-expressions/single-expression.js | 3 --- .../variable-declaration-end.js | 3 --- .../variable-declaration-start.js | 4 --- .../es7.do-expressions/while.js | 5 ---- 18 files changed, 4 insertions(+), 97 deletions(-) delete mode 100644 src/babel/transformation/transformers/es7/do-expressions.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/do-while.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/empty.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/for-in.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/for.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/if-else-if.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/if-else.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/if.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/options.json delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/single-expression.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js delete mode 100644 test/core/fixtures/transformation/es7.do-expressions/while.js diff --git a/CHANGELOG.md b/CHANGELOG.md index e999f7c1ee..e8eed872d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ _Note: Gaps between patch versions are faulty, broken or test releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. +## 5.6.19 + + * Removed do expressions. + ## 5.6.17 * **Bug Fix** diff --git a/src/acorn/src/expression.js b/src/acorn/src/expression.js index ba94cd5249..1c45840f95 100755 --- a/src/acorn/src/expression.js +++ b/src/acorn/src/expression.js @@ -281,20 +281,6 @@ pp.parseExprAtom = function(refShorthandDefaultPos) { case tt._yield: if (this.inGenerator) this.unexpected() - case tt._do: - if (this.options.features["es7.doExpressions"]) { - let node = this.startNode() - this.next() - var oldInFunction = this.inFunction - var oldLabels = this.labels - this.labels = [] - this.inFunction = false - node.body = this.parseBlock() - this.inFunction = oldInFunction - this.labels = oldLabels - return this.finishNode(node, "DoExpression") - } - case tt.name: let start = this.markPosition() node = this.startNode() diff --git a/src/babel/transformation/transformers/es7/do-expressions.js b/src/babel/transformation/transformers/es7/do-expressions.js deleted file mode 100644 index 823389ae0e..0000000000 --- a/src/babel/transformation/transformers/es7/do-expressions.js +++ /dev/null @@ -1,26 +0,0 @@ -import * as t from "../../../types"; - -export var metadata = { - optional: true, - stage: 0 -}; - -/** - * [Please add a description.] - */ - -export var visitor = { - - /** - * [Please add a description.] - */ - - DoExpression(node) { - var body = node.body.body; - if (body.length) { - return body; - } else { - return t.identifier("undefined"); - } - } -}; diff --git a/src/babel/transformation/transformers/index.js b/src/babel/transformation/transformers/index.js index 9dacb52d1e..6b0bd0d2d0 100644 --- a/src/babel/transformation/transformers/index.js +++ b/src/babel/transformation/transformers/index.js @@ -48,7 +48,6 @@ export default { "es6.constants": require("./es6/constants"), "es7.exportExtensions": require("./es7/export-extensions"), "spec.protoToAssign": require("babel-plugin-proto-to-assign"), - "es7.doExpressions": require("./es7/do-expressions"), "es6.spec.symbols": require("./es6/spec.symbols"), "es7.functionBind": require("./es7/function-bind"), "spec.undefinedToVoid": require("babel-plugin-undefined-to-void"), diff --git a/src/babel/types/alias-keys.json b/src/babel/types/alias-keys.json index 7c1d27be6d..242d2cf1c1 100644 --- a/src/babel/types/alias-keys.json +++ b/src/babel/types/alias-keys.json @@ -64,7 +64,6 @@ "CallExpression": ["Expression"], "ComprehensionExpression": ["Expression", "Scopable"], "ConditionalExpression": ["Expression"], - "DoExpression": ["Expression"], "Identifier": ["Expression"], "Literal": ["Expression", "Pure"], "MemberExpression": ["Expression"], diff --git a/src/babel/types/visitor-keys.json b/src/babel/types/visitor-keys.json index 8d99ae7918..596367ee3a 100644 --- a/src/babel/types/visitor-keys.json +++ b/src/babel/types/visitor-keys.json @@ -21,7 +21,6 @@ "Decorator": ["expression"], "DebuggerStatement": [], "DoWhileStatement": ["body", "test"], - "DoExpression": ["body"], "EmptyStatement": [], "ExpressionStatement": ["expression"], "File": ["program"], diff --git a/test/core/fixtures/transformation/es7.do-expressions/do-while.js b/test/core/fixtures/transformation/es7.do-expressions/do-while.js deleted file mode 100644 index e53fac45bb..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/do-while.js +++ /dev/null @@ -1,5 +0,0 @@ -assert.equal(do { - var i = 5; - do { i--; } while(i > 3); - i; -}, 3); diff --git a/test/core/fixtures/transformation/es7.do-expressions/empty.js b/test/core/fixtures/transformation/es7.do-expressions/empty.js deleted file mode 100644 index 906776c43b..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/empty.js +++ /dev/null @@ -1 +0,0 @@ -assert.equal(do {}, undefined); diff --git a/test/core/fixtures/transformation/es7.do-expressions/for-in.js b/test/core/fixtures/transformation/es7.do-expressions/for-in.js deleted file mode 100644 index 9945600d55..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/for-in.js +++ /dev/null @@ -1,6 +0,0 @@ -assert.equal(do { - var obj = { foo: "bar", bar: "foo" }; - for (var key in obj) { - obj[key]; - } -}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/for.js b/test/core/fixtures/transformation/es7.do-expressions/for.js deleted file mode 100644 index 2dd68d55fe..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/for.js +++ /dev/null @@ -1,5 +0,0 @@ -assert.equal(do { - for (var i = 0; i < 5; i++) { - i; - } -}, 4); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js b/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js deleted file mode 100644 index ce324555ac..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js +++ /dev/null @@ -1,7 +0,0 @@ -assert.equal(do { - if (false) { - "foo"; - } else if (true) { - "bar"; - } -}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if-else.js b/test/core/fixtures/transformation/es7.do-expressions/if-else.js deleted file mode 100644 index 7f29ff878a..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/if-else.js +++ /dev/null @@ -1,7 +0,0 @@ -assert.equal(do { - if (false) { - "foo"; - } else { - "bar"; - } -}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if.js b/test/core/fixtures/transformation/es7.do-expressions/if.js deleted file mode 100644 index 1db4e45884..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/if.js +++ /dev/null @@ -1,5 +0,0 @@ -assert.equal(do { - if (true) { - "bar"; - } -}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/options.json b/test/core/fixtures/transformation/es7.do-expressions/options.json deleted file mode 100644 index 560a4cc08d..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "optional": ["es7.doExpressions"] -} diff --git a/test/core/fixtures/transformation/es7.do-expressions/single-expression.js b/test/core/fixtures/transformation/es7.do-expressions/single-expression.js deleted file mode 100644 index c528da6f0f..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/single-expression.js +++ /dev/null @@ -1,3 +0,0 @@ -assert.equal(do { - "foo"; -}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js deleted file mode 100644 index 8001c7af88..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js +++ /dev/null @@ -1,3 +0,0 @@ -assert.equal(do { - var bar = "foo"; -}, undefined); diff --git a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js deleted file mode 100644 index 2dad90a410..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js +++ /dev/null @@ -1,4 +0,0 @@ -assert.equal(do { - var bar = "foo"; - bar; -}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/while.js b/test/core/fixtures/transformation/es7.do-expressions/while.js deleted file mode 100644 index f902109ca4..0000000000 --- a/test/core/fixtures/transformation/es7.do-expressions/while.js +++ /dev/null @@ -1,5 +0,0 @@ -assert.equal(do { - var i = 5; - while (i > 3) i--; - i; -}, 3); From 5cd8822888067d2615f620d1340df688d73108e4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 16:39:30 +0100 Subject: [PATCH 5/9] remove DoExpression generator --- src/babel/generation/generators/expressions.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/babel/generation/generators/expressions.js b/src/babel/generation/generators/expressions.js index 3a1ba3c618..5cb1320d56 100644 --- a/src/babel/generation/generators/expressions.js +++ b/src/babel/generation/generators/expressions.js @@ -22,16 +22,6 @@ export function UnaryExpression(node, print) { print.plain(node.argument); } -/** - * Prints DoExpression, prints body. - */ - -export function DoExpression(node, print) { - this.push("do"); - this.space(); - print.plain(node.body); -} - /** * Prints ParenthesizedExpression, prints expression. */ From 86a49e2b1dde3bfed76af4ae1d9d3afa6188871b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 16:41:15 +0100 Subject: [PATCH 6/9] v5.6.19 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 363f1f526f..32abb0fd6d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel-core", "description": "A compiler for writing next generation JavaScript", - "version": "5.6.18", + "version": "5.6.19", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", From 2b32a2781e123ea11d8f3e2a5a868aa2adf8d805 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 20:45:43 +0100 Subject: [PATCH 7/9] Revert "remove DoExpression generator" This reverts commit 5cd8822888067d2615f620d1340df688d73108e4. --- src/babel/generation/generators/expressions.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/babel/generation/generators/expressions.js b/src/babel/generation/generators/expressions.js index 5cb1320d56..3a1ba3c618 100644 --- a/src/babel/generation/generators/expressions.js +++ b/src/babel/generation/generators/expressions.js @@ -22,6 +22,16 @@ export function UnaryExpression(node, print) { print.plain(node.argument); } +/** + * Prints DoExpression, prints body. + */ + +export function DoExpression(node, print) { + this.push("do"); + this.space(); + print.plain(node.body); +} + /** * Prints ParenthesizedExpression, prints expression. */ From a286a86b6dd40d8da14f1b51271d0c946ef4157a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 20:45:49 +0100 Subject: [PATCH 8/9] Revert "remove do expressions" This reverts commit 420492388b06ff295a638adbea0f34c726056607. --- CHANGELOG.md | 4 --- src/acorn/src/expression.js | 14 ++++++++++ .../transformers/es7/do-expressions.js | 26 +++++++++++++++++++ .../transformation/transformers/index.js | 1 + src/babel/types/alias-keys.json | 1 + src/babel/types/visitor-keys.json | 1 + .../es7.do-expressions/do-while.js | 5 ++++ .../es7.do-expressions/empty.js | 1 + .../es7.do-expressions/for-in.js | 6 +++++ .../transformation/es7.do-expressions/for.js | 5 ++++ .../es7.do-expressions/if-else-if.js | 7 +++++ .../es7.do-expressions/if-else.js | 7 +++++ .../transformation/es7.do-expressions/if.js | 5 ++++ .../es7.do-expressions/options.json | 3 +++ .../es7.do-expressions/single-expression.js | 3 +++ .../variable-declaration-end.js | 3 +++ .../variable-declaration-start.js | 4 +++ .../es7.do-expressions/while.js | 5 ++++ 18 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 src/babel/transformation/transformers/es7/do-expressions.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/do-while.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/empty.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/for-in.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/for.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/if-else-if.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/if-else.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/if.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/options.json create mode 100644 test/core/fixtures/transformation/es7.do-expressions/single-expression.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js create mode 100644 test/core/fixtures/transformation/es7.do-expressions/while.js diff --git a/CHANGELOG.md b/CHANGELOG.md index e8eed872d0..e999f7c1ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,10 +13,6 @@ _Note: Gaps between patch versions are faulty, broken or test releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. -## 5.6.19 - - * Removed do expressions. - ## 5.6.17 * **Bug Fix** diff --git a/src/acorn/src/expression.js b/src/acorn/src/expression.js index 1c45840f95..ba94cd5249 100755 --- a/src/acorn/src/expression.js +++ b/src/acorn/src/expression.js @@ -281,6 +281,20 @@ pp.parseExprAtom = function(refShorthandDefaultPos) { case tt._yield: if (this.inGenerator) this.unexpected() + case tt._do: + if (this.options.features["es7.doExpressions"]) { + let node = this.startNode() + this.next() + var oldInFunction = this.inFunction + var oldLabels = this.labels + this.labels = [] + this.inFunction = false + node.body = this.parseBlock() + this.inFunction = oldInFunction + this.labels = oldLabels + return this.finishNode(node, "DoExpression") + } + case tt.name: let start = this.markPosition() node = this.startNode() diff --git a/src/babel/transformation/transformers/es7/do-expressions.js b/src/babel/transformation/transformers/es7/do-expressions.js new file mode 100644 index 0000000000..823389ae0e --- /dev/null +++ b/src/babel/transformation/transformers/es7/do-expressions.js @@ -0,0 +1,26 @@ +import * as t from "../../../types"; + +export var metadata = { + optional: true, + stage: 0 +}; + +/** + * [Please add a description.] + */ + +export var visitor = { + + /** + * [Please add a description.] + */ + + DoExpression(node) { + var body = node.body.body; + if (body.length) { + return body; + } else { + return t.identifier("undefined"); + } + } +}; diff --git a/src/babel/transformation/transformers/index.js b/src/babel/transformation/transformers/index.js index 6b0bd0d2d0..9dacb52d1e 100644 --- a/src/babel/transformation/transformers/index.js +++ b/src/babel/transformation/transformers/index.js @@ -48,6 +48,7 @@ export default { "es6.constants": require("./es6/constants"), "es7.exportExtensions": require("./es7/export-extensions"), "spec.protoToAssign": require("babel-plugin-proto-to-assign"), + "es7.doExpressions": require("./es7/do-expressions"), "es6.spec.symbols": require("./es6/spec.symbols"), "es7.functionBind": require("./es7/function-bind"), "spec.undefinedToVoid": require("babel-plugin-undefined-to-void"), diff --git a/src/babel/types/alias-keys.json b/src/babel/types/alias-keys.json index 242d2cf1c1..7c1d27be6d 100644 --- a/src/babel/types/alias-keys.json +++ b/src/babel/types/alias-keys.json @@ -64,6 +64,7 @@ "CallExpression": ["Expression"], "ComprehensionExpression": ["Expression", "Scopable"], "ConditionalExpression": ["Expression"], + "DoExpression": ["Expression"], "Identifier": ["Expression"], "Literal": ["Expression", "Pure"], "MemberExpression": ["Expression"], diff --git a/src/babel/types/visitor-keys.json b/src/babel/types/visitor-keys.json index 596367ee3a..8d99ae7918 100644 --- a/src/babel/types/visitor-keys.json +++ b/src/babel/types/visitor-keys.json @@ -21,6 +21,7 @@ "Decorator": ["expression"], "DebuggerStatement": [], "DoWhileStatement": ["body", "test"], + "DoExpression": ["body"], "EmptyStatement": [], "ExpressionStatement": ["expression"], "File": ["program"], diff --git a/test/core/fixtures/transformation/es7.do-expressions/do-while.js b/test/core/fixtures/transformation/es7.do-expressions/do-while.js new file mode 100644 index 0000000000..e53fac45bb --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/do-while.js @@ -0,0 +1,5 @@ +assert.equal(do { + var i = 5; + do { i--; } while(i > 3); + i; +}, 3); diff --git a/test/core/fixtures/transformation/es7.do-expressions/empty.js b/test/core/fixtures/transformation/es7.do-expressions/empty.js new file mode 100644 index 0000000000..906776c43b --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/empty.js @@ -0,0 +1 @@ +assert.equal(do {}, undefined); diff --git a/test/core/fixtures/transformation/es7.do-expressions/for-in.js b/test/core/fixtures/transformation/es7.do-expressions/for-in.js new file mode 100644 index 0000000000..9945600d55 --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/for-in.js @@ -0,0 +1,6 @@ +assert.equal(do { + var obj = { foo: "bar", bar: "foo" }; + for (var key in obj) { + obj[key]; + } +}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/for.js b/test/core/fixtures/transformation/es7.do-expressions/for.js new file mode 100644 index 0000000000..2dd68d55fe --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/for.js @@ -0,0 +1,5 @@ +assert.equal(do { + for (var i = 0; i < 5; i++) { + i; + } +}, 4); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js b/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js new file mode 100644 index 0000000000..ce324555ac --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/if-else-if.js @@ -0,0 +1,7 @@ +assert.equal(do { + if (false) { + "foo"; + } else if (true) { + "bar"; + } +}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if-else.js b/test/core/fixtures/transformation/es7.do-expressions/if-else.js new file mode 100644 index 0000000000..7f29ff878a --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/if-else.js @@ -0,0 +1,7 @@ +assert.equal(do { + if (false) { + "foo"; + } else { + "bar"; + } +}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/if.js b/test/core/fixtures/transformation/es7.do-expressions/if.js new file mode 100644 index 0000000000..1db4e45884 --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/if.js @@ -0,0 +1,5 @@ +assert.equal(do { + if (true) { + "bar"; + } +}, "bar"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/options.json b/test/core/fixtures/transformation/es7.do-expressions/options.json new file mode 100644 index 0000000000..560a4cc08d --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/options.json @@ -0,0 +1,3 @@ +{ + "optional": ["es7.doExpressions"] +} diff --git a/test/core/fixtures/transformation/es7.do-expressions/single-expression.js b/test/core/fixtures/transformation/es7.do-expressions/single-expression.js new file mode 100644 index 0000000000..c528da6f0f --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/single-expression.js @@ -0,0 +1,3 @@ +assert.equal(do { + "foo"; +}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js new file mode 100644 index 0000000000..8001c7af88 --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-end.js @@ -0,0 +1,3 @@ +assert.equal(do { + var bar = "foo"; +}, undefined); diff --git a/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js new file mode 100644 index 0000000000..2dad90a410 --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/variable-declaration-start.js @@ -0,0 +1,4 @@ +assert.equal(do { + var bar = "foo"; + bar; +}, "foo"); diff --git a/test/core/fixtures/transformation/es7.do-expressions/while.js b/test/core/fixtures/transformation/es7.do-expressions/while.js new file mode 100644 index 0000000000..f902109ca4 --- /dev/null +++ b/test/core/fixtures/transformation/es7.do-expressions/while.js @@ -0,0 +1,5 @@ +assert.equal(do { + var i = 5; + while (i > 3) i--; + i; +}, 3); From d28716cf9377c331b40205d1be8119c6591d2403 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Jul 2015 20:50:20 +0100 Subject: [PATCH 9/9] v5.6.20 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 32abb0fd6d..96da2e58ab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "babel-core", "description": "A compiler for writing next generation JavaScript", - "version": "5.6.19", + "version": "5.6.20", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT",