From 5ac1ebdb248e9e0cc6ed68181ab4e85099501be8 Mon Sep 17 00:00:00 2001 From: Vadzim Date: Fri, 21 Mar 2025 13:55:59 +0100 Subject: [PATCH 1/2] test drain() with `undefined` values in the queue --- test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test.js b/test.js index 57ac1f4..1ed25bf 100644 --- a/test.js +++ b/test.js @@ -73,8 +73,9 @@ test('iterable', t => { test('.drain()', t => { const queue = new Queue(); queue.enqueue('🦄'); + queue.enqueue(undefined); queue.enqueue('🌈'); - for (const _ of queue.drain()) {} + t.deepEqual([...queue.drain()], ['🦄', undefined, '🌈']); t.deepEqual([...queue], []); t.is(queue.size, 0); }) From 88bdf7ee9d5d460129d305dce622818c092d4d78 Mon Sep 17 00:00:00 2001 From: Vadzim Date: Fri, 21 Mar 2025 13:59:04 +0100 Subject: [PATCH 2/2] do not ignore `undefined` values while draining --- index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 2fa5f67..fb64559 100644 --- a/index.js +++ b/index.js @@ -77,9 +77,8 @@ export default class Queue { } * drain() { - let current; - while ((current = this.dequeue()) !== undefined) { - yield current; + while (this.#head) { + yield this.dequeue(); } } }