(() => { const ReflectApply = Reflect.apply; const FunctionBind = Function.prototype.bind; const FunctionCall = Function.prototype.call; const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; const uncurryThis = (fn) => ReflectApply(FunctionBind, FunctionCall, [fn]); const getter = (prototype, name) => uncurryThis(ObjectGetOwnPropertyDescriptor(prototype, name).get); const stack = ObjectGetOwnPropertyDescriptor(new Error(), "stack"); const ErrorGetStack = stack.get ? uncurryThis(stack.get) : (error) => ObjectGetOwnPropertyDescriptor(error, "stack")?.value; const TypedArrayPrototype = Object.getPrototypeOf(Uint8Array.prototype); return Object.freeze(Object.assign(Object.create(null), { Array, ArrayBuffer, ArrayBufferPrototypeGetResizable: getter( ArrayBuffer.prototype, "resizable", ), ArrayFrom: Array.from, ArrayIsArray: Array.isArray, ArrayPrototypeUnshift: uncurryThis(Array.prototype.unshift), ArrayPrototypeMap: uncurryThis(Array.prototype.map), ArrayPrototypeJoin: uncurryThis(Array.prototype.join), ArrayPrototypePop: uncurryThis(Array.prototype.pop), ArrayPrototypePush: uncurryThis(Array.prototype.push), ArrayPrototypeSlice: uncurryThis(Array.prototype.slice), ArrayPrototypeSort: uncurryThis(Array.prototype.sort), ArrayPrototypeSplice: uncurryThis(Array.prototype.splice), IteratorPrototype: Object.getPrototypeOf( Object.getPrototypeOf([][Symbol.iterator]()), ), Error, FinalizationRegistry, ErrorCaptureStackTrace: Error.captureStackTrace, ErrorGetStack, ErrorPrototype: Error.prototype, DatePrototype: Date.prototype, DatePrototypeGetTime: uncurryThis(Date.prototype.getTime), DatePrototypeToISOString: uncurryThis(Date.prototype.toISOString), MapPrototype: Map.prototype, MapPrototypeEntries: uncurryThis(Map.prototype.entries), MapIteratorPrototypeNext: uncurryThis( Object.getPrototypeOf(new Map().entries()).next, ), SetPrototype: Set.prototype, SetPrototypeValues: uncurryThis(Set.prototype.values), SetIteratorPrototypeNext: uncurryThis( Object.getPrototypeOf(new Set().values()).next, ), RegExp, RegExpPrototype: RegExp.prototype, RegExpPrototypeExec: uncurryThis(RegExp.prototype.exec), RegExpPrototypeGetSource: getter(RegExp.prototype, "source"), RegExpPrototypeGetFlags: getter(RegExp.prototype, "flags"), JSONStringify: JSON.stringify, Map, MapPrototypeGet: uncurryThis(Map.prototype.get), MapPrototypeSet: uncurryThis(Map.prototype.set), MapPrototypeHas: uncurryThis(Map.prototype.has), MapPrototypeDelete: uncurryThis(Map.prototype.delete), MapPrototypeClear: uncurryThis(Map.prototype.clear), MapPrototypeForEach: uncurryThis(Map.prototype.forEach), MathMin: Math.min, NumberParseInt: Number.parseInt, NumberParseFloat: Number.parseFloat, NumberPrototypeToFixed: uncurryThis(Number.prototype.toFixed), NumberIsFinite: Number.isFinite, Object, ObjectPrototype: Object.prototype, ObjectSetPrototypeOf: Object.setPrototypeOf, ObjectCreate: Object.create, ObjectDefineProperty: Object.defineProperty, ObjectFreeze: Object.freeze, ObjectGetOwnPropertyDescriptor: Object.getOwnPropertyDescriptor, ObjectGetPrototypeOf: Object.getPrototypeOf, Promise, RangeError, Proxy, ReflectApply, ReflectConstruct: Reflect.construct, ReflectDefineProperty: Reflect.defineProperty, ReflectDeleteProperty: Reflect.deleteProperty, ReflectGet: Reflect.get, ReflectHas: Reflect.has, ReflectSet: Reflect.set, ReflectOwnKeys: Reflect.ownKeys, Set, SetPrototypeAdd: uncurryThis(Set.prototype.add), SetPrototypeDelete: uncurryThis(Set.prototype.delete), SetPrototypeHas: uncurryThis(Set.prototype.has), String, StringPrototypeCharCodeAt: uncurryThis(String.prototype.charCodeAt), StringPrototypeIncludes: uncurryThis(String.prototype.includes), StringPrototypeIndexOf: uncurryThis(String.prototype.indexOf), StringPrototypeLastIndexOf: uncurryThis(String.prototype.lastIndexOf), StringPrototypeRepeat: uncurryThis(String.prototype.repeat), StringPrototypeReplaceAll: uncurryThis(String.prototype.replaceAll), StringPrototypeSlice: uncurryThis(String.prototype.slice), StringPrototypeToLowerCase: uncurryThis(String.prototype.toLowerCase), StringPrototypeIsWellFormed: uncurryThis(String.prototype.isWellFormed), StringPrototypeToWellFormed: uncurryThis(String.prototype.toWellFormed), SymbolIterator: Symbol.iterator, SymbolToStringTag: Symbol.toStringTag, SymbolFor: Symbol.for, TypeError, WeakMap, WeakMapPrototypeGet: uncurryThis(WeakMap.prototype.get), WeakMapPrototypeSet: uncurryThis(WeakMap.prototype.set), Uint8Array, Uint8ArrayPrototypeSet: uncurryThis(Uint8Array.prototype.set), TypedArrayPrototypeGetLength: getter(TypedArrayPrototype, "length"), TypedArrayPrototypeGetBuffer: getter(TypedArrayPrototype, "buffer"), TypedArrayPrototypeGetByteLength: getter(TypedArrayPrototype, "byteLength"), TypedArrayPrototypeGetByteOffset: getter(TypedArrayPrototype, "byteOffset"), TypedArrayPrototypeGetTag: getter(TypedArrayPrototype, Symbol.toStringTag), uncurryThis, getter, })); })();