Indeed, and given use of ES6, I expect things like this wouldn't be very
uncommon (I think is supposed to be Object.define right?):

Object.define(x, {
  get a(){},
  set a(v){},
  get b(){},
  c(){}
});

Instead of most current descriptor stuff (since enumerability and
configurability are rarely desired to be false).

On Tuesday, February 5, 2013, Rick Waldron wrote:

>
>
>
> On Tue, Feb 5, 2013 at 3:19 AM, gaz Heyes <gazhe...@gmail.com> wrote:
>
>> On 4 February 2013 23:44, Brendan Eich <bren...@mozilla.com> wrote:
>>
>>> What's confusing?
>>>
>>
>> The fact that you can have an object property without a colon and a
>> function without a function keyword.
>>
>
> ES6 concise methods will make this the norm:
>
> let o = {
>   meaning() {
>     return 42;
>   }
> };
>
> o.meaning(); // 42
>
>
>
>> Then a property descriptor uses a completely new syntax to define the
>> same thing. Why?
>> Object.defineProperty(window,'x',{set:alert});
>> x=1;
>>
>
>
> What part is "new syntax"? Property descriptors are just object literal
> syntax—did you mean "different syntax"?
>
>
>
>>
>> To me this seems hacked together.
>>
>>
>>> ({'get'x(){return 123;}}).x
>>>>
>>>
>>> That's not legal ES5.
>>>
>>
>> Some engines support it though and I'm pretty sure Firefox did at some
>> point.
>>
>
> I think Brendan was referring to the quotes, ie. 'get'. Remove those for
> legal syntax:
>
> ({ get x() { return 123; } }).x
>
>
> Rick
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to