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(); } } } 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); })