Attribute defaults for Object.defineProperty

Brendan Eich brendan at
Wed Aug 20 11:24:54 PDT 2008

On Aug 20, 2008, at 11:00 AM, Allen Wirfs-Brock wrote:

> The default values for [[Writable]], [[Enumerable]], and  
> [[Flexible]] are all true as currently specified in Table 3 of  
> Section 8.6.1.

Hi Allen, could you remind me and a few others who were wondering  
yesterday (sorry I don't remember -- it's in minutes, somewhere) why  
[[Deletable]] was not chosen instead of [[Flexible]]? Thanks.

Deletable would match the other new names more closely in inverting  
the sense of the ES1-3 attributes, avoiding Dont- prefixes which lead  
to double-negative statements and the fuzzy meaning and marketing  
connotations ("Agile!" ;-)  of "flexible".

>   These defaults apply no matter how a property is created (by an  
> object literal, implicitly by assignment, by defineProperty and  
> friends).  The defaults exactly match the default settings of the  
> corresponding ES3 attributes so there is no semantic change for the  
> property creation forms that already exist in ES3.

Special forms like var and function bind properties that are  
DontDelete unless in eval code. Is this what Mark is getting at?


More information about the Es-discuss mailing list