David Bruant (2014-02-18T18:07:37.000Z)
Le 18/02/2014 18:55, Erik Arvidsson a écrit :
> https://bugs.ecmascript.org/show_bug.cgi?id=2511
>
> We now have our first setter in the spec. However, it is speced to 
> return the value itself. This is pretty inconsistent with WebIDL and 
> the common practice to not include a return value in setters in object 
> literals.
In practice, the returned value of setting is the value on the rhs of the =.

     var o = {set b(v){return 12;}} // this return statement is useless

     console.log(o.a = 13); // 13
     console.log(o.b = 14); // 14

It might be useful to return a different value on setting. I think Haxe 
does it.
Note that it would require to rework the set trap of proxies a bit 
(currently, it returns a boolean indicating success or failure).

> Can we get the spec changed to return undefined?
That would be the most coherent option with the language as it is today.

David
domenic at domenicdenicola.com (2014-02-21T16:26:39.091Z)
In practice, the returned value of setting is the value on the rhs of the =.

     var o = {set b(v){return 12;}} // this return statement is useless

     console.log(o.a = 13); // 13
     console.log(o.b = 14); // 14

It might be useful to return a different value on setting. I think Haxe 
does it.
Note that it would require to rework the set trap of proxies a bit 
(currently, it returns a boolean indicating success or failure).

> Can we get the spec changed to return undefined?

That would be the most coherent option with the language as it is today.