simplify define property by using a helper in playground object getter memoization

This commit is contained in:
Sebastian McKenzie
2015-01-02 00:36:54 +11:00
parent 800c350db6
commit 41d60a85e9
2 changed files with 23 additions and 58 deletions

View File

@@ -3,7 +3,7 @@ var util = require("../../util");
var t = require("../../types");
exports.Property =
exports.MethodDefinition = function (node) {
exports.MethodDefinition = function (node, parent, file) {
if (node.kind !== "memo") return;
node.kind = "get";
@@ -21,10 +21,11 @@ exports.MethodDefinition = function (node) {
if (t.isFunction(node)) return;
if (t.isReturnStatement(node) && node.argument) {
node.argument = t.memberExpression(util.template("object-getter-memoization", {
KEY: key,
VALUE: node.argument
}), key, true);
node.argument = t.memberExpression(t.callExpression(file.addDeclaration("define-property"), [
t.thisExpression(),
key,
node.argument
]), key, true);
}
}
});