Sha256: 2b8726b764cd2b98372687e06c71b7acf0fcb123f39a4d2b9c163b453c28f731
Contents?: true
Size: 1.04 KB
Versions: 47
Compression:
Stored size: 1.04 KB
Contents
"use strict"; var toInteger = require("../../../number/to-integer") , toPosInt = require("../../../number/to-pos-integer") , isPlainArray = require("../../is-plain-array") , isArray = Array.isArray , slice = Array.prototype.slice , objHasOwnProperty = Object.prototype.hasOwnProperty , max = Math.max; module.exports = function (start, end) { var length, result, i; if (!this || !isArray(this) || isPlainArray(this)) { return slice.apply(this, arguments); } length = toPosInt(this.length); start = toInteger(start); if (start < 0) start = max(length + start, 0); else if (start > length) start = length; if (end === undefined) { end = length; } else { end = toInteger(end); if (end < 0) end = max(length + end, 0); else if (end > length) end = length; } if (start > end) start = end; result = new this.constructor(end - start); i = 0; while (start !== end) { if (objHasOwnProperty.call(this, start)) result[i] = this[start]; ++i; ++start; } return result; };
Version data entries
47 entries across 47 versions & 3 rubygems