Fix path.scope.rename() to not change break clauses (#8478)
* Make labels on break and continue statements not referenced * Add test for imports and labels with the same name
This commit is contained in:
parent
47e05d70f3
commit
22bcfbe469
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/input.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import foo from "foo";
|
||||
|
||||
foo: {
|
||||
break foo;
|
||||
}
|
||||
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import foo from "foo";
|
||||
|
||||
foo: {
|
||||
break foo;
|
||||
}
|
||||
9
packages/babel-traverse/test/fixtures/rename/break-statements/input.js
vendored
Normal file
9
packages/babel-traverse/test/fixtures/rename/break-statements/input.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
function f(a) {
|
||||
a: for (const k in []) {
|
||||
if (k) {
|
||||
continue a;
|
||||
} else {
|
||||
break a;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
packages/babel-traverse/test/fixtures/rename/break-statements/options.json
vendored
Normal file
3
packages/babel-traverse/test/fixtures/rename/break-statements/options.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["./plugin"]
|
||||
}
|
||||
9
packages/babel-traverse/test/fixtures/rename/break-statements/output.js
vendored
Normal file
9
packages/babel-traverse/test/fixtures/rename/break-statements/output.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
function f(b) {
|
||||
a: for (const k in []) {
|
||||
if (k) {
|
||||
continue a;
|
||||
} else {
|
||||
break a;
|
||||
}
|
||||
}
|
||||
}
|
||||
9
packages/babel-traverse/test/fixtures/rename/break-statements/plugin.js
vendored
Normal file
9
packages/babel-traverse/test/fixtures/rename/break-statements/plugin.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = function() {
|
||||
return {
|
||||
visitor: {
|
||||
Function(path) {
|
||||
path.scope.rename("a", "b");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -80,6 +80,10 @@ export default function isReferenced(node: Object, parent: Object): boolean {
|
||||
case "RestElement":
|
||||
return false;
|
||||
|
||||
case "BreakStatement":
|
||||
case "ContinueStatement":
|
||||
return false;
|
||||
|
||||
// no: function NODE() {}
|
||||
// no: function foo(NODE) {}
|
||||
case "FunctionDeclaration":
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user