- From: wpt-stability-bot <web-platform-tests-notifications@w3.org>
- Date: Wed, 18 Jan 2017 21:41:25 GMT
- To: public-web-platform-tests-notifications@w3.org
# Chrome (unstable channel) # Testing revision 904d6483e527b83f63ed4a6a591d74690878f6c7 Starting 10 test iterations ## Unstable results ## | Test | Subtest | Results | |---------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | `/streams/writable-streams/close.https.html` | `releaseLock() should not change the result of async close()` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `when sink calls error asynchronously while closing, the stream should become errored` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `the promise returned by async abort during close should resolve` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `releaseLock() should not change the result of sync close()` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `when close is called on a WritableStream in writable state, ready should return a fulfilled promise` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `returning a thenable from close() should work` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `when sink calls error synchronously while closing, the stream should become errored` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `close() should set state to CLOSED even if writer has detached` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `when close is called on a WritableStream in waiting state, ready promise should be fulfilled` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `fulfillment value of ws.close() call must be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `/streams/writable-streams/close.https.html` | `when close is called on a WritableStream in waiting state, ready should be fulfilled immediately even if close takes a long time` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = a (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: shutdown must not occur until the final write completes` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = true (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-forward.https.html` | `Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise` | **FAIL: 80/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = undefined (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = 1 (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = true, preventAbort = true, preventClose = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = null (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = [object Object] (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = a (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = Symbol() (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = 0 (falsy); fulfilled cancel promise` | **FAIL: 80/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = NaN (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = true (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = true, preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = false (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-backward.https.html` | `Closing must be propagated backward: starts closed; preventCancel = (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `fulfillment value of ws.write() call should be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `WritableStream should complete asynchronous writes before close resolves` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `returning a thenable from write() should work` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `WritableStream should complete synchronous writes before close resolves` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `when sink's write throws an error, the stream should become errored and the promise should reject` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `WritableStream should transition to waiting until write is acknowledged` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `WritableStreamDefaultWriter should work when manually constructed` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `a large queue of writes should be processed completely` | **FAIL: 40/10** | | `/streams/writable-streams/write.https.html` | `when write returns a rejected promise, queued writes and close should be cleared` | **FAIL: 40/10** | | `/streams/writable-streams/count-queuing-strategy.https.html` | `Correctly governs the value of a WritableStream's state property (HWM = 0)` | **FAIL: 40/10** | | `/streams/writable-streams/count-queuing-strategy.https.html` | `Can construct a writable stream with a valid CountQueuingStrategy` | **FAIL: 40/10** | | `/streams/writable-streams/count-queuing-strategy.https.html` | `Correctly governs the value of a WritableStream's state property (HWM = 4)` | **FAIL: 40/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Multiple read(view), close() and respond()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throwing in pull function must error the stream` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Automatic pull() after start()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), then respond() and close() in pull()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Test that closing a stream does not release a reader automatically` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue() with Uint16Array, getReader(), then read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then read(view)` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Test that erroring a stream does not release a reader automatically` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Respond to pull() by enqueue()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read() twice, then enqueue() twice` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes"` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: releaseLock() on ReadableStreamReader with pending read() must throw` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStreamBYOBReader constructor requires a ReadableStream argument` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Mix of auto allocate and BYOB` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), then respond() with too big value` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: autoAllocateChunkSize` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then cancel()` | **FAIL: 60/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Construct and expect start and pull being called` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), then respond()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), then error()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view), but pull() function is not callable` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Automatic pull() after start() and read(view)` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStreamBYOBReader can be constructed directly` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: cancel() with partially filled pending pull() request` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source can be constructed with no errors` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Test that closing a stream does not release a BYOB reader automatically` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(), then error()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(), but pull() function is not callable` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `getReader({mode: "byob"}) throws on non-bytes streams` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Automatic pull() after start() and read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throw if close()-ed more than once` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: getReader(), read(view), then cancel()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: getReader() with mode set to byob, then releaseLock()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: getReader(), enqueue(), close(), then read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: getReader(), then releaseLock()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStreamBYOBReader constructor requires an unlocked ReadableStream` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), close(), getReader(), then read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read() on an errored stream` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Push source that doesn't understand pull signal` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Throw on enqueue() after close()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) with zero-length view must fail` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) with passing an empty object as view must fail` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Multiple read(view), big enqueue()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Construct with highWaterMark of 0` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Respond to pull() by enqueue() asynchronously` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Multiple read(view) and multiple enqueue()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: Test that erroring a stream does not release a BYOB reader automatically` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) with passing undefined as view must fail` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: read(view) on an errored stream` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: enqueue(), read(view) partially, then read()` | **FAIL: 30/10** | | `/streams/readable-byte-stream/readable-byte-stream.html` | `ReadableStream with byte source: No automatic pull call if start doesn't finish` | **FAIL: 30/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `write: returning a promise that becomes rejected after the writer write() should cause writer write() and ready to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `abort: non-function abort method with .apply` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `write: throwing method should cause write() and closed to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `close: returning a rejected promise should cause writer close() and ready to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `close: throwing method should cause writer close() and ready to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `write: returning a rejected promise (second write) should cause writer write() and ready to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `abort: throwing getter should cause abort() and closed to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `close: throwing getter should cause writer close() to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `write: throwing getter should cause write() and closed to reject` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `start: errors in start cause WritableStream constructor to throw` | **FAIL: 40/10** | | `/streams/writable-streams/bad-underlying-sinks.https.html` | `abort: throwing method should cause abort() and closed to reject` | **FAIL: 40/10** | | `/streams/piping/flow-control.https.html` | `Piping to a WritableStream that does not consume the writes fast enough exerts backpressure on the ReadableStream` | **FAIL: 40/10** | | `/streams/piping/flow-control.https.html` | `Piping from a non-empty ReadableStream into a WritableStream that does not desire chunks, but then does` | **FAIL: 40/10** | | `/streams/piping/flow-control.https.html` | `Piping from an empty ReadableStream into a WritableStream that does not desire chunks, but then the readable stream becomes non-empty and the writable stream starts desiring chunks` | **FAIL: 40/10** | | `/streams/piping/flow-control.https.html` | `Piping from a non-empty ReadableStream into a WritableStream that does not desire chunks` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `underlying abort() should not be called until underlying write() completes` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `.closed should not resolve before fulfilled write()` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `WritableStream if sink's abort throws, the promise returned by ws.abort() rejects` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `WritableStream should NOT call underlying sink's close if no abort is supplied (historical)` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `WritableStream if sink's abort throws, for an abort performed during a write, the promise returned by ws.abort() rejects` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `close() should use error from underlying write() on abort` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `underlying abort() should not be called if underlying close() has started` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream passes through the given reason` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `underlying abort() should be called while closing if underlying close() has not started yet` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream should cause the writer's fulfilled ready promise to reset to a rejected one` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream puts it in an errored state, with a TypeError as the stored error` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `writer.ready should reject on controller error without waiting for underlying write` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream causes any outstanding write() promises to be rejected with a TypeError` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `if underlying close() has started and then rejects, the abort() and close() promises should reject with the underlying close rejection reason` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream prevents further writes after any that are in progress` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `writes should be satisfied in order when aborting` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `.closed should not resolve before rejected write(); write() error should overwrite abort() error` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream immediately prevents future writes` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream should cause the writer's unsettled ready promise to reject` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Fulfillment value of ws.abort() call must be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `writes should be satisfied in order after rejected write when aborting` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `releaseLock() while aborting should reject the original closed promise` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `releaseLock() during delayed async abort() should create a new rejected closed promise` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `returning a thenable from abort() should work` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `abort() on a released writer rejects` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Closing a WritableStream and aborting it while it closes causes the stream to error` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Aborting a WritableStream after it is closed is a no-op` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `writer close() promise should resolve before abort() promise` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `WritableStream if sink's abort throws, the promise returned by writer.abort() rejects` | **FAIL: 40/10** | | `/streams/writable-streams/aborting.https.html` | `Closing but then immediately aborting a WritableStream causes the stream to error` | **FAIL: 40/10** | | `/streams/writable-streams/start.https.html` | `underlying sink's write or close should not be called if start throws` | **FAIL: 40/10** | | `/streams/writable-streams/start.https.html` | `underlying sink's write or close should not be invoked if the promise returned by start is rejected` | **FAIL: 40/10** | | `/streams/writable-streams/start.https.html` | `returning a thenable from start() should work` | **FAIL: 40/10** | | `/streams/writable-streams/start.https.html` | `underlying sink's write should not be called until start finishes` | **FAIL: 40/10** | | `/streams/writable-streams/start.https.html` | `underlying sink's close should not be called until start finishes` | **FAIL: 40/10** | | `/streams/writable-streams/byte-length-queuing-strategy.https.html` | `Closing a writable stream with in-flight writes below the high water mark delays the close call properly` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `controller argument should be passed to write method` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStream should be constructible with no arguments` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStream instances should have standard methods and properties` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStreamDefaultWriter constructor should throw when stream argument is locked` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `controller argument should be passed to start method` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStreamDefaultWriter should throw unless passed a WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStream should be writable and ready should fulfill immediately if the strategy does not apply backpressure` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStreamDefaultController constructor should throw when passed an initialised WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `WritableStreamDefaultController constructor should throw unless passed a WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `highWaterMark should be reflected to desiredSize` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `controller argument should be passed to close method` | **FAIL: 40/10** | | `/streams/writable-streams/constructor.https.html` | `private constructors should not be exported` | **PASS: 40/10** | | `/streams/piping/general.https.html` | `pipeTo must fail if the ReadableStream is locked, and not lock the WritableStream` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `Piping from a ReadableStream for which a chunk becomes asynchronously readable after the pipeTo` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `Piping must lock both the ReadableStream and WritableStream` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `pipeTo must check the brand of its ReadableStream this value` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `pipeTo must fail if the WritableStream is locked, and not lock the ReadableStream` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `Piping finishing must unlock both the ReadableStream and WritableStream` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `pipeTo must check the brand of its WritableStream argument` | **FAIL: 40/10** | | `/streams/piping/general.https.html` | `Piping from a ReadableStream from which lots of chunks are synchronously readable` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `closed and ready on a released writer` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `ws.getWriter() on an errored WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `ws.getWriter() on an aborted WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `WritableStream's strategy.size should not be called as a method` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `ws.getWriter() on a closing WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `methods should not not have .apply() or .call() called` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `WritableStream should call underlying sink methods as methods` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `ws.getWriter() on a closed WritableStream` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `desiredSize on a writer for a closed stream` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `desiredSize on a released writer` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `redundant releaseLock() is no-op` | **FAIL: 40/10** | | `/streams/writable-streams/general.https.html` | `desiredSize initial value` | **FAIL: 40/10** | | `/streams/piping/transform-streams.https.html` | `Piping through an identity transform stream should close the destination when the source closes` | **FAIL: 30/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed after one chunk; preventClose = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = 1 (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; preventClose = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = true (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = a (truthy)` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: shutdown must not occur until the final write completes` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise` | **FAIL: 80/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/close-propagation-forward.https.html` | `Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = true, preventAbort = true, preventClose = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = 0 (falsy); fulfilled cancel promise` | **FAIL: 80/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = false; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = 1 (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = false; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = a (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = undefined (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = null (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = false; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = false (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: starts errored; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = NaN (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping due to last write; source is closed; preventCancel omitted (but cancel is never called)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write, preventCancel = true; preventAbort = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping due to last write; source is closed; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = false; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = Symbol() (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored after piping; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel = true` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = [object Object] (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = true (truthy)` | **FAIL: 40/10** | | `/streams/piping/error-propagation-backward.https.html` | `Errors must be propagated backward: erroring via the controller errors once pending write completes` | **FAIL: 40/10** | | `/streams/piping/pipe-through.https.html` | `Piping through a duck-typed pass-through transform stream should work` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `reject any non-function value for strategy.size` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `Writable stream: invalid strategy.size return value` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `Writable stream: invalid strategy.highWaterMark` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `Writable stream: throwing strategy.highWaterMark getter` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `Writable stream: throwing strategy.size method` | **FAIL: 40/10** | | `/streams/writable-streams/bad-strategies.https.html` | `Writable stream: throwing strategy.size getter` | **FAIL: 40/10** | | `/streams/piping/multiple-propagation.https.html` | `Piping from an errored readable stream to a closed writable stream` | **FAIL: 40/10** | | `/streams/piping/multiple-propagation.https.html` | `Piping from a closed readable stream to a closed writable stream` | **FAIL: 40/10** | | `/streams/piping/multiple-propagation.https.html` | `Piping from a closed readable stream to an errored writable stream` | **FAIL: 40/10** | | `/streams/piping/multiple-propagation.https.html` | `Piping from an errored readable stream to an errored writable stream` | **FAIL: 40/10** | | `/streams/piping/multiple-propagation.https.html` | `Piping from an errored readable stream to an errored writable stream; preventAbort = true` | **FAIL: 40/10** | ## All results ## <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/close.https.html">/streams/writable-streams/close.https.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `releaseLock() should not change the result of async close()` | **FAIL: 40/10** | | `when sink calls error asynchronously while closing, the stream should become errored` | **FAIL: 40/10** | | `the promise returned by async abort during close should resolve` | **FAIL: 40/10** | | `releaseLock() should not change the result of sync close()` | **FAIL: 40/10** | | `when close is called on a WritableStream in writable state, ready should return a fulfilled promise` | **FAIL: 40/10** | | `Untitled` | PASS | | `returning a thenable from close() should work` | **FAIL: 40/10** | | `when sink calls error synchronously while closing, the stream should become errored` | **FAIL: 40/10** | | `close() should set state to CLOSED even if writer has detached` | **FAIL: 40/10** | | `when close is called on a WritableStream in waiting state, ready promise should be fulfilled` | **FAIL: 40/10** | | `fulfillment value of ws.close() call must be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `when close is called on a WritableStream in waiting state, ready should be fulfilled immediately even if close takes a long time` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/brand-checks.https.html">/streams/writable-streams/brand-checks.https.html</a></summary> | Subtest | Results | |------------|---------| | | ERROR | | `Untitled` | FAIL | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/error-propagation-forward.https.html">/streams/piping/error-propagation-forward.https.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored while empty; preventAbort = true` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = a (truthy)` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = true` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: shutdown must not occur until the final write completes` | **FAIL: 40/10** | | `Untitled` | PASS | | `Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)` | **FAIL: 40/10** | | `Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = true (truthy)` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise` | **FAIL: 40/10** | | `Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise` | **FAIL: 80/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/close-propagation-backward.https.html">/streams/piping/close-propagation-backward.https.html</a></summary> | Subtest | Results | |----------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Closing must be propagated backward: starts closed; preventCancel = undefined (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = 1 (truthy)` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = true, preventAbort = true, preventClose = true` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = null (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = [object Object] (truthy)` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = a (truthy)` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = Symbol() (truthy)` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = 0 (falsy); fulfilled cancel promise` | **FAIL: 80/10** | | `Closing must be propagated backward: starts closed; preventCancel = NaN (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = true (truthy)` | **FAIL: 40/10** | | `Untitled` | PASS | | `Closing must be propagated backward: starts closed; preventCancel = true, preventAbort = true` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = false (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Closing must be propagated backward: starts closed; preventCancel = (falsy); fulfilled cancel promise` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/write.https.html">/streams/writable-streams/write.https.html</a></summary> | Subtest | Results | |----------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `fulfillment value of ws.write() call should be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `WritableStream should complete asynchronous writes before close resolves` | **FAIL: 40/10** | | `returning a thenable from write() should work` | **FAIL: 40/10** | | `WritableStream should complete synchronous writes before close resolves` | **FAIL: 40/10** | | `Untitled` | PASS | | `when sink's write throws an error, the stream should become errored and the promise should reject` | **FAIL: 40/10** | | `WritableStream should transition to waiting until write is acknowledged` | **FAIL: 40/10** | | `WritableStreamDefaultWriter should work when manually constructed` | **FAIL: 40/10** | | `a large queue of writes should be processed completely` | **FAIL: 40/10** | | `when write returns a rejected promise, queued writes and close should be cleared` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/count-queuing-strategy.https.html">/streams/writable-streams/count-queuing-strategy.https.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------|-----------------| | | ERROR | | `Correctly governs the value of a WritableStream's state property (HWM = 0)` | **FAIL: 40/10** | | `Can construct a writable stream with a valid CountQueuingStrategy` | **FAIL: 40/10** | | `Correctly governs the value of a WritableStream's state property (HWM = 4)` | **FAIL: 40/10** | | `Untitled` | PASS | </details> <details> <summary><a href="http://w3c-test.org/submissions/4559/streams/readable-byte-stream/readable-byte-stream.html">/streams/readable-byte-stream/readable-byte-stream.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------------------------------------------------------|-----------------| | | OK | | `ReadableStream with byte source: Multiple read(view), close() and respond()` | **FAIL: 30/10** | | `ReadableStream with byte source: Throwing in pull function must error the stream` | **FAIL: 30/10** | | `ReadableStream with byte source: Automatic pull() after start()` | **FAIL: 30/10** | | `ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view)` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), then respond() and close() in pull()` | **FAIL: 30/10** | | `ReadableStream with byte source: Test that closing a stream does not release a reader automatically` | **FAIL: 30/10** | | `ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue() with Uint16Array, getReader(), then read()` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then read(view)` | **FAIL: 30/10** | | `ReadableStream with byte source: Test that erroring a stream does not release a reader automatically` | **FAIL: 30/10** | | `ReadableStream with byte source: Respond to pull() by enqueue()` | **FAIL: 30/10** | | `ReadableStream with byte source: read() twice, then enqueue() twice` | **FAIL: 30/10** | | `ReadableStreamBYOBReader constructor requires a ReadableStream with type "bytes"` | **FAIL: 30/10** | | `ReadableStream with byte source: releaseLock() on ReadableStreamReader with pending read() must throw` | **FAIL: 30/10** | | `ReadableStreamBYOBReader constructor requires a ReadableStream argument` | **FAIL: 30/10** | | `ReadableStream with byte source: Mix of auto allocate and BYOB` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), then respond() with too big value` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls` | **FAIL: 30/10** | | `ReadableStream with byte source: autoAllocateChunkSize` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then cancel()` | **FAIL: 60/10** | | `ReadableStream with byte source: Construct and expect start and pull being called` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), then respond()` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), then error()` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view), but pull() function is not callable` | **FAIL: 30/10** | | `ReadableStream with byte source: Automatic pull() after start() and read(view)` | **FAIL: 30/10** | | `ReadableStreamBYOBReader can be constructed directly` | **FAIL: 30/10** | | `ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it` | **FAIL: 30/10** | | `ReadableStream with byte source: cancel() with partially filled pending pull() request` | **FAIL: 30/10** | | `ReadableStream with byte source can be constructed with no errors` | **FAIL: 30/10** | | `ReadableStream with byte source: Test that closing a stream does not release a BYOB reader automatically` | **FAIL: 30/10** | | `ReadableStream with byte source: read(), then error()` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then read()` | **FAIL: 30/10** | | `ReadableStream with byte source: read(), but pull() function is not callable` | **FAIL: 30/10** | | `getReader({mode: "byob"}) throws on non-bytes streams` | **FAIL: 30/10** | | `ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array` | **FAIL: 30/10** | | `ReadableStream with byte source: Automatic pull() after start() and read()` | **FAIL: 30/10** | | `ReadableStream with byte source: Throw if close()-ed more than once` | **FAIL: 30/10** | | `Untitled` | FAIL | | `ReadableStream with byte source: getReader(), read(view), then cancel()` | **FAIL: 30/10** | | `ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it` | **FAIL: 30/10** | | `ReadableStream with byte source: getReader() with mode set to byob, then releaseLock()` | **FAIL: 30/10** | | `ReadableStream with byte source: getReader(), enqueue(), close(), then read()` | **FAIL: 30/10** | | `ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream` | **FAIL: 30/10** | | `ReadableStream with byte source: getReader(), then releaseLock()` | **FAIL: 30/10** | | `ReadableStreamBYOBReader constructor requires an unlocked ReadableStream` | **FAIL: 30/10** | | `ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), close(), getReader(), then read()` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view` | **FAIL: 30/10** | | `ReadableStream with byte source: read() on an errored stream` | **FAIL: 30/10** | | `ReadableStream with byte source: Push source that doesn't understand pull signal` | **FAIL: 30/10** | | `ReadableStream with byte source: Throw on enqueue() after close()` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) with zero-length view must fail` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) with passing an empty object as view must fail` | **FAIL: 30/10** | | `ReadableStream with byte source: Multiple read(view), big enqueue()` | **FAIL: 30/10** | | `ReadableStream with byte source: Construct with highWaterMark of 0` | **FAIL: 30/10** | | `ReadableStream with byte source: Respond to pull() by enqueue() asynchronously` | **FAIL: 30/10** | | `ReadableStream with byte source: Multiple read(view) and multiple enqueue()` | **FAIL: 30/10** | | `ReadableStream with byte source: Test that erroring a stream does not release a BYOB reader automatically` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) with passing undefined as view must fail` | **FAIL: 30/10** | | `ReadableStream with byte source: read(view) on an errored stream` | **FAIL: 30/10** | | `ReadableStream with byte source: enqueue(), read(view) partially, then read()` | **FAIL: 30/10** | | `ReadableStream with byte source: No automatic pull call if start doesn't finish` | **FAIL: 30/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/bad-underlying-sinks.https.html">/streams/writable-streams/bad-underlying-sinks.https.html</a></summary> | Subtest | Results | |-----------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `write: returning a promise that becomes rejected after the writer write() should cause writer write() and ready to reject` | **FAIL: 40/10** | | `abort: non-function abort method with .apply` | **FAIL: 40/10** | | `write: throwing method should cause write() and closed to reject` | **FAIL: 40/10** | | `close: returning a rejected promise should cause writer close() and ready to reject` | **FAIL: 40/10** | | `Untitled` | PASS | | `close: throwing method should cause writer close() and ready to reject` | **FAIL: 40/10** | | `write: returning a rejected promise (second write) should cause writer write() and ready to reject` | **FAIL: 40/10** | | `abort: throwing getter should cause abort() and closed to reject` | **FAIL: 40/10** | | `close: throwing getter should cause writer close() to reject` | **FAIL: 40/10** | | `write: throwing getter should cause write() and closed to reject` | **FAIL: 40/10** | | `start: errors in start cause WritableStream constructor to throw` | **FAIL: 40/10** | | `abort: throwing method should cause abort() and closed to reject` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/flow-control.https.html">/streams/piping/flow-control.https.html</a></summary> | Subtest | Results | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Piping to a WritableStream that does not consume the writes fast enough exerts backpressure on the ReadableStream` | **FAIL: 40/10** | | `Piping from a non-empty ReadableStream into a WritableStream that does not desire chunks, but then does` | **FAIL: 40/10** | | `Untitled` | PASS | | `Piping from an empty ReadableStream into a WritableStream that does not desire chunks, but then the readable stream becomes non-empty and the writable stream starts desiring chunks` | **FAIL: 40/10** | | `Piping from a non-empty ReadableStream into a WritableStream that does not desire chunks` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/aborting.https.html">/streams/writable-streams/aborting.https.html</a></summary> | Subtest | Results | |-------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `underlying abort() should not be called until underlying write() completes` | **FAIL: 40/10** | | `.closed should not resolve before fulfilled write()` | **FAIL: 40/10** | | `WritableStream if sink's abort throws, the promise returned by ws.abort() rejects` | **FAIL: 40/10** | | `WritableStream should NOT call underlying sink's close if no abort is supplied (historical)` | **FAIL: 40/10** | | `WritableStream if sink's abort throws, for an abort performed during a write, the promise returned by ws.abort() rejects` | **FAIL: 40/10** | | `close() should use error from underlying write() on abort` | **FAIL: 40/10** | | `underlying abort() should not be called if underlying close() has started` | **FAIL: 40/10** | | `Aborting a WritableStream passes through the given reason` | **FAIL: 40/10** | | `underlying abort() should be called while closing if underlying close() has not started yet` | **FAIL: 40/10** | | `Aborting a WritableStream should cause the writer's fulfilled ready promise to reset to a rejected one` | **FAIL: 40/10** | | `Aborting a WritableStream puts it in an errored state, with a TypeError as the stored error` | **FAIL: 40/10** | | `writer.ready should reject on controller error without waiting for underlying write` | **FAIL: 40/10** | | `Aborting a WritableStream causes any outstanding write() promises to be rejected with a TypeError` | **FAIL: 40/10** | | `if underlying close() has started and then rejects, the abort() and close() promises should reject with the underlying close rejection reason` | **FAIL: 40/10** | | `Aborting a WritableStream prevents further writes after any that are in progress` | **FAIL: 40/10** | | `writes should be satisfied in order when aborting` | **FAIL: 40/10** | | `.closed should not resolve before rejected write(); write() error should overwrite abort() error` | **FAIL: 40/10** | | `Aborting a WritableStream immediately prevents future writes` | **FAIL: 40/10** | | `Aborting a WritableStream should cause the writer's unsettled ready promise to reject` | **FAIL: 40/10** | | `Fulfillment value of ws.abort() call must be undefined even if the underlying sink returns a non-undefined value` | **FAIL: 40/10** | | `writes should be satisfied in order after rejected write when aborting` | **FAIL: 40/10** | | `releaseLock() while aborting should reject the original closed promise` | **FAIL: 40/10** | | `releaseLock() during delayed async abort() should create a new rejected closed promise` | **FAIL: 40/10** | | `Untitled` | PASS | | `returning a thenable from abort() should work` | **FAIL: 40/10** | | `abort() on a released writer rejects` | **FAIL: 40/10** | | `Closing a WritableStream and aborting it while it closes causes the stream to error` | **FAIL: 40/10** | | `Aborting a WritableStream after it is closed is a no-op` | **FAIL: 40/10** | | `writer close() promise should resolve before abort() promise` | **FAIL: 40/10** | | `WritableStream if sink's abort throws, the promise returned by writer.abort() rejects` | **FAIL: 40/10** | | `Closing but then immediately aborting a WritableStream causes the stream to error` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/start.https.html">/streams/writable-streams/start.https.html</a></summary> | Subtest | Results | |-------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `underlying sink's write or close should not be called if start throws` | **FAIL: 40/10** | | `underlying sink's write or close should not be invoked if the promise returned by start is rejected` | **FAIL: 40/10** | | `Untitled` | PASS | | `returning a thenable from start() should work` | **FAIL: 40/10** | | `underlying sink's write should not be called until start finishes` | **FAIL: 40/10** | | `underlying sink's close should not be called until start finishes` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/byte-length-queuing-strategy.https.html">/streams/writable-streams/byte-length-queuing-strategy.https.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Closing a writable stream with in-flight writes below the high water mark delays the close call properly` | **FAIL: 40/10** | | `Untitled` | PASS | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/constructor.https.html">/streams/writable-streams/constructor.https.html</a></summary> | Subtest | Results | |----------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `controller argument should be passed to write method` | **FAIL: 40/10** | | `WritableStream should be constructible with no arguments` | **FAIL: 40/10** | | `WritableStream instances should have standard methods and properties` | **FAIL: 40/10** | | `WritableStreamDefaultWriter constructor should throw when stream argument is locked` | **FAIL: 40/10** | | `controller argument should be passed to start method` | **FAIL: 40/10** | | `WritableStreamDefaultWriter should throw unless passed a WritableStream` | **FAIL: 40/10** | | `WritableStream should be writable and ready should fulfill immediately if the strategy does not apply backpressure` | **FAIL: 40/10** | | `WritableStreamDefaultController constructor should throw when passed an initialised WritableStream` | **FAIL: 40/10** | | `WritableStreamDefaultController constructor should throw unless passed a WritableStream` | **FAIL: 40/10** | | `Untitled` | PASS | | `highWaterMark should be reflected to desiredSize` | **FAIL: 40/10** | | `controller argument should be passed to close method` | **FAIL: 40/10** | | `private constructors should not be exported` | **PASS: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/general.https.html">/streams/piping/general.https.html</a></summary> | Subtest | Results | |---------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `pipeTo must fail if the ReadableStream is locked, and not lock the WritableStream` | **FAIL: 40/10** | | `Piping from a ReadableStream for which a chunk becomes asynchronously readable after the pipeTo` | **FAIL: 40/10** | | `Untitled` | PASS | | `Piping must lock both the ReadableStream and WritableStream` | **FAIL: 40/10** | | `pipeTo must check the brand of its ReadableStream this value` | **FAIL: 40/10** | | `pipeTo must fail if the WritableStream is locked, and not lock the ReadableStream` | **FAIL: 40/10** | | `Piping finishing must unlock both the ReadableStream and WritableStream` | **FAIL: 40/10** | | `pipeTo must check the brand of its WritableStream argument` | **FAIL: 40/10** | | `Piping from a ReadableStream from which lots of chunks are synchronously readable` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/general.https.html">/streams/writable-streams/general.https.html</a></summary> | Subtest | Results | |-------------------------------------------------------------------|-----------------| | | ERROR | | `closed and ready on a released writer` | **FAIL: 40/10** | | `ws.getWriter() on an errored WritableStream` | **FAIL: 40/10** | | `ws.getWriter() on an aborted WritableStream` | **FAIL: 40/10** | | `WritableStream's strategy.size should not be called as a method` | **FAIL: 40/10** | | `ws.getWriter() on a closing WritableStream` | **FAIL: 40/10** | | `Untitled` | PASS | | `methods should not not have .apply() or .call() called` | **FAIL: 40/10** | | `WritableStream should call underlying sink methods as methods` | **FAIL: 40/10** | | `ws.getWriter() on a closed WritableStream` | **FAIL: 40/10** | | `desiredSize on a writer for a closed stream` | **FAIL: 40/10** | | `desiredSize on a released writer` | **FAIL: 40/10** | | `redundant releaseLock() is no-op` | **FAIL: 40/10** | | `desiredSize initial value` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/transform-streams.https.html">/streams/piping/transform-streams.https.html</a></summary> | Subtest | Results | |---------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Piping through an identity transform stream should close the destination when the source closes` | **FAIL: 30/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/close-propagation-forward.https.html">/streams/piping/close-propagation-forward.https.html</a></summary> | Subtest | Results | |-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed after one chunk; preventClose = true` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = 1 (truthy)` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed asynchronously; preventClose = true` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = true (truthy)` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true` | **FAIL: 40/10** | | `Untitled` | PASS | | `Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = a (truthy)` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: shutdown must not occur until the final write completes` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise` | **FAIL: 80/10** | | `Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise` | **FAIL: 40/10** | | `Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/error-propagation-backward.https.html">/streams/piping/error-propagation-backward.https.html</a></summary> | Subtest | Results | |------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = true, preventAbort = true, preventClose = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = 0 (falsy); fulfilled cancel promise` | **FAIL: 80/10** | | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = false; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = 1 (truthy)` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = false; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = a (truthy)` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = undefined (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = null (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = false; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored during piping due to write, but async; preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = false (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: starts errored; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = NaN (falsy); fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping due to last write; source is closed; preventCancel omitted (but cancel is never called)` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write, preventCancel = true; preventAbort = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping due to last write; source is closed; preventCancel = true` | **FAIL: 40/10** | | `Untitled` | PASS | | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = false; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored during piping due to write; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping; dest never desires chunks; preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = Symbol() (truthy)` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping; preventCancel omitted; rejected cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored after piping; preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping via abort; preventCancel = true` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel omitted; fulfilled cancel promise` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = [object Object] (truthy)` | **FAIL: 40/10** | | `Errors must be propagated backward: becomes errored before piping due to write; preventCancel = true (truthy)` | **FAIL: 40/10** | | `Errors must be propagated backward: erroring via the controller errors once pending write completes` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/pipe-through.https.html">/streams/piping/pipe-through.https.html</a></summary> | Subtest | Results | |-------------------------------------------------------------------------|-----------------| | | ERROR | | `Piping through a duck-typed pass-through transform stream should work` | **FAIL: 40/10** | | `Untitled` | PASS | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/writable-streams/bad-strategies.https.html">/streams/writable-streams/bad-strategies.https.html</a></summary> | Subtest | Results | |-----------------------------------------------------------|-----------------| | | ERROR | | `reject any non-function value for strategy.size` | **FAIL: 40/10** | | `Writable stream: invalid strategy.size return value` | **FAIL: 40/10** | | `Writable stream: invalid strategy.highWaterMark` | **FAIL: 40/10** | | `Writable stream: throwing strategy.highWaterMark getter` | **FAIL: 40/10** | | `Untitled` | PASS | | `Writable stream: throwing strategy.size method` | **FAIL: 40/10** | | `Writable stream: throwing strategy.size getter` | **FAIL: 40/10** | </details> <details> <summary><a href="https://w3c-test.org/submissions/4559/streams/piping/multiple-propagation.https.html">/streams/piping/multiple-propagation.https.html</a></summary> | Subtest | Results | |---------------------------------------------------------------------------------------------|-----------------| | | ERROR | | `Piping from an errored readable stream to a closed writable stream` | **FAIL: 40/10** | | `Piping from a closed readable stream to a closed writable stream` | **FAIL: 40/10** | | `Piping from a closed readable stream to an errored writable stream` | **FAIL: 40/10** | | `Untitled` | PASS | | `Piping from an errored readable stream to an errored writable stream` | **FAIL: 40/10** | | `Piping from an errored readable stream to an errored writable stream; preventAbort = true` | **FAIL: 40/10** | </details> View on GitHub: https://github.com/w3c/web-platform-tests/pull/4559#issuecomment-273610542
Received on Wednesday, 18 January 2017 21:41:41 UTC