Skip to content

An ES5 spec-compliant `TypedArray.prototype.at` shim/polyfill/replacement that works as far down as ES3

License

Notifications You must be signed in to change notification settings

es-shims/TypedArray.prototype.at

Repository files navigation

typedarray.prototype.at Version Badge

github actions coverage License Downloads

npm badge

An ES spec-compliant %TypedArray%.prototype.at 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 %TypedArray%.prototype.at depends on a receiver (the “this” value), the main export takes the typed array to operate on as the first argument.

Example

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

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

assert.equal(at(ta, 0), 1);
assert.equal(at(ta, 1), 2);
assert.equal(at(ta, 2), 3);
assert.equal(at(ta, -1), 3);
assert.equal(at(ta, -2), 2);
assert.equal(at(ta, -3), 1);
var shim = require('typedarray.prototype.at/shim');
var getPolyfill = require('typedarray.prototype.at/polyfill');
var assert = require('assert');
/* when TypedArray#at is not present */
delete Object.getPrototypeOf(Uint8Array.prototype).at;
var shimmed = shim();
assert.equal(shimmed, getPolyfill());
assert.equal(shimmed, Uint8Array.prototype.at);

var ta = new Uint8Array([1, 2, 3]);
assert.equal(ta.at(-1), at(ta, -1));
var shim = require('typedarray.prototype.at/shim');
var assert = require('assert');
/* when TypedArray#at is present */
var shimmed = shim();
assert.equal(shimmed, Uint8Array.prototype.at);

var ta = new Uint8Array([1, 2, 3]);
assert.equal(ta.at(-1), at(ta, -1));

Tests

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

About

An ES5 spec-compliant `TypedArray.prototype.at` shim/polyfill/replacement that works as far down as ES3

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks