Andy Wingo (2014-06-25T13:19:14.000Z)
domenic at domenicdenicola.com (2014-06-27T19:00:01.620Z)
What about: ({ get __proto__() {}, __proto__: foo }) // (1) Does this end up setting the prototype of the result? Would it if there were a setter? Likewise: ({ __proto__: foo, get __proto__() {} }) // (2) This one is kinda similar: ({ ['__proto__']: 34, __proto__: foo }) // (3) I would propose that the answers to the question "does the prototype get set" be "yes" for all of these, since the model is that each one is like an invocation of Object.defineProperty, with the exception that `__proto__` is clownshoes-special and that a getter or setter inherits the setter or getter (respectively) of the currently installed property, if any.
domenic at domenicdenicola.com (2014-06-27T18:59:51.386Z)
What about: ({ get __proto__() {}, __proto__: foo }) // (1) Does this end up setting the prototype of the result? Would it if there were a setter? Likewise: ({ __proto__: foo, get __proto__() {} }) // (2) This one is kinda similar: ({ ['__proto__']: 34, __proto__: foo }) // (3) I would propose that the answers to the question "does the prototype get set" be "yes" for all of these, since the model is that each one is like an invocation of Object.defineProperty, with the exception that `__proto__` is clownshoes-special and that a getter or setter inherits the setter or getter (respectively) of the currently installed property, if any.