I am working on a proposal (http://wiki.csswg.org/spec/css3-regions/css-om) to update the CSS Regions CSS OM APIs, and one of the changes is to make various lists static. I see that the thread at http://lists.w3.org/Archives/Public/public-webapps/2012JanMar/1068.html stemmed from the CSS Regions OM implementation in WebKit.
It seems that the thread resulted in an agreement to keep using NodeList and make it inherit from Array. I also see that change in the latest editor draft of DOM4.
For the changes we are proposing, we have a need to return a static array of Nodes. We can follow the pattern discussed in this thread and use NodeList, but we also need to return arrays of Range instances (static list) and arrays of Region objects (static list).
I am wondering if it would be better to define a RegionList class and a RangeList class, to be consistent with NodeList, or would it be better to use sequence<Region> and sequence<Range>?
I think we have three options:
a. Use sequence<T> everywhere we have static lists in the CSS regions APIs. This is consistent within the spec., but would be inconsistent with DOM4 NodeList and its usage.
b. Use sequence<T> everywhere except where T=Node, in which case we would use NodeList. This is consistent with DOM4 and inconsistent within the spec.
c. Use NodeList and define RegionList/RangeList. This is consistent in the region spec. and with DOM4. But it introduces new interfaces with little added functionality (and they would have to be kept in sync. with NodeList if new features were added to the interface).
All in all, I think I prefer option b. but I would appreciate feedback.