home | refactor
This commit is contained in:
parent
672d71a83a
commit
73fadb981d
468 changed files with 197 additions and 210 deletions
|
|
@ -0,0 +1,26 @@
|
|||
// ==UserScript==
|
||||
// @name Array.at polyfill
|
||||
// @run-at document-start
|
||||
// @match https://*.linkedin.com/*
|
||||
// ==/UserScript==
|
||||
// Based on: https://github.com/tc39/proposal-relative-indexing-method#polyfill
|
||||
|
||||
function at(n) {
|
||||
// ToInteger() abstract op
|
||||
n = Math.trunc(n) || 0;
|
||||
// Allow negative indexing from the end
|
||||
if (n < 0) n += this.length;
|
||||
// OOB access is guaranteed to return undefined
|
||||
if (n < 0 || n >= this.length) return undefined;
|
||||
// Otherwise, this is just normal property access
|
||||
return this[n];
|
||||
}
|
||||
|
||||
const TypedArray = Reflect.getPrototypeOf(Int8Array);
|
||||
for (const C of [Array, String, TypedArray]) {
|
||||
Object.defineProperty(C.prototype, "at",
|
||||
{ value: at,
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
configurable: true });
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue