Open
Bug 431909
Opened 16 years ago
Updated 2 years ago
for each over Arrays still considered harmful
Categories
(Firefox :: General, defect)
Firefox
General
Tracking
()
NEW
People
(Reporter: jtolds, Unassigned)
References
Details
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9b4) Gecko/2008030318 Firefox/3.0b4 Build Identifier: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9b4) Gecko/2008030318 Firefox/3.0b4 There are still a bunch of places where a for each is used over an array. This breaks when an extension modifies the array prototype (which is relatively common) Examples include FillInHTMLTooltip in browser.js, among others. Reproducible: Always Please see bug 412600 (currently marked as closed) for a previous discussion.
Updated•16 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 1•16 years ago
|
||
Besides the discussion in bug 412600, for each and for..in are also slower than plain for loops. I'm not sure about Array.forEach, but it's said to be quite fast.
FYI I did a search for forEach in mozilla central and found hundreds of matches, and many did not seem to be in test code, not sure if or how many of these are custom implementations & uses, on an object for instance. Also did some testing http://jsperf.com/array-for-loops and forEach also appears to be about 1/4 to 1/5 as fast as a normal for loop.
Comment 3•14 years ago
|
||
(In reply to comment #2) > FYI I did a search for forEach in mozilla central and found hundreds of > matches, and many did not seem to be in test code, not sure if or how many of > these are custom implementations & uses, on an object for instance. forEach is fine, is "for each" that is unsafe if done on arrays.
(In reply to comment #3) > (In reply to comment #2) > > FYI I did a search for forEach in mozilla central and found hundreds of > > matches, and many did not seem to be in test code, not sure if or how many of > > these are custom implementations & uses, on an object for instance. > > forEach is fine, is "for each" that is unsafe if done on arrays. Ah perhaps I should make another issue, my mistake. My point is simply that forEach is much much slower than simply using a for loop.
(In reply to comment #4) > perhaps I should make another issue https://bugzilla.mozilla.org/show_bug.cgi?id=598771
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•