fix computed member expressions in playground memoization
This commit is contained in:
@@ -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(
|
||||
"&&",
|
||||
|
||||
Reference in New Issue
Block a user