Side navigation
#8421 closed bug (fixed)
Opened March 02, 2011 11:15AM UTC
Closed March 03, 2011 02:18PM UTC
Last modified March 09, 2012 08:15AM UTC
resolveWith fails on IE8 when called with no "args" argument
Reported by: | Martín Soto <donsoto@gmail.com> | Owned by: | jaubourg |
---|---|---|---|
Priority: | high | Milestone: | 1.5.2 |
Component: | core | Version: | 1.5.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Deferred
's resolveWith
method fails on IE8 (with and without IE7 compat mode) when called without its second argument ("args
"), e.g.,
d = $.Deferred(); ... d.resolveWith(this);
According to the docs, this arguments is optional, so this would be a valid call, and it indeed works as expected on at least Firefox and Chrome. IE, on the other hand, fails with an "Object expected" error.
A very small test case for the problem is available at http://jsfiddle.net/martinsoto/BLDTG/. It affects both jQuery 1.5 and 1.5.1.
I could trace this to the apply
call at line 862 of jquery-1.5.1.js
:
callbacks.shift().apply( context, args );
When resolveWith
is called without the args
argument, apply
gets called here with an undefined but explicit second argument. This evidently makes IE choke.
Attachments (0)
Change History (2)
Changed March 03, 2011 02:03PM UTC by comment:1
_comment0: | Not just IE, very good catch :) → 1299161854124346 |
---|---|
component: | unfiled → core |
milestone: | 1.next → 1.5.2 |
owner: | → jaubourg |
priority: | undecided → high |
status: | new → assigned |
Changed March 03, 2011 02:18PM UTC by comment:2
resolution: | → fixed |
---|---|
status: | assigned → closed |
Used the wrong format to notify the fix in the commit message.
https://github.com/jquery/jquery/commit/c1279895f3f33cacc08e508c2409b587c0e6a5a2
very good catch :)