From a567531f77ffa8db751648c7d0aaada7e4b5d695 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 13 Feb 2015 17:18:42 +1100 Subject: [PATCH] ignore member expressions in constants transformer - fixes #770 --- lib/6to5/transformation/transformers/es6/constants.js | 2 ++ .../es6-constants/ignore-member-expressions/actual.js | 2 ++ .../es6-constants/ignore-member-expressions/expected.js | 4 ++++ 3 files changed, 8 insertions(+) create mode 100644 test/fixtures/transformation/es6-constants/ignore-member-expressions/actual.js create mode 100644 test/fixtures/transformation/es6-constants/ignore-member-expressions/expected.js diff --git a/lib/6to5/transformation/transformers/es6/constants.js b/lib/6to5/transformation/transformers/es6/constants.js index a58cd16256..f559a2cccc 100644 --- a/lib/6to5/transformation/transformers/es6/constants.js +++ b/lib/6to5/transformation/transformers/es6/constants.js @@ -10,6 +10,8 @@ exports.check = function (node) { var visitor = { enter: function (node, parent, scope, state) { if (t.isAssignmentExpression(node) || t.isUpdateExpression(node)) { + if (t.isMemberExpression(node.left || node.argument)) return; + var ids = t.getBindingIdentifiers(node); for (var name in ids) { diff --git a/test/fixtures/transformation/es6-constants/ignore-member-expressions/actual.js b/test/fixtures/transformation/es6-constants/ignore-member-expressions/actual.js new file mode 100644 index 0000000000..50ead66453 --- /dev/null +++ b/test/fixtures/transformation/es6-constants/ignore-member-expressions/actual.js @@ -0,0 +1,2 @@ +const x = {}; +x.key = "value"; diff --git a/test/fixtures/transformation/es6-constants/ignore-member-expressions/expected.js b/test/fixtures/transformation/es6-constants/ignore-member-expressions/expected.js new file mode 100644 index 0000000000..f78bd701f4 --- /dev/null +++ b/test/fixtures/transformation/es6-constants/ignore-member-expressions/expected.js @@ -0,0 +1,4 @@ +"use strict"; + +var x = {}; +x.key = "value";