diff --git a/lib/6to5/transformation/transformers/playground-memoization-operator.js b/lib/6to5/transformation/transformers/playground-memoization-operator.js index d8aad48236..1f5fa4bb9f 100644 --- a/lib/6to5/transformation/transformers/playground-memoization-operator.js +++ b/lib/6to5/transformation/transformers/playground-memoization-operator.js @@ -6,9 +6,11 @@ var isMemo = function (node) { return is; }; -var getPropRef = function (nodes, prop, file, scope) { - if (t.isIdentifier(prop)) { - return t.literal(prop.name); +var getPropRef = function (nodes, member, file, scope) { + var prop = member.property; + var key = t.toComputedKey(member, member.property); + if (t.isLiteral(key)) { + return key; } else { var temp = scope.generateUidBasedOnNode(prop, file); nodes.push(t.variableDeclaration("var", [ @@ -54,7 +56,7 @@ exports.ExpressionStatement = function (node, parent, file, scope) { var left = expr.left; var obj = getObjRef(nodes, left.object, file, scope); - var prop = getPropRef(nodes, left.property, file, scope); + var prop = getPropRef(nodes, left, file, scope); nodes.push(t.ifStatement( buildHasOwn(obj, prop, file), @@ -72,7 +74,7 @@ exports.AssignmentExpression = function (node, parent, file, scope) { var left = node.left; var obj = getObjRef(nodes, left.object, file, scope); - var prop = getPropRef(nodes, left.property, file, scope); + var prop = getPropRef(nodes, left, file, scope); nodes.push(t.logicalExpression( "&&",