Peter Michaux wrote: >>From 8.6.1, Table 2 > > [[Configurable]] > If true, attempts to delete the property, change the property to a > data property, or change its attributes will succeed. > > This looks like at least three orthogonal properties to me. > > [[Deletable]] > If true, attempts to delete the property will succeed. > > [[RePropertyTypeable]] > If true, attempts to change the property to a data property will succeed. > > [[ReAttributable]] > If true, attempts to change its attributes will succeed. > > Why have these three things been lumped together? It seems like it > would only be luck that these three seemingly orthogonal properties > would always change in unison. For example, for a non-deletable > property, why couldn't the enumerability of that property be changed?
If you can set attribute mutability ([[ReAttributable]] above), then you can set the [[Deletable]] attribute. If you can set the [[Deletable]] attribute, then you can delete the property and its current attributes. If you can delete the property, then you can recreate it with different attributes (implying [[RePropertyTypeable]] and [[ReAttributable]]). So, there is neither a security nor an expressiveness argument for making any distinction between these rights. An argument for separating them would have to be based on convenience (but it seems less convenient, not more), or on preventing inadvertent, non-malicious changes, or possibly on efficiency (but these operations are probably not common enough for that to be significant). -- David-Sarah Hopwood _______________________________________________ Es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

