htc 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
..
test 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
.editorconfig 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
.eslintrc 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
.nycrc 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
CHANGELOG.md 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
LICENSE 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
README.md 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
auto.js 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
implementation.js 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
index.js 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
package.json 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
polyfill.js 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago
shim.js 7ca38fdcbb 善行少年PC端首次提交(基础版) 11 months ago

README.md

TypedArray.prototype.slice Version Badge

github actions coverage License Downloads

npm badge

An ES spec-compliant TypedArray.prototype.slice shim. Invoke its "shim" method to shim TypedArray.prototype.slice if it is unavailable.

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

Most common usage:

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

var arr = new Uint8Array([1, 2, 3]);

var arr2 = slice(arr);

arr2[0] = 2;
arr2[1] = 3;

assert.deepEqual(arr, new Uint8Array([1, 2, 3]));
assert.deepEqual(arr2, new Uint8Array([2, 3, 3]));
assert.notEqual(arr.buffer, arr2.buffer);

if (!Uint8Array.prototype.slice) {
	slice.shim();
}

var arr3 = arr.slice();
arr3[0] = 2;
arr3[1] = 3;

assert.deepEqual(arr, new Uint8Array([1, 2, 3]));
assert.deepEqual(arr3, new Uint8Array([2, 3, 3]));
assert.notEqual(arr.buffer, arr3.buffer);

Engines where this is needed

- node v0.11.4 - v4: no prototype or own `slice` method
- node < v0.11.3: own `slice` method that fails to clone the underlying buffer

Tests

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