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

Version Path
optimacms-0.1.61 spec/dummy/node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-18.0.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.21.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.20.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.19.1 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.19.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.18.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.17.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.16.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.15.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.14.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.13.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.12.2 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.12.1 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.12.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.11.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.10.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.9.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.8.0 node_modules/es5-ext/array/#/slice/shim.js
govuk_publishing_components-17.7.0 node_modules/es5-ext/array/#/slice/shim.js