diff --git a/lib/6to5/transformers/destructuring.js b/lib/6to5/transformers/destructuring.js index 7f9cc68514..4ce26b813f 100644 --- a/lib/6to5/transformers/destructuring.js +++ b/lib/6to5/transformers/destructuring.js @@ -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); }); };