| 108 | } |
| 109 | |
| 110 | function readonlyMap<Key, Value>(map: Map<Key, Value>): ReadonlyMap<Key, Value> { |
| 111 | const result: ReadonlyMap<Key, Value> = Object.freeze({ |
| 112 | get size() { |
| 113 | return map.size |
| 114 | }, |
| 115 | entries: () => map.entries(), |
| 116 | forEach: (callback: (value: Value, key: Key, map: ReadonlyMap<Key, Value>) => void, thisArg?: unknown) => |
| 117 | map.forEach((value, key) => callback.call(thisArg, value, key, result)), |
| 118 | get: (key: Key) => map.get(key), |
| 119 | has: (key: Key) => map.has(key), |
| 120 | keys: () => map.keys(), |
| 121 | values: () => map.values(), |
| 122 | [Symbol.iterator]: () => map[Symbol.iterator](), |
| 123 | }) |
| 124 | return result |
| 125 | } |