diff --git a/lib/6to5/transformation/helpers/build-binary-assignment-operator-transformer.js b/lib/6to5/transformation/helpers/build-binary-assignment-operator-transformer.js index 59e9f53107..96743c8bdc 100644 --- a/lib/6to5/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/lib/6to5/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -15,7 +15,7 @@ module.exports = function (exports, opts) { if (!isAssignment(expr)) return; var nodes = []; - var exploded = explode(expr.left, nodes, file, scope); + var exploded = explode(expr.left, nodes, file, scope, true); nodes.push(t.expressionStatement( buildAssignment(exploded.ref, opts.build(exploded.uid, expr.right)) diff --git a/lib/6to5/transformation/helpers/explode-assignable-expression.js b/lib/6to5/transformation/helpers/explode-assignable-expression.js index 8b0e47d879..eecc696b78 100644 --- a/lib/6to5/transformation/helpers/explode-assignable-expression.js +++ b/lib/6to5/transformation/helpers/explode-assignable-expression.js @@ -29,8 +29,14 @@ var getPropRef = function (node, nodes, file, scope) { return temp; }; -module.exports = function (node, nodes, file, scope) { - var obj = getObjRef(node, nodes, file, scope); +module.exports = function (node, nodes, file, scope, allowedSingleIdent) { + var obj; + if (t.isIdentifier(node) && allowedSingleIdent) { + obj = node; + } else { + obj = getObjRef(node, nodes, file, scope); + } + var ref, uid; if (t.isIdentifier(node)) {