From b5a78355c45b479d960eb7ea0083a46b4e536ef0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 4 Jan 2015 19:42:16 +1100 Subject: [PATCH] add initProps to single call expression in computed property names - fixes #378 --- .../transformers/es6-computed-property-names.js | 2 +- .../es6-computed-property-names/two/actual.js | 4 ++++ .../es6-computed-property-names/two/expected.js | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/transformation/es6-computed-property-names/two/actual.js create mode 100644 test/fixtures/transformation/es6-computed-property-names/two/expected.js diff --git a/lib/6to5/transformation/transformers/es6-computed-property-names.js b/lib/6to5/transformation/transformers/es6-computed-property-names.js index 57312902e5..76081ceb64 100644 --- a/lib/6to5/transformation/transformers/es6-computed-property-names.js +++ b/lib/6to5/transformation/transformers/es6-computed-property-names.js @@ -80,7 +80,7 @@ exports.ObjectExpression = function (node, parent, file, scope) { var first = body[0].expression; if (t.isCallExpression(first)) { - first.arguments[0] = t.objectExpression([]); + first.arguments[0] = t.objectExpression(initProps); return first; } } diff --git a/test/fixtures/transformation/es6-computed-property-names/two/actual.js b/test/fixtures/transformation/es6-computed-property-names/two/actual.js new file mode 100644 index 0000000000..c63046dd19 --- /dev/null +++ b/test/fixtures/transformation/es6-computed-property-names/two/actual.js @@ -0,0 +1,4 @@ +var obj = { + first: "first", + ["second"]: "second", +}; diff --git a/test/fixtures/transformation/es6-computed-property-names/two/expected.js b/test/fixtures/transformation/es6-computed-property-names/two/expected.js new file mode 100644 index 0000000000..933bca223b --- /dev/null +++ b/test/fixtures/transformation/es6-computed-property-names/two/expected.js @@ -0,0 +1,13 @@ +"use strict"; + +var _defineProperty = function (obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); +}; + +var obj = _defineProperty({ + first: "first" }, "second", "second");