summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/math/max.js.map
blob: 003ad702d3f2bc2bf208b8db0b20a7ae10802b8a (plain) (blame)
1
{"version":3,"sources":["../../../src/php/math/max.js"],"names":["module","exports","max","ar","retVal","i","n","argv","arguments","argc","length","_obj2Array","obj","Object","prototype","toString","call","hasOwnProperty","push","_compare","current","next","tmp","nl","cl","isNaN","Error"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,GAAT,GAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,EAAJ;AACA,MAAIC,MAAJ;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,OAAOC,SAAX;AACA,MAAIC,OAAOF,KAAKG,MAAhB;AACA,MAAIC,aAAa,SAAbA,UAAa,CAAUC,GAAV,EAAe;AAC9B,QAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,gBAA5C,EAA8D;AAC5D,aAAOA,GAAP;AACD,KAFD,MAEO;AACL,UAAIT,KAAK,EAAT;AACA,WAAK,IAAIE,CAAT,IAAcO,GAAd,EAAmB;AACjB,YAAIA,IAAIK,cAAJ,CAAmBZ,CAAnB,CAAJ,EAA2B;AACzBF,aAAGe,IAAH,CAAQN,IAAIP,CAAJ,CAAR;AACD;AACF;AACD,aAAOF,EAAP;AACD;AACF,GAZD;AAaA,MAAIgB,WAAW,SAAXA,QAAW,CAAUC,OAAV,EAAmBC,IAAnB,EAAyB;AACtC,QAAIhB,IAAI,CAAR;AACA,QAAIC,IAAI,CAAR;AACA,QAAIgB,MAAM,CAAV;AACA,QAAIC,KAAK,CAAT;AACA,QAAIC,KAAK,CAAT;;AAEA,QAAIJ,YAAYC,IAAhB,EAAsB;AACpB,aAAO,CAAP;AACD,KAFD,MAEO,IAAI,QAAOD,OAAP,yCAAOA,OAAP,OAAmB,QAAvB,EAAiC;AACtC,UAAI,QAAOC,IAAP,yCAAOA,IAAP,OAAgB,QAApB,EAA8B;AAC5BD,kBAAUT,WAAWS,OAAX,CAAV;AACAC,eAAOV,WAAWU,IAAX,CAAP;AACAG,aAAKJ,QAAQV,MAAb;AACAa,aAAKF,KAAKX,MAAV;AACA,YAAIa,KAAKC,EAAT,EAAa;AACX,iBAAO,CAAP;AACD,SAFD,MAEO,IAAID,KAAKC,EAAT,EAAa;AAClB,iBAAO,CAAC,CAAR;AACD;AACD,aAAKnB,IAAI,CAAJ,EAAOC,IAAIkB,EAAhB,EAAoBnB,IAAIC,CAAxB,EAA2B,EAAED,CAA7B,EAAgC;AAC9BiB,gBAAMH,SAASC,QAAQf,CAAR,CAAT,EAAqBgB,KAAKhB,CAAL,CAArB,CAAN;AACA,cAAIiB,QAAQ,CAAZ,EAAe;AACb,mBAAO,CAAP;AACD,WAFD,MAEO,IAAIA,QAAQ,CAAC,CAAb,EAAgB;AACrB,mBAAO,CAAC,CAAR;AACD;AACF;AACD,eAAO,CAAP;AACD;AACD,aAAO,CAAC,CAAR;AACD,KAtBM,MAsBA,IAAI,QAAOD,IAAP,yCAAOA,IAAP,OAAgB,QAApB,EAA8B;AACnC,aAAO,CAAP;AACD,KAFM,MAEA,IAAII,MAAMJ,IAAN,KAAe,CAACI,MAAML,OAAN,CAApB,EAAoC;AACzC,UAAIA,YAAY,CAAhB,EAAmB;AACjB,eAAO,CAAP;AACD;AACD,aAAQA,UAAU,CAAV,GAAc,CAAd,GAAkB,CAAC,CAA3B;AACD,KALM,MAKA,IAAIK,MAAML,OAAN,KAAkB,CAACK,MAAMJ,IAAN,CAAvB,EAAoC;AACzC,UAAIA,SAAS,CAAb,EAAgB;AACd,eAAO,CAAP;AACD;AACD,aAAQA,OAAO,CAAP,GAAW,CAAX,GAAe,CAAC,CAAxB;AACD;;AAED,QAAIA,SAASD,OAAb,EAAsB;AACpB,aAAO,CAAP;AACD;;AAED,WAAQC,OAAOD,OAAP,GAAiB,CAAjB,GAAqB,CAAC,CAA9B;AACD,GAlDD;;AAoDA,MAAIX,SAAS,CAAb,EAAgB;AACd,UAAM,IAAIiB,KAAJ,CAAU,8CAAV,CAAN;AACD,GAFD,MAEO,IAAIjB,SAAS,CAAb,EAAgB;AACrB,QAAI,QAAOF,KAAK,CAAL,CAAP,MAAmB,QAAvB,EAAiC;AAC/BJ,WAAKQ,WAAWJ,KAAK,CAAL,CAAX,CAAL;AACD,KAFD,MAEO;AACL,YAAM,IAAImB,KAAJ,CAAU,iCAAV,CAAN;AACD;AACD,QAAIvB,GAAGO,MAAH,KAAc,CAAlB,EAAqB;AACnB,YAAM,IAAIgB,KAAJ,CAAU,mDAAV,CAAN;AACD;AACF,GATM,MASA;AACLvB,SAAKI,IAAL;AACD;;AAEDH,WAASD,GAAG,CAAH,CAAT;AACA,OAAKE,IAAI,CAAJ,EAAOC,IAAIH,GAAGO,MAAnB,EAA2BL,IAAIC,CAA/B,EAAkC,EAAED,CAApC,EAAuC;AACrC,QAAIc,SAASf,MAAT,EAAiBD,GAAGE,CAAH,CAAjB,MAA4B,CAAhC,EAAmC;AACjCD,eAASD,GAAGE,CAAH,CAAT;AACD;AACF;;AAED,SAAOD,MAAP;AACD,CAjHD","file":"max.js","sourcesContent":["module.exports = function max () {\n  //  discuss at: http://locutus.io/php/max/\n  // original by: Onno Marsman (https://twitter.com/onnomarsman)\n  //  revised by: Onno Marsman (https://twitter.com/onnomarsman)\n  // improved by: Jack\n  //      note 1: Long code cause we're aiming for maximum PHP compatibility\n  //   example 1: max(1, 3, 5, 6, 7)\n  //   returns 1: 7\n  //   example 2: max([2, 4, 5])\n  //   returns 2: 5\n  //   example 3: max(0, 'hello')\n  //   returns 3: 0\n  //   example 4: max('hello', 0)\n  //   returns 4: 'hello'\n  //   example 5: max(-1, 'hello')\n  //   returns 5: 'hello'\n  //   example 6: max([2, 4, 8], [2, 5, 7])\n  //   returns 6: [2, 5, 7]\n\n  var ar\n  var retVal\n  var i = 0\n  var n = 0\n  var argv = arguments\n  var argc = argv.length\n  var _obj2Array = function (obj) {\n    if (Object.prototype.toString.call(obj) === '[object Array]') {\n      return obj\n    } else {\n      var ar = []\n      for (var i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ar.push(obj[i])\n        }\n      }\n      return ar\n    }\n  }\n  var _compare = function (current, next) {\n    var i = 0\n    var n = 0\n    var tmp = 0\n    var nl = 0\n    var cl = 0\n\n    if (current === next) {\n      return 0\n    } else if (typeof current === 'object') {\n      if (typeof next === 'object') {\n        current = _obj2Array(current)\n        next = _obj2Array(next)\n        cl = current.length\n        nl = next.length\n        if (nl > cl) {\n          return 1\n        } else if (nl < cl) {\n          return -1\n        }\n        for (i = 0, n = cl; i < n; ++i) {\n          tmp = _compare(current[i], next[i])\n          if (tmp === 1) {\n            return 1\n          } else if (tmp === -1) {\n            return -1\n          }\n        }\n        return 0\n      }\n      return -1\n    } else if (typeof next === 'object') {\n      return 1\n    } else if (isNaN(next) && !isNaN(current)) {\n      if (current === 0) {\n        return 0\n      }\n      return (current < 0 ? 1 : -1)\n    } else if (isNaN(current) && !isNaN(next)) {\n      if (next === 0) {\n        return 0\n      }\n      return (next > 0 ? 1 : -1)\n    }\n\n    if (next === current) {\n      return 0\n    }\n\n    return (next > current ? 1 : -1)\n  }\n\n  if (argc === 0) {\n    throw new Error('At least one value should be passed to max()')\n  } else if (argc === 1) {\n    if (typeof argv[0] === 'object') {\n      ar = _obj2Array(argv[0])\n    } else {\n      throw new Error('Wrong parameter count for max()')\n    }\n    if (ar.length === 0) {\n      throw new Error('Array must contain at least one element for max()')\n    }\n  } else {\n    ar = argv\n  }\n\n  retVal = ar[0]\n  for (i = 1, n = ar.length; i < n; ++i) {\n    if (_compare(retVal, ar[i]) === 1) {\n      retVal = ar[i]\n    }\n  }\n\n  return retVal\n}\n"]}