Tom Van Cutsem (2015-04-21T19:31:23.000Z)
d at domenic.me (2015-05-01T13:04:43.471Z)
FWIW, you can reproduce this test case without reference to the new `super` syntax: ```js var parent = {}; var x = Object.create(parent, { prop: { value: 1, configurable: true, writable: false } }); Reflect.set(parent, "prop", 2, x); // expected false, but under current semantics will return true ``` However, I'm not sure the new step 5.e.i. is correct: why abort the [[Set]] when the existing descriptor is an accessor? If it has a setter, it seems to me the setter should be run. Testcase: ```js var parent = {}; var v = 1; var x = Object.create(parent, { prop: { get: function() { return v; }, set: function(n) { v = n; }, configurable: true } }); Reflect.set(parent, "prop", 2, x); // under Allen's proposed changes, this will return false while I think it should just call the setter? ``` (You don't end up in 9.1.9 step 7 in the above case, because 4.d.i first sets ownDesc to a data descriptor. This falls into step 5. In step 5.c. the existingDescriptor will be the accessor. The new step 5.e.i then returns false rather than checking whether existingDescriptor.[[Set]] is callable)