Fix loose for-of with label (#5298)

This commit is contained in:
Justin Ridgewell
2017-02-13 10:30:36 -05:00
committed by Henry Zhu
parent 2aa2de8c6f
commit ca45904a45
3 changed files with 48 additions and 6 deletions

View File

@@ -135,9 +135,8 @@ export default function ({ messages, template, types: t }) {
};
function loose(path, file) {
const { node, scope } = path;
const left = node.left;
const { node, scope, parent } = path;
const { left } = node;
let declar, id;
if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) {
@@ -171,11 +170,18 @@ export default function ({ messages, template, types: t }) {
}
//
const isLabeledParent = t.isLabeledStatement(parent);
let labeled;
if (isLabeledParent) {
labeled = t.labeledStatement(parent.label, loop);
}
return {
declar: declar,
node: loop,
loop: loop
replaceParent: isLabeledParent,
declar: declar,
node: labeled || loop,
loop: loop
};
}