File: //proc/1526/task/1527/cwd/tana/frontend/node_modules/locutus/php/var/gettype.js.map
{"version":3,"sources":["../../../src/php/var/gettype.js"],"names":["module","exports","gettype","mixedVar","isFloat","require","s","name","_getFuncName","fn","exec","length","propertyIsEnumerable","splice","constructor"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,OAAT,CAAkBC,QAAlB,EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAUC,QAAQ,iBAAR,CAAd;;AAEA,MAAIC,WAAWH,QAAX,yCAAWA,QAAX,CAAJ;AACA,MAAII,IAAJ;AACA,MAAIC,eAAe,SAAfA,YAAe,CAAUC,EAAV,EAAc;AAC/B,QAAIF,OAAQ,6BAAD,CAAgCG,IAAhC,CAAqCD,EAArC,CAAX;AACA,QAAI,CAACF,IAAL,EAAW;AACT,aAAO,aAAP;AACD;AACD,WAAOA,KAAK,CAAL,CAAP;AACD,GAND;;AAQA,MAAID,MAAM,QAAV,EAAoB;AAClB,QAAIH,aAAa,IAAjB,EAAuB;AACrB;AACA;AACA,UAAI,OAAOA,SAASQ,MAAhB,KAA2B,QAA3B,IACF,CAAER,SAASS,oBAAT,CAA8B,QAA9B,CADA,IAEF,OAAOT,SAASU,MAAhB,KAA2B,UAF7B,EAEyC;AACvCP,YAAI,OAAJ;AACD,OAJD,MAIO,IAAIH,SAASW,WAAT,IAAwBN,aAAaL,SAASW,WAAtB,CAA5B,EAAgE;AACrEP,eAAOC,aAAaL,SAASW,WAAtB,CAAP;AACA,YAAIP,SAAS,MAAb,EAAqB;AACnB;AACAD,cAAI,MAAJ;AACD,SAHD,MAGO,IAAIC,SAAS,QAAb,EAAuB;AAC5B;AACAD,cAAI,QAAJ;AACD,SAHM,MAGA,IAAIC,SAAS,kBAAb,EAAiC;AACtC;AACAD,cAAI,UAAJ;AACD;AACF;AACF,KApBD,MAoBO;AACLA,UAAI,MAAJ;AACD;AACF,GAxBD,MAwBO,IAAIA,MAAM,QAAV,EAAoB;AACzBA,QAAIF,QAAQD,QAAR,IAAoB,QAApB,GAA+B,SAAnC;AACD;;AAED,SAAOG,CAAP;AACD,CAjED","file":"gettype.js","sourcesContent":["module.exports = function gettype (mixedVar) {\n  //  discuss at: http://locutus.io/php/gettype/\n  // original by: Paulo Freitas\n  // improved by: Kevin van Zonneveld (http://kvz.io)\n  // improved by: Douglas Crockford (http://javascript.crockford.com)\n  // improved by: Brett Zamir (http://brett-zamir.me)\n  //    input by: KELAN\n  //      note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes\n  //      note 1: it different from the PHP implementation. We can't fix this unfortunately.\n  //   example 1: gettype(1)\n  //   returns 1: 'integer'\n  //   example 2: gettype(undefined)\n  //   returns 2: 'undefined'\n  //   example 3: gettype({0: 'Kevin van Zonneveld'})\n  //   returns 3: 'object'\n  //   example 4: gettype('foo')\n  //   returns 4: 'string'\n  //   example 5: gettype({0: function () {return false;}})\n  //   returns 5: 'object'\n  //   example 6: gettype({0: 'test', length: 1, splice: function () {}})\n  //   returns 6: 'object'\n  //   example 7: gettype(['test'])\n  //   returns 7: 'array'\n\n  var isFloat = require('../var/is_float')\n\n  var s = typeof mixedVar\n  var name\n  var _getFuncName = function (fn) {\n    var name = (/\\W*function\\s+([\\w$]+)\\s*\\(/).exec(fn)\n    if (!name) {\n      return '(Anonymous)'\n    }\n    return name[1]\n  }\n\n  if (s === 'object') {\n    if (mixedVar !== null) {\n      // From: http://javascript.crockford.com/remedial.html\n      // @todo: Break up this lengthy if statement\n      if (typeof mixedVar.length === 'number' &&\n        !(mixedVar.propertyIsEnumerable('length')) &&\n        typeof mixedVar.splice === 'function') {\n        s = 'array'\n      } else if (mixedVar.constructor && _getFuncName(mixedVar.constructor)) {\n        name = _getFuncName(mixedVar.constructor)\n        if (name === 'Date') {\n          // not in PHP\n          s = 'date'\n        } else if (name === 'RegExp') {\n          // not in PHP\n          s = 'regexp'\n        } else if (name === 'LOCUTUS_Resource') {\n          // Check against our own resource constructor\n          s = 'resource'\n        }\n      }\n    } else {\n      s = 'null'\n    }\n  } else if (s === 'number') {\n    s = isFloat(mixedVar) ? 'double' : 'integer'\n  }\n\n  return s\n}\n"]}