summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/json/json_encode.js.map
blob: db4a2a79a4bce4140e0d63a513031ae3f120a950 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/json/json_encode.js"],"names":["module","exports","json_encode","mixedVal","$global","window","global","$locutus","php","json","JSON","retVal","stringify","undefined","SyntaxError","value","quote","string","escapeChars","join","escapable","RegExp","meta","lastIndex","test","replace","a","c","charCodeAt","toString","slice","_str","key","holder","gap","indent","i","k","v","length","mind","partial","toJSON","isFinite","String","Object","prototype","apply","hasOwnProperty","call","push","err","Error","last_error_json"],"mappings":"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","file":"json_encode.js","sourcesContent":["module.exports = function json_encode (mixedVal) { // eslint-disable-line camelcase\n  //       discuss at: http://phpjs.org/functions/json_encode/\n  //      original by: Public Domain (http://www.json.org/json2.js)\n  // reimplemented by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n  //      improved by: Michael White\n  //         input by: felix\n  //      bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //        example 1: json_encode('Kevin')\n  //        returns 1: '\"Kevin\"'\n\n  /*\n    http://www.JSON.org/json2.js\n    2008-11-19\n    Public Domain.\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n    See http://www.JSON.org/js.html\n  */\n\n  var $global = (typeof window !== 'undefined' ? window : global)\n  $global.$locutus = $global.$locutus || {}\n  var $locutus = $global.$locutus\n  $locutus.php = $locutus.php || {}\n\n  var json = $global.JSON\n  var retVal\n  try {\n    if (typeof json === 'object' && typeof json.stringify === 'function') {\n      // Errors will not be caught here if our own equivalent to resource\n      retVal = json.stringify(mixedVal)\n      if (retVal === undefined) {\n        throw new SyntaxError('json_encode')\n      }\n      return retVal\n    }\n\n    var value = mixedVal\n\n    var quote = function (string) {\n      var escapeChars = [\n        '\\u0000-\\u001f',\n        '\\u007f-\\u009f',\n        '\\u00ad',\n        '\\u0600-\\u0604',\n        '\\u070f',\n        '\\u17b4',\n        '\\u17b5',\n        '\\u200c-\\u200f',\n        '\\u2028-\\u202f',\n        '\\u2060-\\u206f',\n        '\\ufeff',\n        '\\ufff0-\\uffff'\n      ].join('')\n      var escapable = new RegExp('[\\\\\"' + escapeChars + ']', 'g')\n      var meta = {\n        // table of character substitutions\n        '\\b': '\\\\b',\n        '\\t': '\\\\t',\n        '\\n': '\\\\n',\n        '\\f': '\\\\f',\n        '\\r': '\\\\r',\n        '\"': '\\\\\"',\n        '\\\\': '\\\\\\\\'\n      }\n\n      escapable.lastIndex = 0\n      return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n        var c = meta[a]\n        return typeof c === 'string' ? c : '\\\\u' + ('0000' + a.charCodeAt(0)\n          .toString(16))\n          .slice(-4)\n      }) + '\"' : '\"' + string + '\"'\n    }\n\n    var _str = function (key, holder) {\n      var gap = ''\n      var indent = '    '\n      // The loop counter.\n      var i = 0\n      // The member key.\n      var k = ''\n      // The member value.\n      var v = ''\n      var length = 0\n      var mind = gap\n      var partial = []\n      var value = holder[key]\n\n      // If the value has a toJSON method, call it to obtain a replacement value.\n      if (value && typeof value === 'object' && typeof value.toJSON === 'function') {\n        value = value.toJSON(key)\n      }\n\n      // What happens next depends on the value's type.\n      switch (typeof value) {\n        case 'string':\n          return quote(value)\n\n        case 'number':\n          // JSON numbers must be finite. Encode non-finite numbers as null.\n          return isFinite(value) ? String(value) : 'null'\n\n        case 'boolean':\n        case 'null':\n          // If the value is a boolean or null, convert it to a string. Note:\n          // typeof null does not produce 'null'. The case is included here in\n          // the remote chance that this gets fixed someday.\n          return String(value)\n\n        case 'object':\n          // If the type is 'object', we might be dealing with an object or an array or\n          // null.\n          // Due to a specification blunder in ECMAScript, typeof null is 'object',\n          // so watch out for that case.\n          if (!value) {\n            return 'null'\n          }\n\n          // Make an array to hold the partial results of stringifying this object value.\n          gap += indent\n          partial = []\n\n          // Is the value an array?\n          if (Object.prototype.toString.apply(value) === '[object Array]') {\n            // The value is an array. Stringify every element. Use null as a placeholder\n            // for non-JSON values.\n            length = value.length\n            for (i = 0; i < length; i += 1) {\n              partial[i] = _str(i, value) || 'null'\n            }\n\n            // Join all of the elements together, separated with commas, and wrap them in\n            // brackets.\n            v = partial.length === 0 ? '[]' : gap\n              ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n              : '[' + partial.join(',') + ']'\n            gap = mind\n            return v\n          }\n\n          // Iterate through all of the keys in the object.\n          for (k in value) {\n            if (Object.hasOwnProperty.call(value, k)) {\n              v = _str(k, value)\n              if (v) {\n                partial.push(quote(k) + (gap ? ': ' : ':') + v)\n              }\n            }\n          }\n\n          // Join all of the member texts together, separated with commas,\n          // and wrap them in braces.\n          v = partial.length === 0 ? '{}' : gap\n            ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n            : '{' + partial.join(',') + '}'\n          gap = mind\n          return v\n        case 'undefined':\n        case 'function':\n        default:\n          throw new SyntaxError('json_encode')\n      }\n    }\n\n    // Make a fake root object containing our value under the key of ''.\n    // Return the result of stringifying the value.\n    return _str('', {\n      '': value\n    })\n  } catch (err) {\n    // @todo: ensure error handling above throws a SyntaxError in all cases where it could\n    // (i.e., when the JSON global is not available and there is an error)\n    if (!(err instanceof SyntaxError)) {\n      throw new Error('Unexpected error type in json_encode()')\n    }\n    // usable by json_last_error()\n    $locutus.php.last_error_json = 4\n    return null\n  }\n}\n"]}