Call for opinions: attribute defaults and renaming "flexible"
dhtmlkitchen at gmail.com
Sun Aug 24 10:45:17 PDT 2008
2008/8/21 Allen Wirfs-Brock <Allen.Wirfs-Brock at microsoft.com>:
> At the Thursday, August 21, ES3.1 design conference call we debated two
> decision points relating to property attributes but did not reach consensus
> on either item. There are strong points on each side of these issues but so
> far too few contributors have weighed in to reach any consensus on the
> Issue 1: When a property is defined using Object.defineProperty and similar
> functions what are the values of any properties attributes that are not
> explicitly specified using the property descriptor argument.
> The attributes we are talking about are [[Writable]], [[Enumerable]],
> See ES3.1 Draft Sections 8.6.1, 126.96.36.199, 188.8.131.52 and similar functions in
However, it seems that what I one might guess [[Flexible]] to mean is
partially defined as [[Extensible]].
| [[Extensible]] If true, own properties may be added
| to the object.
The opposite of [[Extensible]] still allows property values to be
modified. The object is not "sealed". The term "sealed" seems to lack
> "Proposed ECMAScript 3.1 Static Object Functions: Use Cases and Rationale"
> Issue 2: The property attribute currently named [[Flexible]] (and which
> replaces ES3's [[dontDelete]]) should be renamed to [[Configurable]].
> Argument for:
> * The common meaning of the word "configurable" is a closer match to the
> actual semantics of the attribute than the common meaning of "flexible"
[[Configurable]] would seem to mean a lot more than [[Deletable]].
Configurable sounds like [[Extensible]] new properties can be
added/deleted. configurable=false would seem as though the object were
> * The other attributes name all follow the form of a semantically meaningful
> verb ("write" and "enumerate") converted to an adjective by adding "able".
> "flex" is not semantically meaningful within ES.
Has [[Deletable]] been considered?
More information about the Es-discuss