RESOLVED WONTFIX18200
document.all("id") doesn't create a collection that supports indexing with round braces
https://bugs.webkit.org/show_bug.cgi?id=18200
Summary document.all("id") doesn't create a collection that supports indexing with ro...
jasneet
Reported 2008-03-28 17:03:15 PDT
I Steps: Go to http://bf.sina.com.cn/sinarc_php/piclist.php?aid=105&from=403 II Issue: In the left nav bar, try to click on "+" or "-". the tree doesn't expand or collapse on clicking + or - III Conclusion: Webkit doesn't create an array for all the elements found for the "id" in document.all("id") IV Other browsers: IE7: ok FF3: not ok Opera9.24: ok V Nightly tested: 31386
Attachments
reduction (468 bytes, text/html)
2008-03-28 17:04 PDT, jasneet
no flags
jasneet
Comment 1 2008-03-28 17:04:12 PDT
Created attachment 20174 [details] reduction
Cameron Zwarich (cpst)
Comment 2 2009-04-20 21:33:53 PDT
This is not a bug about JS arrays, it is about DOM collections. Geoff mentioned that we have added this for other collections.
Sam Weinig
Comment 3 2009-04-20 22:20:07 PDT
Interesting. JSHTMLAllCollection inherits from JSHTMLCollection which implements the funky IE emulating call notation. I wonder why it is not getting hit.
Cameron Zwarich (cpst)
Comment 4 2009-04-20 22:40:43 PDT
This is a pretty bizarre bug. I can verify with GDB that the correct code in JSHTMLCollection is being called from JITStubs::cti_op_call_NotJSFunction() and a correct value is being returned, but it also reenters JITStubs::cti_op_call_NotJSFunction() and then thinks that the value is not a function.
Cameron Zwarich (cpst)
Comment 5 2009-04-20 23:34:40 PDT
Oh, I was just misreading things because I was tired. Doing document.all returns a JSHTMLAllCollection, and indexing by id in that collection returns a JSNamedNodesCollection, which does not support the function call syntax.
Sam Weinig
Comment 6 2009-04-20 23:39:25 PDT
Ah, I made the same mistake as well. I thought the bug was in the HTMLAllCollection not supporting call notation.
Anne van Kesteren
Comment 7 2023-08-23 07:30:20 PDT
No browser alive passes the reduced test case so changing this would almost definitely be counterproductive at this point.
Note You need to log in before you can comment on or make changes to this bug.