| Differences between
and this patch
- a/Source/WebCore/ChangeLog +12 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2020-08-27  Youenn Fablet  <youenn@apple.com>
2
3
        initializeReadableStream should check for highWaterMark be undefined
4
        https://bugs.webkit.org/show_bug.cgi?id=215890
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Covered by updated tests.
9
10
        * Modules/streams/ReadableStream.js:
11
        (initializeReadableStream):
12
1
2020-08-27  Youenn Fablet  <youenn@apple.com>
13
2020-08-27  Youenn Fablet  <youenn@apple.com>
2
14
3
        Fix propagation of errors in TransformStream
15
        Fix propagation of errors in TransformStream
- a/Source/WebCore/Modules/streams/ReadableStream.js -1 / +1 lines
Lines 51-57 function initializeReadableStream(underlyingSource, strategy) a/Source/WebCore/Modules/streams/ReadableStream.js_sec1
51
    if (@getByIdDirectPrivate(underlyingSource, "pull") !== @undefined) {
51
    if (@getByIdDirectPrivate(underlyingSource, "pull") !== @undefined) {
52
        const size = @getByIdDirectPrivate(strategy, "size");
52
        const size = @getByIdDirectPrivate(strategy, "size");
53
        const highWaterMark = @getByIdDirectPrivate(strategy, "highWaterMark");
53
        const highWaterMark = @getByIdDirectPrivate(strategy, "highWaterMark");
54
        @setupReadableStreamDefaultController(this, underlyingSource, size, highWaterMark ? highWaterMark : 1, @getByIdDirectPrivate(underlyingSource, "start"), @getByIdDirectPrivate(underlyingSource, "pull"), @getByIdDirectPrivate(underlyingSource, "cancel"));
54
        @setupReadableStreamDefaultController(this, underlyingSource, size, highWaterMark !== @undefined ? highWaterMark : 1, @getByIdDirectPrivate(underlyingSource, "start"), @getByIdDirectPrivate(underlyingSource, "pull"), @getByIdDirectPrivate(underlyingSource, "cancel"));
55
        return this;
55
        return this;
56
    }
56
    }
57
57
- a/LayoutTests/imported/w3c/ChangeLog +18 lines
Lines 1-3 a/LayoutTests/imported/w3c/ChangeLog_sec1
1
2020-08-27  Youenn Fablet  <youenn@apple.com>
2
3
        initializeReadableStream should check for highWaterMark be undefined
4
        https://bugs.webkit.org/show_bug.cgi?id=215890
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * web-platform-tests/streams/transform-streams/backpressure.any-expected.txt:
9
        * web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt:
10
        * web-platform-tests/streams/transform-streams/errors.any-expected.txt:
11
        * web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt:
12
        * web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt:
13
        * web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt:
14
        * web-platform-tests/streams/transform-streams/strategies.any-expected.txt:
15
        * web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt:
16
        * web-platform-tests/streams/transform-streams/terminate.any-expected.txt:
17
        * web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt:
18
1
2020-08-27  Youenn Fablet  <youenn@apple.com>
19
2020-08-27  Youenn Fablet  <youenn@apple.com>
2
20
3
        Fix propagation of errors in TransformStream
21
        Fix propagation of errors in TransformStream
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt -1 / +1 lines
Lines 1-6 a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt_sec1
1
CONSOLE MESSAGE: Unhandled Promise Rejection: error1: error1 message
1
CONSOLE MESSAGE: Unhandled Promise Rejection: error1: error1 message
2
2
3
FAIL backpressure allows no transforms with a default identity transform and no reader assert_array_equals: transform should not be called lengths differ, expected array [] length 0, got ["transform", "a"] length 2
3
PASS backpressure allows no transforms with a default identity transform and no reader 
4
PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
4
PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
5
PASS transform() should keep being called as long as there is no backpressure 
5
PASS transform() should keep being called as long as there is no backpressure 
6
PASS writes should resolve as soon as transform completes 
6
PASS writes should resolve as soon as transform completes 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt -1 / +1 lines
Lines 1-5 a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt_sec1
1
1
2
FAIL backpressure allows no transforms with a default identity transform and no reader assert_array_equals: transform should not be called lengths differ, expected array [] length 0, got ["transform", "a"] length 2
2
PASS backpressure allows no transforms with a default identity transform and no reader 
3
PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
3
PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
4
PASS transform() should keep being called as long as there is no backpressure 
4
PASS transform() should keep being called as long as there is no backpressure 
5
PASS writes should resolve as soon as transform completes 
5
PASS writes should resolve as soon as transform completes 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt -1 / +1 lines
Lines 17-22 PASS controller.error() should do nothing after readable.cancel() a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt_sec1
17
PASS controller.error() should do nothing after writable.abort() has completed 
17
PASS controller.error() should do nothing after writable.abort() has completed 
18
PASS controller.error() should do nothing after a transformer method has thrown an exception 
18
PASS controller.error() should do nothing after a transformer method has thrown an exception 
19
PASS erroring during write with backpressure should result in the write failing 
19
PASS erroring during write with backpressure should result in the write failing 
20
FAIL a write() that was waiting for backpressure should reject if the writable is aborted assert_unreached: Should have rejected: read() should reject Reached unreachable code
20
PASS a write() that was waiting for backpressure should reject if the writable is aborted 
21
PASS the readable should be errored with the reason passed to the writable abort() method 
21
PASS the readable should be errored with the reason passed to the writable abort() method 
22
22
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt -1 / +1 lines
Lines 17-22 PASS controller.error() should do nothing after readable.cancel() a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt_sec1
17
PASS controller.error() should do nothing after writable.abort() has completed 
17
PASS controller.error() should do nothing after writable.abort() has completed 
18
PASS controller.error() should do nothing after a transformer method has thrown an exception 
18
PASS controller.error() should do nothing after a transformer method has thrown an exception 
19
PASS erroring during write with backpressure should result in the write failing 
19
PASS erroring during write with backpressure should result in the write failing 
20
FAIL a write() that was waiting for backpressure should reject if the writable is aborted assert_unreached: Should have rejected: read() should reject Reached unreachable code
20
PASS a write() that was waiting for backpressure should reject if the writable is aborted 
21
PASS the readable should be errored with the reason passed to the writable abort() method 
21
PASS the readable should be errored with the reason passed to the writable abort() method 
22
22
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt -1 / +1 lines
Lines 5-11 PASS error() inside size() should work a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt_sec1
5
PASS desiredSize inside size() should work 
5
PASS desiredSize inside size() should work 
6
PASS readable cancel() inside size() should work 
6
PASS readable cancel() inside size() should work 
7
PASS pipeTo() inside size() should work 
7
PASS pipeTo() inside size() should work 
8
FAIL read() inside of size() should work assert_false: expected false got true
8
PASS read() inside of size() should work 
9
PASS writer.write() inside size() should work 
9
PASS writer.write() inside size() should work 
10
PASS synchronous writer.write() inside size() should work 
10
PASS synchronous writer.write() inside size() should work 
11
PASS writer.close() inside size() should work 
11
PASS writer.close() inside size() should work 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt -1 / +1 lines
Lines 5-11 PASS error() inside size() should work a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt_sec1
5
PASS desiredSize inside size() should work 
5
PASS desiredSize inside size() should work 
6
PASS readable cancel() inside size() should work 
6
PASS readable cancel() inside size() should work 
7
PASS pipeTo() inside size() should work 
7
PASS pipeTo() inside size() should work 
8
FAIL read() inside of size() should work assert_false: expected false got true
8
PASS read() inside of size() should work 
9
PASS writer.write() inside size() should work 
9
PASS writer.write() inside size() should work 
10
PASS synchronous writer.write() inside size() should work 
10
PASS synchronous writer.write() inside size() should work 
11
PASS writer.close() inside size() should work 
11
PASS writer.close() inside size() should work 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt -1 / +1 lines
Lines 3-9 PASS writableStrategy highWaterMark should work a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt_sec1
3
PASS readableStrategy highWaterMark should work 
3
PASS readableStrategy highWaterMark should work 
4
PASS writable should have the correct size() function 
4
PASS writable should have the correct size() function 
5
PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
5
PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
6
FAIL default readable strategy should be equivalent to { highWaterMark: 0 } assert_equals: desiredSize should be 0 expected 0 but got 1
6
PASS default readable strategy should be equivalent to { highWaterMark: 0 } 
7
PASS a RangeError should be thrown for an invalid highWaterMark 
7
PASS a RangeError should be thrown for an invalid highWaterMark 
8
PASS writableStrategy highWaterMark should be converted to a number 
8
PASS writableStrategy highWaterMark should be converted to a number 
9
PASS readableStrategy highWaterMark should be converted to a number 
9
PASS readableStrategy highWaterMark should be converted to a number 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt -1 / +1 lines
Lines 3-9 PASS writableStrategy highWaterMark should work a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt_sec1
3
PASS readableStrategy highWaterMark should work 
3
PASS readableStrategy highWaterMark should work 
4
PASS writable should have the correct size() function 
4
PASS writable should have the correct size() function 
5
PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
5
PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
6
FAIL default readable strategy should be equivalent to { highWaterMark: 0 } assert_equals: desiredSize should be 0 expected 0 but got 1
6
PASS default readable strategy should be equivalent to { highWaterMark: 0 } 
7
PASS a RangeError should be thrown for an invalid highWaterMark 
7
PASS a RangeError should be thrown for an invalid highWaterMark 
8
PASS writableStrategy highWaterMark should be converted to a number 
8
PASS writableStrategy highWaterMark should be converted to a number 
9
PASS readableStrategy highWaterMark should be converted to a number 
9
PASS readableStrategy highWaterMark should be converted to a number 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt -1 / +4 lines
Lines 1-6 a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt_sec1
1
CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: the stream has been terminated
1
CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: the stream has been terminated
2
CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: the stream has been terminated
3
4
Harness Error (FAIL), message = Unhandled rejection: the stream has been terminated
2
5
3
FAIL controller.terminate() should error pipeTo() assert_array_equals: transform() should have seen no chunks lengths differ, expected array [] length 0, got ["transform", 0] length 2
6
PASS controller.terminate() should error pipeTo() 
4
PASS controller.terminate() should prevent remaining chunks from being processed 
7
PASS controller.terminate() should prevent remaining chunks from being processed 
5
PASS controller.enqueue() should throw after controller.terminate() 
8
PASS controller.enqueue() should throw after controller.terminate() 
6
PASS controller.error() after controller.terminate() with queued chunk should error the readable 
9
PASS controller.error() after controller.terminate() with queued chunk should error the readable 
- a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt -1 / +3 lines
Lines 1-5 a/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt_sec1
1
1
2
FAIL controller.terminate() should error pipeTo() assert_array_equals: transform() should have seen no chunks lengths differ, expected array [] length 0, got ["transform", 0] length 2
2
Harness Error (FAIL), message = Unhandled rejection: the stream has been terminated
3
4
PASS controller.terminate() should error pipeTo() 
3
PASS controller.terminate() should prevent remaining chunks from being processed 
5
PASS controller.terminate() should prevent remaining chunks from being processed 
4
PASS controller.enqueue() should throw after controller.terminate() 
6
PASS controller.enqueue() should throw after controller.terminate() 
5
PASS controller.error() after controller.terminate() with queued chunk should error the readable 
7
PASS controller.error() after controller.terminate() with queued chunk should error the readable 

Return to Bug 215890