On Thu, Oct 20, 2011 at 04:18, Alex Russell <slightlyoff@google.com> wrote:
> No we don't. The fact that there's someone else who has a handle to
> the list and can mutate it underneath you is a documentation issue,
> not a question of type...unless the argument is that the slots should
> be non-configurable, non-writable except by the browser that's also
> holding a ref to it.
That is an ES violation. A non configurable, non writable data
property is not allowed to change its value.
var descr = Object.getOwnPropertyDescription(object, name);
if (!descr.configurable && !decsr.writable && ('value' in descr)) {
var value = descr.value;
setInterval(function() {
// Must never change
assert(object[name] === value);
});
}
Therefore there is no such thing as an immutable live NodeList.
There are ways around this.
1. Use a getter
2. Make it configurable
--
erik