Commit c0abfea5a9e for nodejs
commit c0abfea5a9ee4bc257196f6c31838f274a66c16d
Author: Kevin Gibbons <bakkot@gmail.com>
Date: Sun Oct 18 13:49:14 2026 -0700
lib: place `value` before `done` in iterator results
Apply the iterator-result-value-first lint fixer.
Assisted-by: claude:opus-5.5
Signed-off-by: Kevin Gibbons <bakkot@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/66837
Reviewed-By: Jordan Harband <ljharb@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
diff --git a/lib/events.js b/lib/events.js
index 4866073de81..3b6805d8998 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -1043,7 +1043,7 @@ async function once(emitter, name, options = kEmptyObject) {
}
function createIterResult(value, done) {
- return { done, value };
+ return { value, done };
}
function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js
index 47574a5a471..f2640ab7d2a 100644
--- a/lib/internal/fs/promises.js
+++ b/lib/internal/fs/promises.js
@@ -672,7 +672,7 @@ if (getOptionValue('--experimental-stream-iter')) {
__proto__: null,
next() {
if (done) {
- return { done: true, value: undefined };
+ return { value: undefined, done: true };
}
if (!started) {
// Lock lazily, on the first read, so that an iterable that is
@@ -684,7 +684,7 @@ if (getOptionValue('--experimental-stream-iter')) {
if (remaining === 0) {
done = true;
cleanup();
- return { done: true, value: undefined };
+ return { value: undefined, done: true };
}
const toRead = remaining > 0 ?
MathMin(readSize, remaining) : readSize;
@@ -700,20 +700,20 @@ if (getOptionValue('--experimental-stream-iter')) {
if (bytesRead === 0) {
done = true;
cleanup();
- return { done: true, value: undefined };
+ return { value: undefined, done: true };
}
if (pos >= 0) pos += bytesRead;
if (remaining > 0) remaining -= bytesRead;
const chunk = bytesRead < toRead ?
buf.subarray(0, bytesRead) : buf;
- return { done: false, value: [chunk] };
+ return { value: [chunk], done: false };
},
return() {
if (!done) {
done = true;
if (started) cleanup();
}
- return { done: true, value: undefined };
+ return { value: undefined, done: true };
},
};
},
diff --git a/lib/internal/source_map/source_map_cache_map.js b/lib/internal/source_map/source_map_cache_map.js
index 10561acffc4..5c144818ca7 100644
--- a/lib/internal/source_map/source_map_cache_map.js
+++ b/lib/internal/source_map/source_map_cache_map.js
@@ -104,7 +104,7 @@ class SourceMapCacheMap {
const moduleInstance = weakRef.deref();
if (moduleInstance == null) return next();
const value = moduleInstance[source_map_data_private_symbol];
- return { done: false, value: [key, value] };
+ return { value: [key, value], done: false };
};
return {
diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js
index e584757dd9a..9bd7ea63691 100644
--- a/lib/internal/streams/readable.js
+++ b/lib/internal/streams/readable.js
@@ -1656,7 +1656,7 @@ function createAsyncIterator(stream, options) {
function onChunkFulfilled(value) {
inFlight = false;
if (queue !== null) drain();
- return { done: false, value };
+ return { value, done: false };
}
function onChunkRejected(err) {
@@ -1679,7 +1679,7 @@ function createAsyncIterator(stream, options) {
if (typeof then === 'function') {
FunctionPrototypeCall(then, chunk, (value) => {
inFlight = false;
- resolve({ done: false, value });
+ resolve({ value, done: false });
if (queue !== null) drain();
}, (err) => {
inFlight = false;
@@ -1689,7 +1689,7 @@ function createAsyncIterator(stream, options) {
return;
}
inFlight = false;
- resolve({ done: false, value: chunk });
+ resolve({ value: chunk, done: false });
if (queue !== null) drain();
} else if (error) {
inFlight = false;
@@ -1698,7 +1698,7 @@ function createAsyncIterator(stream, options) {
} else if (error === null) {
inFlight = false;
finalize();
- resolve({ done: true, value: undefined });
+ resolve({ value: undefined, done: true });
if (queue !== null) drain();
} else {
// No data buffered yet; wait for 'readable' or end-of-stream and
@@ -1709,7 +1709,7 @@ function createAsyncIterator(stream, options) {
function processNext(resolve, reject) {
if (completed) {
- resolve({ done: true, value: undefined });
+ resolve({ value: undefined, done: true });
return;
}
if (!started) start();
@@ -1726,7 +1726,7 @@ function createAsyncIterator(stream, options) {
completed = true;
}
}
- resolve({ done: true, value });
+ resolve({ value, done: true });
}
function processThrow(err, reject) {
@@ -1755,7 +1755,7 @@ function createAsyncIterator(stream, options) {
return FunctionPrototypeCall(
then, chunk, onChunkFulfilled, onChunkRejected);
}
- return PromiseResolve({ done: false, value: chunk });
+ return PromiseResolve({ value: chunk, done: false });
}
if (error) {
finalize();
@@ -1763,7 +1763,7 @@ function createAsyncIterator(stream, options) {
}
if (error === null) {
finalize();
- return PromiseResolve({ done: true, value: undefined });
+ return PromiseResolve({ value: undefined, done: true });
}
// No data buffered yet; wait for 'readable' or end-of-stream.
inFlight = true;
@@ -1776,7 +1776,7 @@ function createAsyncIterator(stream, options) {
queue ??= new FixedQueue();
queue.push({ __proto__: null, type: 'next', value: undefined, resolve, reject });
} else {
- resolve({ done: true, value: undefined });
+ resolve({ value: undefined, done: true });
}
});
},
diff --git a/lib/internal/url.js b/lib/internal/url.js
index 8c04ac70c07..456afd2242d 100644
--- a/lib/internal/url.js
+++ b/lib/internal/url.js
@@ -278,8 +278,8 @@ class URLSearchParamsIterator {
const len = values.length;
if (index >= len) {
return {
- done: true,
value: undefined,
+ done: true,
};
}
@@ -297,8 +297,8 @@ class URLSearchParamsIterator {
}
return {
- done: false,
value: result,
+ done: false,
};
}
diff --git a/lib/internal/vfs/watcher.js b/lib/internal/vfs/watcher.js
index c6bc83a77cd..799b537ab95 100644
--- a/lib/internal/vfs/watcher.js
+++ b/lib/internal/vfs/watcher.js
@@ -602,7 +602,7 @@ class VFSWatchAsyncIterable {
const event = { eventType, filename };
if (this.#pendingResolvers.length > 0) {
const { resolve } = this.#pendingResolvers.shift();
- resolve({ done: false, value: event });
+ resolve({ value: event, done: false });
} else if (this.#pendingEvents.length < kMaxPendingEvents) {
ArrayPrototypePush(this.#pendingEvents, event);
}
@@ -614,7 +614,7 @@ class VFSWatchAsyncIterable {
// Resolve any pending iterators
while (this.#pendingResolvers.length > 0) {
const { resolve } = this.#pendingResolvers.shift();
- resolve({ done: true, value: undefined });
+ resolve({ value: undefined, done: true });
}
});
@@ -664,12 +664,12 @@ class VFSWatchAsyncIterable {
}
if (this.#closed) {
- return PromiseResolve({ done: true, value: undefined });
+ return PromiseResolve({ value: undefined, done: true });
}
if (this.#pendingEvents.length > 0) {
const event = this.#pendingEvents.shift();
- return PromiseResolve({ done: false, value: event });
+ return PromiseResolve({ value: event, done: false });
}
return new Promise((resolve, reject) => {
@@ -683,7 +683,7 @@ class VFSWatchAsyncIterable {
*/
return() {
this.#watcher.close();
- return PromiseResolve({ done: true, value: undefined });
+ return PromiseResolve({ value: undefined, done: true });
}
/**
@@ -693,7 +693,7 @@ class VFSWatchAsyncIterable {
*/
throw(error) {
this.#watcher.close();
- return PromiseResolve({ done: true, value: undefined });
+ return PromiseResolve({ value: undefined, done: true });
}
}
diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js
index 1ed0a95c524..9ff4670e93b 100644
--- a/lib/internal/webstreams/readablestream.js
+++ b/lib/internal/webstreams/readablestream.js
@@ -712,14 +712,14 @@ class ReadableStreamAsyncIteratorReadRequest {
[kChunk](chunk) {
this.current = undefined;
- this.promise.resolve({ done: false, value: chunk });
+ this.promise.resolve({ value: chunk, done: false });
}
[kClose]() {
this.current = undefined;
this.done = true;
readableStreamReaderGenericRelease(this.reader);
- this.promise.resolve({ done: true, value: undefined });
+ this.promise.resolve({ value: undefined, done: true });
}
[kError](error) {
@@ -735,7 +735,7 @@ class ReadableStreamAsyncIteratorReadRequest {
// promise allocations.
function readableStreamAsyncIteratorNextSteps(state) {
if (state.done)
- return PromiseResolve({ done: true, value: undefined });
+ return PromiseResolve({ value: undefined, done: true });
const reader = state.reader;
if (reader[kState].stream === undefined) {
@@ -753,7 +753,7 @@ function readableStreamAsyncIteratorNextSteps(state) {
// Not an async function either: the cancel path settles one microtask
// after the cancel promise, exactly as `await` would.
function readableStreamAsyncIteratorReturnSteps(state, value) {
- const iterResult = { done: true, value };
+ const iterResult = { value, done: true };
if (state.done)
return PromiseResolve(iterResult);
state.done = true;
@@ -841,16 +841,16 @@ class ReadableStreamAsyncIterator {
readableStreamDefaultControllerPull(controller);
}
- return PromiseResolve({ done: false, value: chunk });
+ return PromiseResolve({ value: chunk, done: false });
}
} else if (controller[kState].queueTotalSize > 0) {
// Byte controller with buffered data: same shape as above via
// the queue-filled arm of the byte controller's pull steps.
stream[kState].disturbed = true;
return PromiseResolve({
- done: false,
-
value: readableByteStreamControllerDequeueChunk(controller),
+
+ done: false,
});
}
}
@@ -891,11 +891,11 @@ class DefaultReadRequest {
}
[kChunk](value) {
- this[kState].resolve({ done: false, value });
+ this[kState].resolve({ value, done: false });
}
[kClose]() {
- this[kState].resolve({ done: true, value: undefined });
+ this[kState].resolve({ value: undefined, done: true });
}
[kError](error) {
@@ -936,11 +936,11 @@ class ReadIntoRequest {
}
[kChunk](value) {
- this[kState].resolve({ done: false, value });
+ this[kState].resolve({ value, done: false });
}
[kClose](value) {
- this[kState].resolve({ done: true, value });
+ this[kState].resolve({ value, done: true });
}
[kError](error) {
@@ -1009,7 +1009,7 @@ class ReadableStreamDefaultReader {
readableStreamDefaultControllerPull(controller);
}
- return PromiseResolve({ done: false, value: chunk });
+ return PromiseResolve({ value: chunk, done: false });
}
} else if (controller[kState].queueTotalSize > 0) {
// Byte controller with buffered data: mirror the queue-filled arm
@@ -1017,9 +1017,9 @@ class ReadableStreamDefaultReader {
// the read request.
stream[kState].disturbed = true;
return PromiseResolve({
- done: false,
-
value: readableByteStreamControllerDequeueChunk(controller),
+
+ done: false,
});
}
}