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