The WHATWG Streams spec requires that pipeTo's chunk handling must queue a microtask before calling the write algorithm. This ensures that enqueue() does not synchronously trigger writes. Previously, PipeToReadableStreamReadRequest[kChunk] would synchronously call writableStreamDefaultWriterWrite(), which violated the spec and caused the WPT test "enqueue() must not synchronously call write algorithm" to fail. Fix by wrapping the write operation in queueMicrotask(), which defers it to the next microtask as required by the spec. Refs: https://github.com/whatwg/streams/issues/1243 PR-URL: https://github.com/nodejs/node/pull/61800 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Mattias Buelens <mattias@buelens.com>
55 lines
1.9 KiB
JSON
55 lines
1.9 KiB
JSON
{
|
|
"idlharness-shadowrealm.window.js": {
|
|
"skip": "ShadowRealm support is not enabled"
|
|
},
|
|
"queuing-strategies-size-function-per-global.window.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"readable-streams/cross-realm-crash.window.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"readable-streams/owning-type-message-port.any.js": {
|
|
"fail": {
|
|
"note": "Readable streams with type owning are not yet supported",
|
|
"expected": [
|
|
"Transferred MessageChannel works as expected",
|
|
"Second branch of owning ReadableStream tee should end up into errors with transfer only values"
|
|
]
|
|
}
|
|
},
|
|
"readable-streams/owning-type-video-frame.any.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"readable-streams/owning-type.any.js": {
|
|
"fail": {
|
|
"note": "Readable streams with type owning are not yet supported",
|
|
"expected": [
|
|
"ReadableStream can be constructed with owning type",
|
|
"ReadableStream of type owning should call start with a ReadableStreamDefaultController",
|
|
"ReadableStream should be able to call enqueue with an empty transfer list",
|
|
"ReadableStream should check transfer parameter",
|
|
"ReadableStream of type owning should transfer enqueued chunks"
|
|
]
|
|
}
|
|
},
|
|
"readable-streams/read-task-handling.window.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"transferable/deserialize-error.window.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"transferable/transfer-with-messageport.window.js": {
|
|
"skip": "Browser-specific test"
|
|
},
|
|
"transferable/transform-stream-members.any.js": {
|
|
"fail": {
|
|
"expected": [
|
|
"Transferring [object TransformStream],[object ReadableStream] should fail",
|
|
"Transferring [object TransformStream],[object WritableStream] should fail"
|
|
]
|
|
}
|
|
},
|
|
"transform-streams/invalid-realm.tentative.window.js": {
|
|
"skip": "Browser-specific test"
|
|
}
|
|
}
|