Détail du package

array.prototype.slice

es-shims10kMIT1.0.3

ES spec-compliant Array.prototype.slice shim/polyfill/replacement that works as far down as ES3

javascript, ecmascript, polyfill, shim

readme

array.prototype.slice Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

An ES spec-compliant Array.prototype.slice shim/polyfill/replacement that works as far down as ES3.

This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the spec.

Because Array.prototype.slice depends on a receiver (the “this” value), the main export takes the array to operate on as the first argument.

Engines where this is needed

Note: this list is not exhaustive.

  • Safari 10 - 13
  • Chrome 48+ (v8 bug)
  • node 6+

Example

var slice = require('array.prototype.slice');
var assert = require('assert');

var a = [1, 2, 3];
assert.deepEqual(slice(a, 1, 2), [2]);
assert.deepEqual(slice(a, -2), [2, 3]);
var slice = require('array.prototype.slice');
var assert = require('assert');
/* when Array#slice is not present */
delete Array.prototype.slice;
var shimmed = slice.shim();
assert.equal(shimmed, slice.getPolyfill());
assert.equal(shimmed, Array.prototype.slice);
assert.deepEqual([1, 2, 3].slice(1, 2), slice([1, 2, 3], 1, 2));
var slice = require('array.prototype.slice');
var assert = require('assert');
/* when Array#slice is present */
var shimmed = slice.shim();
assert.equal(shimmed, Array.prototype.slice);
assert.deepEqual([1, 2, 3].slice(1, 2), slice([1, 2, 3], 1, 2));

Tests

Simply clone the repo, npm install, and run npm test

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

v1.0.3 - 2024-03-20

Commits

  • [Deps] update call-bind, define-properties, es-abstract, get-intrinsic a5b7974
  • [actions] use reusable workflows fa342a6
  • [Refactor] use es-object-atoms where possible a4ef5e7
  • [Dev Deps] update aud, npmignore, tape 4d60b99
  • [Dev Deps] update tape b20bc39

v1.0.2 - 2023-08-30

Commits

  • [Deps] update define-properties, es-abstract, get-intrinsic 25fed46
  • [Dev Deps] update @es-shims/api, @ljharb/eslint-config, aud, tape e04c453
  • [actions] fix permissions 7772e19

v1.0.1 - 2022-11-03

Commits

  • [Deps] update es-abstract, get-intrinsic 558dc0b
  • [actions] update rebase action to use reusable workflow 4ae6192
  • [Dev Deps] update aud, tape ebbdcef

v1.0.0 - 2022-05-26

Commits