(name, kInternalIterator, keyIndex = 0, valueIndex = 1)
| 5611 | __name(normalizeMethod, "normalizeMethod"); |
| 5612 | var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); |
| 5613 | function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) { |
| 5614 | class FastIterableIterator { |
| 5615 | static { |
| 5616 | __name(this, "FastIterableIterator"); |
| 5617 | } |
| 5618 | /** @type {any} */ |
| 5619 | #target; |
| 5620 | /** @type {'key' | 'value' | 'key+value'} */ |
| 5621 | #kind; |
| 5622 | /** @type {number} */ |
| 5623 | #index; |
| 5624 | /** |
| 5625 | * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object |
| 5626 | * @param {unknown} target |
| 5627 | * @param {'key' | 'value' | 'key+value'} kind |
| 5628 | */ |
| 5629 | constructor(target, kind) { |
| 5630 | this.#target = target; |
| 5631 | this.#kind = kind; |
| 5632 | this.#index = 0; |
| 5633 | } |
| 5634 | next() { |
| 5635 | if (typeof this !== "object" || this === null || !(#target in this)) { |
| 5636 | throw new TypeError( |
| 5637 | `'next' called on an object that does not implement interface ${name} Iterator.` |
| 5638 | ); |
| 5639 | } |
| 5640 | const index = this.#index; |
| 5641 | const values = kInternalIterator(this.#target); |
| 5642 | const len = values.length; |
| 5643 | if (index >= len) { |
| 5644 | return { |
| 5645 | value: void 0, |
| 5646 | done: true |
| 5647 | }; |
| 5648 | } |
| 5649 | const { [keyIndex]: key, [valueIndex]: value } = values[index]; |
| 5650 | this.#index = index + 1; |
| 5651 | let result; |
| 5652 | switch (this.#kind) { |
| 5653 | case "key": |
| 5654 | result = key; |
| 5655 | break; |
| 5656 | case "value": |
| 5657 | result = value; |
| 5658 | break; |
| 5659 | case "key+value": |
| 5660 | result = [key, value]; |
| 5661 | break; |
| 5662 | } |
| 5663 | return { |
| 5664 | value: result, |
| 5665 | done: false |
| 5666 | }; |
| 5667 | } |
| 5668 | } |
| 5669 | delete FastIterableIterator.prototype.constructor; |
| 5670 | Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype); |
no outgoing calls
no test coverage detected
searching dependent graphs…