diff --git a/src/babel/transformation/transformers/es6/block-scoping.js b/src/babel/transformation/transformers/es6/block-scoping.js index 79eb0380c7..fadcd43544 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; + } + } + } +};