diff --git a/lib/6to5/transformation/transformers/es5-property-method-assignment.js b/lib/6to5/transformation/transformers/es5-property-method-assignment.js index 0bfe57584c..a8a22ebba9 100644 --- a/lib/6to5/transformation/transformers/es5-property-method-assignment.js +++ b/lib/6to5/transformation/transformers/es5-property-method-assignment.js @@ -20,14 +20,21 @@ exports.ObjectExpression = function (node, parent, file) { if (!hasAny) return; - var objId = util.getUid(parent, file); + if (node.properties.length) { + var objId = util.getUid(parent, file); - return util.template("object-define-properties-closure", { - KEY: objId, - OBJECT: node, - CONTENT: util.template("object-define-properties", { - OBJECT: objId, + return util.template("object-define-properties-closure", { + KEY: objId, + OBJECT: node, + CONTENT: util.template("object-define-properties", { + OBJECT: objId, + PROPS: util.buildDefineProperties(mutatorMap) + }) + }); + } else { + return util.template("object-define-properties", { + OBJECT: node, PROPS: util.buildDefineProperties(mutatorMap) - }) - }); + }); + } }; diff --git a/test/fixtures/transformation/es5-property-methods-assignment/getter-and-setter/expected.js b/test/fixtures/transformation/es5-property-methods-assignment/getter-and-setter/expected.js index 9ef3d3265d..a15cb74461 100644 --- a/test/fixtures/transformation/es5-property-methods-assignment/getter-and-setter/expected.js +++ b/test/fixtures/transformation/es5-property-methods-assignment/getter-and-setter/expected.js @@ -1,17 +1,13 @@ "use strict"; -var obj = (function (_obj) { - Object.defineProperties(_obj, { - foo: { - get: function () { - return 5 + 5; - }, - set: function (value) { - this._foo = value; - }, - enumerable: true - } - }); - - return _obj; -})({}); +var obj = Object.defineProperties({}, { + foo: { + get: function () { + return 5 + 5; + }, + set: function (value) { + this._foo = value; + }, + enumerable: true + } +}); diff --git a/test/fixtures/transformation/es5-property-methods-assignment/getter/expected.js b/test/fixtures/transformation/es5-property-methods-assignment/getter/expected.js index c519a4ee8d..41284a6062 100644 --- a/test/fixtures/transformation/es5-property-methods-assignment/getter/expected.js +++ b/test/fixtures/transformation/es5-property-methods-assignment/getter/expected.js @@ -1,14 +1,10 @@ "use strict"; -var obj = (function (_obj) { - Object.defineProperties(_obj, { - foo: { - get: function () { - return 5 + 5; - }, - enumerable: true - } - }); - - return _obj; -})({}); +var obj = Object.defineProperties({}, { + foo: { + get: function () { + return 5 + 5; + }, + enumerable: true + } +}); diff --git a/test/fixtures/transformation/es5-property-methods-assignment/setter/expected.js b/test/fixtures/transformation/es5-property-methods-assignment/setter/expected.js index 780fb983a8..dd3cb8477f 100644 --- a/test/fixtures/transformation/es5-property-methods-assignment/setter/expected.js +++ b/test/fixtures/transformation/es5-property-methods-assignment/setter/expected.js @@ -1,14 +1,10 @@ "use strict"; -var obj = (function (_obj) { - Object.defineProperties(_obj, { - foo: { - set: function (value) { - this._foo = value; - }, - enumerable: true - } - }); - - return _obj; -})({}); +var obj = Object.defineProperties({}, { + foo: { + set: function (value) { + this._foo = value; + }, + enumerable: true + } +});