diff --git a/src/babel/transformation/transformers/es5/properties.mutators.js b/src/babel/transformation/transformers/es5/properties.mutators.js index a3161efae8..57e46dbfa5 100644 --- a/src/babel/transformation/transformers/es5/properties.mutators.js +++ b/src/babel/transformation/transformers/es5/properties.mutators.js @@ -2,12 +2,19 @@ import * as defineMap from "../../helpers/define-map"; import * as t from "../../../types"; export function ObjectExpression(node, parent, scope, file) { - var mutatorMap = {}; var hasAny = false; + for (var prop of (node.properties: Array)) { + if (prop.kind === "get" || prop.kind === "set") { + hasAny = true; + break; + } + } + if (!hasAny) return; + + var mutatorMap = {}; 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 { @@ -15,8 +22,6 @@ export function ObjectExpression(node, parent, scope, file) { } }); - if (!hasAny) return; - return t.callExpression( t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")), [node, defineMap.toDefineObject(mutatorMap)]