6.0.0
I'm extremely stupid and didn't commit as I go. To anyone reading this I'm extremely sorry. A lot of these changes are very broad and I plan on releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm afraid I couldn't wait. If you're ever in London I'll buy you a beer (or assorted beverage!) to make up for it, also I'll kiss your feet and give you a back massage, maybe.
This commit is contained in:
@@ -1,7 +1,35 @@
|
||||
export default function () {
|
||||
import * as defineMap from "babel-helper-define-map";
|
||||
|
||||
export default function ({ types: t }) {
|
||||
return {
|
||||
visitor: {
|
||||
// your visitor methods go here
|
||||
ObjectExpression(path, file) {
|
||||
let{ node } = path;
|
||||
let hasAny = false;
|
||||
for (let prop of (node.properties: Array)) {
|
||||
if (prop.kind === "get" || prop.kind === "set") {
|
||||
hasAny = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasAny) return;
|
||||
|
||||
let mutatorMap = {};
|
||||
|
||||
node.properties = node.properties.filter(function (prop) {
|
||||
if (!prop.computed && (prop.kind === "get" || prop.kind === "set")) {
|
||||
defineMap.push(mutatorMap, prop, null, file);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
path.replaceWith(t.callExpression(
|
||||
t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")),
|
||||
[node, defineMap.toDefineObject(mutatorMap)]
|
||||
));
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user