summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/array/end.js.map
blob: 5fbe41b1c8ca40ffce05f93528d84cb3697c165e (plain) (blame)
1
{"version":3,"sources":["../../../src/php/array/end.js"],"names":["module","exports","end","arr","$global","window","global","$locutus","php","pointers","indexOf","value","i","length","push","arrpos","Object","prototype","toString","call","ct","val","k"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,GAAT,CAAcC,GAAd,EAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAW,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAxD;AACAF,UAAQG,QAAR,GAAmBH,QAAQG,QAAR,IAAoB,EAAvC;AACA,MAAIA,WAAWH,QAAQG,QAAvB;AACAA,WAASC,GAAT,GAAeD,SAASC,GAAT,IAAgB,EAA/B;AACAD,WAASC,GAAT,CAAaC,QAAb,GAAwBF,SAASC,GAAT,CAAaC,QAAb,IAAyB,EAAjD;AACA,MAAIA,WAAWF,SAASC,GAAT,CAAaC,QAA5B;;AAEA,MAAIC,UAAU,SAAVA,OAAU,CAAUC,KAAV,EAAiB;AAC7B,SAAK,IAAIC,IAAI,CAAR,EAAWC,SAAS,KAAKA,MAA9B,EAAsCD,IAAIC,MAA1C,EAAkDD,GAAlD,EAAuD;AACrD,UAAI,KAAKA,CAAL,MAAYD,KAAhB,EAAuB;AACrB,eAAOC,CAAP;AACD;AACF;AACD,WAAO,CAAC,CAAR;AACD,GAPD;;AASA,MAAI,CAACH,SAASC,OAAd,EAAuB;AACrBD,aAASC,OAAT,GAAmBA,OAAnB;AACD;AACD,MAAID,SAASC,OAAT,CAAiBP,GAAjB,MAA0B,CAAC,CAA/B,EAAkC;AAChCM,aAASK,IAAT,CAAcX,GAAd,EAAmB,CAAnB;AACD;AACD,MAAIY,SAASN,SAASC,OAAT,CAAiBP,GAAjB,CAAb;AACA,MAAIa,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BhB,GAA/B,MAAwC,gBAA5C,EAA8D;AAC5D,QAAIiB,KAAK,CAAT;AACA,QAAIC,GAAJ;AACA,SAAK,IAAIC,CAAT,IAAcnB,GAAd,EAAmB;AACjBiB;AACAC,YAAMlB,IAAImB,CAAJ,CAAN;AACD;AACD,QAAIF,OAAO,CAAX,EAAc;AACZ;AACA,aAAO,KAAP;AACD;AACDX,aAASM,SAAS,CAAlB,IAAuBK,KAAK,CAA5B;AACA,WAAOC,GAAP;AACD;AACD,MAAIlB,IAAIU,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAO,KAAP;AACD;AACDJ,WAASM,SAAS,CAAlB,IAAuBZ,IAAIU,MAAJ,GAAa,CAApC;AACA,SAAOV,IAAIM,SAASM,SAAS,CAAlB,CAAJ,CAAP;AACD,CAxDD","file":"end.js","sourcesContent":["module.exports = function end (arr) {\n  //  discuss at: http://locutus.io/php/end/\n  // original by: Kevin van Zonneveld (http://kvz.io)\n  // bugfixed by: Legaev Andrey\n  //  revised by: J A R\n  //  revised by: Brett Zamir (http://brett-zamir.me)\n  // improved by: Kevin van Zonneveld (http://kvz.io)\n  // improved by: Kevin van Zonneveld (http://kvz.io)\n  //      note 1: Uses global: locutus to store the array pointer\n  //   example 1: end({0: 'Kevin', 1: 'van', 2: 'Zonneveld'})\n  //   returns 1: 'Zonneveld'\n  //   example 2: end(['Kevin', 'van', 'Zonneveld'])\n  //   returns 2: 'Zonneveld'\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  $locutus.php.pointers = $locutus.php.pointers || []\n  var pointers = $locutus.php.pointers\n\n  var indexOf = function (value) {\n    for (var i = 0, length = this.length; i < length; i++) {\n      if (this[i] === value) {\n        return i\n      }\n    }\n    return -1\n  }\n\n  if (!pointers.indexOf) {\n    pointers.indexOf = indexOf\n  }\n  if (pointers.indexOf(arr) === -1) {\n    pointers.push(arr, 0)\n  }\n  var arrpos = pointers.indexOf(arr)\n  if (Object.prototype.toString.call(arr) !== '[object Array]') {\n    var ct = 0\n    var val\n    for (var k in arr) {\n      ct++\n      val = arr[k]\n    }\n    if (ct === 0) {\n      // Empty\n      return false\n    }\n    pointers[arrpos + 1] = ct - 1\n    return val\n  }\n  if (arr.length === 0) {\n    return false\n  }\n  pointers[arrpos + 1] = arr.length - 1\n  return arr[pointers[arrpos + 1]]\n}\n"]}