Opened 14 years ago
Closed 13 years ago
#4733 closed bug (worksforme)
makeArray sometimes breaks on DOM Elements
Reported by: | appden | Owned by: | flesler |
---|---|---|---|
Priority: | major | Milestone: | 1.4 |
Component: | core | Version: | 1.3.2 |
Keywords: | Cc: | appden | |
Blocked by: | Blocking: |
Description
This function queries for a 'length' property and then makes a false assumption that a DOM element's 'length' is undefined. This sometimes is a false assumption and can cause havoc.
In my case, a Firefox 3 memory bug sometimes caused an element to return a *gigantic* number as its length, causing an unresponsive script error when makeArray tried to loop through that huge number.
makeArray should have a more explicit test on its input.
Attachments (1)
Change History (4)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Cc: | appden added |
---|---|
Owner: | set to flesler |
comment:3 Changed 13 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Can you reopen this with a test case? It seems like DOM elements with a length should work properly. For example, $.makeArray(formelement)
returns the form.elements collection as an Array. I've attached an example.
BTW, my temporary fix was to overwrite the makeArray function and add a test to see if the input has a 'nodeType'. The Firefox 3 bug that I mentioned is filed here:
https://bugzilla.mozilla.org/show_bug.cgi?id=496652