Bug Tracker

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#10810 closed bug (invalid)

$.parseJSON("null") Causes Stack Overflow With Internet Explorer 6 - 7

Reported by: phistuck Owned by: phistuck
Priority: undecided Milestone: None
Component: core Version: 1.7
Keywords: jqueries Cc:
Blocked by: Blocking:

Description

In all of the (modern) browsers, JSON.parse returns null when called with JSON.parse("null"), so $.parseJSON should do the same for browsers with no native JSON support.

Tested and failed with jQuery 1.7, jQuery 1.6.4, jQuery 1.5.1.

Change History (5)

comment:1 Changed 8 years ago by phistuck

I neglected to mention that in some configurations, this causes Internet Explorer 6 to simply shut down immediately, without any warning. Other times, it just shows a weird stack overflow alert and the rest of the page keeps loading as usual.

comment:2 Changed 8 years ago by dmethvin

Owner: set to phistuck
Status: newpending

This works fine for me in IE7: http://jsfiddle.net/dmethvin/eUQVX/

Is it possible you are including some other code that is shimming JSON.parse?

comment:3 Changed 8 years ago by phistuck

Status: pendingnew

Oh. Actually, now that you have mentioned it...

I include something like that (after jQuery is loaded, but before I use JSON.parse) -

if (!window.JSON)
{
 window.JSON = {parse: $.parseJSON};
}

Can you maybe add a check for that (JSON.parse !== $.parseJSON) in jQuery?

I prefer to use JSON.parse straight on instead of $.parseJSON every time)...

Last edited 8 years ago by phistuck (previous) (diff)

comment:4 Changed 8 years ago by dmethvin

Resolution: invalid
Status: newclosed

No. Don't replace native methods with semi-functional ones, it will confuse code that expects things to work.

comment:5 Changed 8 years ago by dmethvin

Component: unfiledcore
Keywords: jqueries added
Note: See TracTickets for help on using tickets.