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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 5, 2025
782198e · Mar 5, 2025

History

5 Commits
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025
Mar 5, 2025

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