Closed Bug 400366 Opened 16 years ago Closed 16 years ago

[FIX] typeof Prototype == object since 2007/05/10


(Core :: DOM: Core & HTML, defect, P2)






(Reporter: Mardak, Assigned: jst)




(Keywords: regression)


(1 file)

Loading the following url results in an XPC_NOT_ENOUGH_ARGS exception for calling nsIDOMWindowInternal.scroll.

The offending line is..


.. where the script is probably trying to use jQuery's scroll function, but is getting window.scroll.

If I change the script to $("window").scroll(..), the exception isn't thrown.

This started happening with 20070510 nightly builds; the page works fine in Firefox and still fails with the latest trunk 20071018.

After doing some debugging of the jQuery $ function, it turns out it's going into the if condition on trunk because "typeof Prototype != "undefined"" and actually turns out to be object.
Oh, should have updated some steps now that I realize it's typeof Prototype causing the problem.

javascript:alert(typeof Prototype)

it should probably be "undefined" but is turning up as "object".
Regression from bug 370098. We should probably change Prototype to DOMPrototype at and maybe Constructor to DOMConstructor?
Blocks: 370098
Flags: blocking1.9?
Assignee: nobody → jst
Flags: blocking1.9? → blocking1.9+
jresig: How much of an issue is this with 2-yr old versions (0.30) of jQuery's $ function checking "typeof Prototype"? Should it only affect $(window) and a particular set of jQuery functions, so only a small number of websites should be affected?
Well, with this copy of jQuery, I would say that it's "not a very big deal" - HOWEVER - I would consider the introduction of a Prototype or Constructor variable to be a VERY BIG DEAL (and a very bad thing). I'm sure if the Prototype guys found out they'd have a coronary.

But yeah, if these variables are DOM-specific, then they should probably have the DOM prefix.
Attached patch Fix.Splinter Review
Attachment #287476 - Flags: superreview?(peterv)
Attachment #287476 - Flags: review?(peterv)
Summary: typeof Prototype == object since 2007/05/10 → [FIX] typeof Prototype == object since 2007/05/10
should probably add a test for this before you check it in.
Flags: in-testsuite?
Comment on attachment 287476 [details] [diff] [review]

Do we need to rename nsIDOMConstructor to nsIDOMDOMConstructor too?
Attachment #287476 - Flags: superreview?(peterv)
Attachment #287476 - Flags: superreview+
Attachment #287476 - Flags: review?(peterv)
Attachment #287476 - Flags: review+
Yeah, I just checked this in and did the rename (interface only, not the file). Marking FIXED.
Closed: 16 years ago
Resolution: --- → FIXED
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.