atom feed72 messages in org.w3.public-webapiRe: ACTION-87: Selectors API
FromSent OnAttachments
24 earlier messages
Anne van KesterenMar 22, 2006 4:37 am 
Jim LeyMar 22, 2006 5:43 am 
Anne van KesterenMar 22, 2006 6:08 am 
Jim LeyMar 22, 2006 6:45 am 
Maciej StachowiakMar 22, 2006 11:16 am 
Maciej StachowiakMar 22, 2006 11:22 am 
Maciej StachowiakMar 22, 2006 11:25 am 
Robin BerjonMar 22, 2006 2:01 pm 
Maciej StachowiakMar 22, 2006 2:28 pm 
Ian HicksonMar 22, 2006 2:48 pm 
Ian HicksonMar 22, 2006 2:51 pm 
Maciej StachowiakMar 22, 2006 3:20 pm 
Jim LeyMar 22, 2006 6:17 pm 
Jim LeyMar 22, 2006 6:24 pm 
Anne van KesterenMar 23, 2006 4:28 am 
Ian HicksonMar 23, 2006 2:31 pm 
Anne van KesterenMar 25, 2006 4:36 am 
Ian HicksonMar 27, 2006 3:13 pm 
Anne van KesterenApr 3, 2006 5:46 am 
Anne van KesterenApr 3, 2006 5:51 am 
lioreanMay 12, 2006 8:49 pm 
Anne van KesterenMay 13, 2006 4:15 am 
lioreanMay 13, 2006 12:08 pm 
Anne van KesterenMay 13, 2006 12:26 pm 
lioreanMay 13, 2006 2:40 pm 
Anne van KesterenMay 14, 2006 7:20 am 
lioreanMay 14, 2006 4:22 pm 
Anne van KesterenMay 15, 2006 3:15 am 
lioreanMay 16, 2006 9:29 pm 
Anne van KesterenMay 17, 2006 5:18 am 
Lachlan HuntMay 17, 2006 6:19 am 
Anne van KesterenMay 17, 2006 6:30 am 
Jim LeyMay 17, 2006 6:35 am 
Lachlan HuntMay 17, 2006 7:02 am 
Robin BerjonMay 17, 2006 7:07 am 
Anne van KesterenMay 18, 2006 12:46 am 
Jonas SickingMay 30, 2006 3:11 pm 
Jonas SickingMay 30, 2006 3:24 pm 
Jonas SickingMay 30, 2006 3:42 pm 
Ian HicksonMay 30, 2006 3:55 pm 
Robin BerjonMay 30, 2006 4:15 pm 
Jonas SickingMay 30, 2006 5:56 pm 
Anne van KesterenJun 5, 2006 2:46 am 
Anne van KesterenJun 5, 2006 2:49 am 
Jonas SickingJun 5, 2006 12:31 pm 
Charles McCathieNevileJun 5, 2006 5:37 pm 
lioreanJun 5, 2006 6:16 pm 
Maciej StachowiakJun 5, 2006 10:40 pm 
Subject:Re: ACTION-87: Selectors API
From:liorean (lior@gmail.com)
Date:May 13, 2006 2:40:06 pm
List:org.w3.public-webapi

On 13/05/06, Anne van Kesteren <ann@opera.com> wrote:

On Sat, 13 May 2006 21:08:26 +0200, liorean <lior@gmail.com> wrote:

And StaticNodeList looks to me to be pretty array-like.

Well, if StaticNodeList looks that way NodeList would look that way too and I'd therefore suggest raising that on www-@w3.org instead. Note that I don't really want to be defining StaticNodeList in the first place.

Not quite. NodeList are, in some ways, array-like. But StaticNodeList is more array-like, for several reasons:

- First of all, I think StaticNodeList would be implemented as an actual list or hash table, not as filters used on the live node tree. This specifically because it's not supposed to be affected by changes in the node tree. This means they are considerably different under the hood.

- Second, manipulating the DOM using elements gotten from looping through a NodeList will have effects on that NodeList during the loop. Removals, reparentings, insertions etc, may affect the NodeList. StaticNodeList will not be affected by changes to the DOM. This means the different mapping functions may have very bizzarre side effects on NodeLists that they would not have on StaticNodeLists.

- Third, NodeLists being live means you cannot manually manipulate them. StaticNodeLists don't have this problem. Since they are not live, manipulation of them should not be a problem. This means array functionality such as sort, push, pop that would simply not make sense on a NodeList would make perfect sense on a StaticNodeList.

I do see two notable differences between StaticNodeList and ECMAScript Array though:

- NodeList is naturally dense, so StaticNodeList would have to force denseness too. Array is sparse. This means that what happens when the user tries assigning to random indices larger than the length; or removing elements in the middle of the StaticNodeList; or setting the length to a value larger than the current length; would need to be defined in a way that makes sense in the ECMAScript bindings.

- NodeLists only contain Node objects, so the same would have to be true for StaticNodeList. Arrays may contain any type of JavaScript object. This means what happens if the user tries to add a non-Node object to the StaticNodeList would have to be defined in the ECMAScript bindings.

One possible solution to these problems: - If trying to insert a non-Node in the StaticNodeList, throw the appropriate RunTime error. - If trying to delete any index smaller than the length of the StaticNodeList, throw the appropriate RunTime error. (might have to be length-1, to allow for removing the last element in StaticNodeList) - If trying to assign to an index larger than the length of the StaticNodeList, thow the appropriate RunTime arror. - If trying to assign a value larger than the current length of the StaticNodeList to the length property, throw the appropriate RunTime error. -- David "liorean" Andersson <uri:http://liorean.web-graphics.com/>