more reliable destructuring building
This commit is contained in:
@@ -13,11 +13,15 @@ var buildVariableAssign = function (kind, id, init) {
|
||||
}
|
||||
};
|
||||
|
||||
var push = function (kind, nodes, pattern, parentId) {
|
||||
if (pattern.type === "ObjectPattern") {
|
||||
pushObjectPattern(kind, nodes, pattern, parentId);
|
||||
} else if (pattern.type === "ArrayPattern") {
|
||||
pushArrayPattern(kind, nodes, pattern, parentId);
|
||||
var push = function (kind, nodes, elem, parentId) {
|
||||
if (elem.type === "ObjectPattern") {
|
||||
pushObjectPattern(kind, nodes, elem, parentId);
|
||||
} else if (elem.type === "ArrayPattern") {
|
||||
pushArrayPattern(kind, nodes, elem, parentId);
|
||||
} else if (elem.type === "MemberExpression") {
|
||||
nodes.push(buildVariableAssign(false, elem, parentId));
|
||||
} else {
|
||||
nodes.push(buildVariableAssign(kind, elem, parentId));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -39,14 +43,7 @@ var pushArrayPattern = function (kind, nodes, pattern, parentId) {
|
||||
if (!elem) return;
|
||||
|
||||
var newPatternId = b.memberExpression(parentId, b.literal(i), true);
|
||||
|
||||
if (elem.type === "Identifier") {
|
||||
nodes.push(buildVariableAssign(kind, elem, newPatternId));
|
||||
} else if (elem.type === "MemberExpression") {
|
||||
nodes.push(buildVariableAssign(false, elem, newPatternId));
|
||||
} else {
|
||||
push(kind, nodes, elem, newPatternId);
|
||||
}
|
||||
push(kind, nodes, elem, newPatternId);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user