Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x | import { ObjectLookupOwnGetter } from './Object'; import { ReflectDefineProperty, ReflectSetPrototypeOf } from './Reflect'; import { SymbolIterator, SymbolToStringTag } from './Symbol'; export const MapCtor = Map; const { prototype: MapProto } = MapCtor; const { clear: MapProtoClear, delete: MapProtoDelete, forEach: MapProtoForEach, get: MapProtoGet, has: MapProtoHas, keys: MapProtoKeys, values: MapProtoValues, [SymbolIterator]: MapProtoSymbolIterator, [SymbolToStringTag]: MapProtoSymbolToStringTag, } = MapProto as any; export const { entries: MapProtoEntries, set: MapProtoSet } = MapProto; export const MapProtoSizeGetter = ObjectLookupOwnGetter(MapProto, 'size')!; export function toSafeMap<T extends Map<any, any>>(map: T): T { ReflectSetPrototypeOf(map, null); map.clear = MapProtoClear; map.delete = MapProtoDelete; map.entries = MapProtoEntries; map.forEach = MapProtoForEach; map.get = MapProtoGet; map.has = MapProtoHas; map.keys = MapProtoKeys; map.set = MapProtoSet as any; ReflectDefineProperty(map, 'size', { __proto__: null, configurable: true, enumerable: true, get: MapProtoSizeGetter, set: undefined, } as PropertyDescriptor); map.values = MapProtoValues; (map as any)[SymbolIterator] = MapProtoSymbolIterator; (map as any)[SymbolToStringTag] = MapProtoSymbolToStringTag; ReflectSetPrototypeOf(map, MapProto); return map; } |