34 lines
862 B
JavaScript
34 lines
862 B
JavaScript
var nameMethod = require("../helpers/name-method");
|
|
var util = require("../../util");
|
|
var t = require("../../types");
|
|
|
|
exports.Property = function (node, parent, scope, context, file) {
|
|
if (!node.method) return;
|
|
|
|
node.method = false;
|
|
|
|
nameMethod(node, file, scope);
|
|
};
|
|
|
|
exports.ObjectExpression = function (node) {
|
|
var mutatorMap = {};
|
|
var hasAny = false;
|
|
|
|
node.properties = node.properties.filter(function (prop) {
|
|
if (prop.kind === "get" || prop.kind === "set") {
|
|
hasAny = true;
|
|
util.pushMutatorMap(mutatorMap, prop.key, prop.kind, prop.computed, prop.value);
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
});
|
|
|
|
if (!hasAny) return;
|
|
|
|
return t.callExpression(
|
|
t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")),
|
|
[node, util.buildDefineProperties(mutatorMap)]
|
|
);
|
|
};
|