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
