From: jeresig <jeresig@gmail.com>
Date: Sat, 13 Feb 2010 07:14:23 +0000 (-0500)
Subject: Make sure leading whitespace is trimmed for parseJSON. Fixes #6031.
X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=94d925cd4615d88532737f3cd106ecd1f8c34bc3;p=jquery.git

Make sure leading whitespace is trimmed for parseJSON. Fixes #6031.
---

diff --git a/src/core.js b/src/core.js
index 02d8269..9fa311d 100644
--- a/src/core.js
+++ b/src/core.js
@@ -480,6 +480,9 @@ jQuery.extend({
 		if ( typeof data !== "string" || !data ) {
 			return null;
 		}
+
+		// Make sure leading/trailing whitespace is removed (IE can't handle it)
+		data = jQuery.trim( data );
 		
 		// Make sure the incoming data is actual JSON
 		// Logic borrowed from http://json.org/json2.js
diff --git a/test/unit/core.js b/test/unit/core.js
index 4576ab8..d8aba16 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -807,7 +807,7 @@ test("jQuery.proxy", function(){
 });
 
 test("jQuery.parseJSON", function(){
-	expect(7);
+	expect(8);
 	
 	equals( jQuery.parseJSON(), null, "Nothing in, null out." );
 	equals( jQuery.parseJSON( null ), null, "Nothing in, null out." );
@@ -815,6 +815,8 @@ test("jQuery.parseJSON", function(){
 	
 	same( jQuery.parseJSON("{}"), {}, "Plain object parsing." );
 	same( jQuery.parseJSON('{"test":1}'), {"test":1}, "Plain object parsing." );
+
+	same( jQuery.parseJSON('\n{"test":1}'), {"test":1}, "Make sure leading whitespaces are handled." );
 	
 	try {
 		jQuery.parseJSON("{a:1}");
@@ -829,4 +831,4 @@ test("jQuery.parseJSON", function(){
 	} catch( e ) {
 		ok( true, "Test malformed JSON string." );
 	}
-});
\ No newline at end of file
+});