Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe9b0afd95 | ||
|
|
47695a8710 | ||
|
|
e1c7584280 |
@@ -11,6 +11,11 @@
|
||||
|
||||
_Note: Gaps between patch versions are faulty/broken releases._
|
||||
|
||||
## 2.8.1
|
||||
|
||||
* **Bug Fix**
|
||||
* Fix computed accessors on object literals.
|
||||
|
||||
## 2.8.0
|
||||
|
||||
* **New Feature**
|
||||
|
||||
@@ -60,13 +60,12 @@ _.each({
|
||||
arrowFunctions: require("./transformers/es6-arrow-functions"),
|
||||
classes: require("./transformers/es6-classes"),
|
||||
|
||||
computedPropertyNames: require("./transformers/es6-computed-property-names"),
|
||||
|
||||
objectSpread: require("./transformers/es7-object-spread"),
|
||||
exponentiationOperator: require("./transformers/es7-exponentiation-operator"),
|
||||
spread: require("./transformers/es6-spread"),
|
||||
templateLiterals: require("./transformers/es6-template-literals"),
|
||||
propertyMethodAssignment: require("./transformers/es6-property-method-assignment"),
|
||||
computedPropertyNames: require("./transformers/es6-computed-property-names"),
|
||||
destructuring: require("./transformers/es6-destructuring"),
|
||||
defaultParameters: require("./transformers/es6-default-parameters"),
|
||||
forOf: require("./transformers/es6-for-of"),
|
||||
|
||||
@@ -210,7 +210,7 @@ Class.prototype.pushMethod = function (node) {
|
||||
} else {
|
||||
this.hasInstanceMutators = true;
|
||||
}
|
||||
util.pushMutatorMap(mutatorMap, methodName, kind, node);
|
||||
util.pushMutatorMap(mutatorMap, methodName, kind, node.computed, node);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ exports.ObjectExpression = function (node, parent, file, scope) {
|
||||
var i;
|
||||
|
||||
for (i in node.properties) {
|
||||
hasComputed = t.isProperty(node.properties[i], { computed: true });
|
||||
hasComputed = t.isProperty(node.properties[i], { computed: true, kind: "init" });
|
||||
if (hasComputed) break;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ exports.ObjectExpression = function (node, parent, file, scope) {
|
||||
|
||||
for (i in props) {
|
||||
prop = props[i];
|
||||
if (prop.kind !== "init") continue;
|
||||
|
||||
key = prop.key;
|
||||
|
||||
if (!prop.computed && t.isIdentifier(key)) {
|
||||
@@ -44,7 +46,7 @@ exports.ObjectExpression = function (node, parent, file, scope) {
|
||||
broken = true;
|
||||
}
|
||||
|
||||
if (!broken || t.isLiteral(t.toComputedKey(prop, prop.key), { value: "__proto__" })) {
|
||||
if (prop.kind !== "init" || !broken || t.isLiteral(t.toComputedKey(prop, prop.key), { value: "__proto__" })) {
|
||||
initProps.push(prop);
|
||||
props[i] = null;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ exports.ObjectExpression = function (node, parent, file, scope) {
|
||||
node.properties = node.properties.filter(function (prop) {
|
||||
if (prop.kind === "get" || prop.kind === "set") {
|
||||
hasAny = true;
|
||||
util.pushMutatorMap(mutatorMap, prop.key, prop.kind, prop.value);
|
||||
util.pushMutatorMap(mutatorMap, prop.key, prop.kind, prop.computed, prop.value);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
|
||||
@@ -65,12 +65,12 @@ exports.sourceMapToComment = function (map) {
|
||||
return "//# sourceMappingURL=data:application/json;base64," + base64;
|
||||
};
|
||||
|
||||
exports.pushMutatorMap = function (mutatorMap, key, kind, method) {
|
||||
exports.pushMutatorMap = function (mutatorMap, key, kind, computed, method) {
|
||||
var alias;
|
||||
|
||||
if (t.isIdentifier(key)) {
|
||||
alias = key.name;
|
||||
if (method.computed) alias = "computed:" + alias;
|
||||
if (computed) alias = "computed:" + alias;
|
||||
} else if (t.isLiteral(key)) {
|
||||
alias = String(key.value);
|
||||
} else {
|
||||
@@ -86,7 +86,7 @@ exports.pushMutatorMap = function (mutatorMap, key, kind, method) {
|
||||
mutatorMap[alias] = map;
|
||||
|
||||
map._key = key;
|
||||
if (method.computed) {
|
||||
if (computed) {
|
||||
map._computed = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "6to5",
|
||||
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
|
||||
"version": "2.8.0",
|
||||
"version": "2.8.1",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://github.com/6to5/6to5",
|
||||
"repository": {
|
||||
|
||||
8
test/fixtures/transformation/es6-property-method-assignment/computed/actual.js
vendored
Normal file
8
test/fixtures/transformation/es6-property-method-assignment/computed/actual.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
var x = "y";
|
||||
var valueSet;
|
||||
var obj = {
|
||||
get [x] () { return 1 },
|
||||
set [x] (value) { valueSet = value }
|
||||
};
|
||||
obj.y = "foo";
|
||||
obj.y === 1 && valueSet === "foo";
|
||||
24
test/fixtures/transformation/es6-property-method-assignment/computed/expected.js
vendored
Normal file
24
test/fixtures/transformation/es6-property-method-assignment/computed/expected.js
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
var _defineProperty = function (obj, key, value) {
|
||||
return Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
};
|
||||
|
||||
var x = "y";
|
||||
var valueSet;
|
||||
var obj = Object.defineProperties({}, _defineProperty({}, x, {
|
||||
get: function () {
|
||||
return 1;
|
||||
},
|
||||
set: function (value) {
|
||||
valueSet = value;
|
||||
},
|
||||
enumerable: true
|
||||
}));
|
||||
obj.y = "foo";
|
||||
obj.y === 1 && valueSet === "foo";
|
||||
@@ -30,13 +30,16 @@ _prototypeProperties(Foo, null, _defineProperty({
|
||||
enumerable: true
|
||||
}));
|
||||
|
||||
var foo = _defineProperty(Object.defineProperties({}, {
|
||||
var foo = Object.defineProperties({}, _defineProperty({
|
||||
bar: {
|
||||
get: function () {
|
||||
return _defineProperty(this, "bar", complex()).bar;
|
||||
},
|
||||
enumerable: true
|
||||
}
|
||||
}), bar, function () {
|
||||
return _defineProperty(this, bar, complex())[bar];
|
||||
});
|
||||
}, bar, {
|
||||
get: function () {
|
||||
return _defineProperty(this, bar, complex())[bar];
|
||||
},
|
||||
enumerable: true
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user