ES4 draft: Object

Maciej Stachowiak mjs at
Tue Mar 11 01:43:54 PDT 2008

On Mar 10, 2008, at 11:35 PM, Mark S. Miller wrote:

> On Mon, Mar 10, 2008 at 11:14 PM, Maciej Stachowiak <mjs at>  
> wrote:
>> [...] I'd like to propose the following three alternatives to the
>> current proposal:
>> 1) Remove the feature entirely from ES4 (as part of the "judicious
>> feature cuts" process) until a more appropriate syntax is found
>> 2) Replace two-argument form of propertyIsEnumerable with
>> setPropertyIsEnumerable
>> 3) Replace two-argument form of propertyIsEnumerable with
>> __setPropertyIsEnumerable__
> So long as setPropertyIsEnumerable is a method of Object.prototype, it
> raises the otherwise pointless question of the meaning of overriding
> it.

I don't see how it raises any special questions - it's not called  
internally by the implementation or anything.

> At the last ES3.1 face-to-face, we agreed instead on the following
> static method on Object, as recorded at
> < 
> >:

That proposal seems to depart markedly from the past plan that ES 3.1  
is to be a subset of ES4. Has that plan been abandoned? ES3.1  
organizers, what's up?

(If you'd like to propose this design for ES4 as well then the basic  
approach seems sound, in that it avoids whatever risk there is to  
polluting the namespace of all objects without being conceptually  
confusing. Also the names lean too much towards terse instead of  
descriptive for such obscure operations. For instance  
Object.readOnly(o, p) would read much better as something like  
Object.makePropertyReadOnly(o, p).)


More information about the Es4-discuss mailing list