diff --git a/CHANGELOG.md b/CHANGELOG.md index da047d36aa..5088a79af6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ _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.16 + + * **Bug Fix** + * Fix constructor spreading of typed arrays. + * Fix break/continue/return aliasing of non-loops in block scoping transformer. + ## 4.7.15 * **Bug Fix** diff --git a/package.json b/package.json index f8e951e896..7144cdd3ba 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.15", + "version": "4.7.16", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "repository": "babel/babel", diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 8f68061b5e..fbfa4ea0d9 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.15", + "version": "4.7.16", "repository": "babel/babel", "author": "Sebastian McKenzie ", "dependencies": { diff --git a/src/babel/transformation/transformers/es6/block-scoping.js b/src/babel/transformation/transformers/es6/block-scoping.js index 79ef58db37..db7bd5e959 100644 --- a/src/babel/transformation/transformers/es6/block-scoping.js +++ b/src/babel/transformation/transformers/es6/block-scoping.js @@ -527,10 +527,6 @@ class BlockScoping { } if (has.hasBreakContinue) { - if (!loop) { - throw new Error("Aren't in a loop and we're trying to reassign breaks and continues, something is going wrong here."); - } - for (var key in has.map) { cases.push(t.switchCase(t.literal(key), [has.map[key]])); } diff --git a/test/fixtures/transformation/es6-block-scoping/issue-1051/actual.js b/test/fixtures/transformation/es6-block-scoping/issue-1051/actual.js new file mode 100644 index 0000000000..88d3593f2a --- /dev/null +++ b/test/fixtures/transformation/es6-block-scoping/issue-1051/actual.js @@ -0,0 +1,14 @@ +foo.func1 = function() { + if (cond1) { + for (;;) { + if (cond2) { + function func2() {} + function func3() {} + func4(function() { + func2(); + }); + break; + } + } + } +}; diff --git a/test/fixtures/transformation/es6-block-scoping/issue-1051/expected.js b/test/fixtures/transformation/es6-block-scoping/issue-1051/expected.js new file mode 100644 index 0000000000..099a69bb6a --- /dev/null +++ b/test/fixtures/transformation/es6-block-scoping/issue-1051/expected.js @@ -0,0 +1,22 @@ +"use strict"; + +foo.func1 = function () { + if (cond1) { + for (;;) { + if (cond2) { + var _ret = (function () { + var func2 = function () {}; + + var func3 = function () {}; + + func4(function () { + func2(); + }); + return "break"; + })(); + + if (_ret === "break") break; + } + } + } +};