Files
babel/src/babel/transformation/transformers/es5/properties.mutators.js
2015-05-07 15:53:22 +01:00

27 lines
691 B
JavaScript

import * as defineMap from "../../helpers/define-map";
import * as t from "../../../types";
export var ObjectExpression = {
exit(node, parent, scope, file) {
var mutatorMap = {};
var hasAny = false;
node.properties = node.properties.filter(function (prop) {
if (prop.kind === "get" || prop.kind === "set") {
hasAny = true;
defineMap.push(mutatorMap, prop, prop.kind, file);
return false;
} else {
return true;
}
});
if (!hasAny) return;
return t.callExpression(
t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")),
[node, defineMap.toDefineObject(mutatorMap)]
);
}
};