fix computed accessors on objects

This commit is contained in:
Sebastian McKenzie
2015-01-08 23:11:58 +11:00
parent 3e63e6cd4b
commit e1c7584280
8 changed files with 49 additions and 13 deletions

View 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";

View 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";

View File

@@ -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
}));