register labels as bindings - fixes #1747
This commit is contained in:
parent
6a8ecf2507
commit
fb08a519c8
@ -64,6 +64,7 @@ var collectorVisitor = {
|
|||||||
|
|
||||||
LabeledStatement(node) {
|
LabeledStatement(node) {
|
||||||
this.scope.getProgramParent().addGlobal(node);
|
this.scope.getProgramParent().addGlobal(node);
|
||||||
|
this.scope.getBlockParent().registerDeclaration(this);
|
||||||
},
|
},
|
||||||
|
|
||||||
AssignmentExpression() {
|
AssignmentExpression() {
|
||||||
@ -435,7 +436,9 @@ export default class Scope {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
registerDeclaration(path: NodePath) {
|
registerDeclaration(path: NodePath) {
|
||||||
if (path.isFunctionDeclaration()) {
|
if (path.isLabeledStatement()) {
|
||||||
|
this.registerBinding("label", path);
|
||||||
|
} else if (path.isFunctionDeclaration()) {
|
||||||
this.registerBinding("hoisted", path);
|
this.registerBinding("hoisted", path);
|
||||||
} else if (path.isVariableDeclaration()) {
|
} else if (path.isVariableDeclaration()) {
|
||||||
var declarations = path.get("declarations");
|
var declarations = path.get("declarations");
|
||||||
|
|||||||
@ -41,6 +41,7 @@ getBindingIdentifiers.keys = {
|
|||||||
ComprehensionBlock: "left",
|
ComprehensionBlock: "left",
|
||||||
|
|
||||||
CatchClause: "param",
|
CatchClause: "param",
|
||||||
|
LabeledStatement: "label",
|
||||||
UnaryExpression: "argument",
|
UnaryExpression: "argument",
|
||||||
AssignmentExpression: "left",
|
AssignmentExpression: "left",
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user