From c4e96e6cf661e1979a2c5431eef1904ccb194ae5 Mon Sep 17 00:00:00 2001
From: rowan <rowan@kitsu.cafe>
Date: Thu, 1 May 2025 16:27:42 -0500
Subject: [PATCH] fix Iterator.next methods

---
 src/index.ts | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/index.ts b/src/index.ts
index 17996ec..a935c42 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -88,8 +88,8 @@ export class IteratorEnumerator<T> implements IEnumerator<T>, Iterator<T> {
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T> {
-    const done = this.moveNext()
-    return { value: this.current, done } as IteratorResult<T>
+    const next = this.moveNext()
+    return { value: this.current, done: !next } as IteratorResult<T>
   }
 
   return(value?: any): IteratorResult<T, any> {
@@ -141,8 +141,8 @@ export class CachedIteratorEnumerator<T> implements IEnumerator<T>, Iterator<T>
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T> {
-    const done = this.moveNext()
-    return { value: this.current, done } as IteratorResult<T>
+    const next = this.moveNext()
+    return { value: this.current, done: !next } as IteratorResult<T>
   }
 
   return?(value?: any): IteratorResult<T, any> {
@@ -194,8 +194,8 @@ export class IterableEnumerator<T> implements IEnumerator<T>, Iterator<T> {
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T, any> {
-    const done = !this.moveNext()
-    return { value: this.current, done } as IteratorResult<T, any>
+    const next = !this.moveNext()
+    return { value: this.current, done: !next } as IteratorResult<T, any>
   }
 
   return?(value?: any): IteratorResult<T, any> {
@@ -266,8 +266,8 @@ export class ArrayEnumerator<T> implements IEnumerator<T>, Iterator<T>, Iterable
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T, any> {
-    const done = this.moveNext()
-    return { value: this.current, done } as IteratorResult<T>
+    const next = this.moveNext()
+    return { value: this.current, done: !next } as IteratorResult<T>
   }
 
   return?(_value?: any): IteratorResult<T, any> {
@@ -329,9 +329,9 @@ export class Enumerator<T> implements IEnumerator<T>, Iterator<T> {
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T, any> {
-    const done = this.moveNext()
+    const next = this.moveNext()
 
-    return { value: this.current, done } as IteratorResult<T>
+    return { value: this.current, done: !next } as IteratorResult<T>
   }
 
   return?(_value?: any): IteratorResult<T, any> {
@@ -377,9 +377,9 @@ export class HelperEnumerator<T> implements IEnumerator<T>, Iterator<T> {
   }
 
   next(...[_value]: [] | [any]): IteratorResult<T, any> {
-    const done = this.moveNext()
+    const next = this.moveNext()
 
-    return { value: this.current, done } as IteratorResult<T>
+    return { value: this.current, done: !next } as IteratorResult<T>
   }
 
   return?(_value?: any): IteratorResult<T, any> {