NixOS-Configs/home/gui/files/local-qutebrowser/greasemonkey/linkedin.user.js
2024-01-06 14:02:54 -06:00

26 lines
744 B
JavaScript

// ==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 });
}