diff options
Diffstat (limited to 'libs/bower_components/jquery/src/ajax/parseJSON.js')
-rw-r--r-- | libs/bower_components/jquery/src/ajax/parseJSON.js | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/libs/bower_components/jquery/src/ajax/parseJSON.js b/libs/bower_components/jquery/src/ajax/parseJSON.js index 69b5c837d8..11918b06d6 100644 --- a/libs/bower_components/jquery/src/ajax/parseJSON.js +++ b/libs/bower_components/jquery/src/ajax/parseJSON.js @@ -1,51 +1,13 @@ -define([ +define( [ "../core" ], function( jQuery ) { -var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; - +// Support: Android 2.3 +// Workaround failure to string-cast null input jQuery.parseJSON = function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - // Support: Android 2.3 - // Workaround failure to string-cast null input - return window.JSON.parse( data + "" ); - } - - var requireNonComma, - depth = null, - str = jQuery.trim( data + "" ); - - // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains - // after removing valid tokens - return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { - - // Force termination if we see a misplaced comma - if ( requireNonComma && comma ) { - depth = 0; - } - - // Perform no more replacements after returning to outermost depth - if ( depth === 0 ) { - return token; - } - - // Commas must not follow "[", "{", or "," - requireNonComma = open || comma; - - // Determine new depth - // array/object open ("[" or "{"): depth += true - false (increment) - // array/object close ("]" or "}"): depth += false - true (decrement) - // other cases ("," or primitive): depth += true - true (numeric cast) - depth += !close - !open; - - // Remove this token - return ""; - }) ) ? - ( Function( "return " + str ) )() : - jQuery.error( "Invalid JSON: " + data ); + return JSON.parse( data + "" ); }; return jQuery.parseJSON; -}); +} ); |