Commit 01299c9d authored by Adam Rice's avatar Adam Rice Committed by Commit Bot

Update ReadableStream to match standard

Apply standard changes to ReadableStream up to standard version
51227372cc84846bdcf68312724c4cac6a4b9e58. With this change, Blink's
implementation once again passes all non-byte-stream ReadableStream
tests.

Update test expectations to match.

Changes:

* Use null prototypes for the objects returned by
  ReadableStreamDefaultReaderRead when they consumed internally by
  pipeTo(), tee() or fetch. This is the fix for standard issue
  https://github.com/whatwg/streams/issues/933 "Setting
  Object.prototype.then permits interfering with pipeTo() internals".
* In pipeTo() complete all pending writes when readable stream is
  errored.
* Change ordering of accessing strategy parameters to match standard.

Non-user visible changes:

* Use Object.assign() to be more concise when modifying the binding
  object in ReadableStream.js and WritableStream.js.

WPT changes:

* Update the expectations in response-stream-with-broken-then.any.js
  since interference is no longer possible.
* Add extra tests to response-stream-with-broken-then.any.js for the
  arraybuffer -> text case which should have been broken in Chrome but
  wasn't, and the arraybuffer -> stream case.
* Fix bugs in streams/piping/then-interception.js which are only
  apparent when it passes. In particular, delete Object.prototype.then
  even when it is not called.

BUG=866388

Change-Id: I82c8ac2c2b7d71ccbf331388014e8cec847e1b65
Reviewed-on: https://chromium-review.googlesource.com/1149678Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580057}
parent 10d26ba5
...@@ -2769,9 +2769,6 @@ crbug.com/626703 [ Mac ] external/wpt/svg/shapes/reftests/pathlength-002.svg [ F ...@@ -2769,9 +2769,6 @@ crbug.com/626703 [ Mac ] external/wpt/svg/shapes/reftests/pathlength-002.svg [ F
crbug.com/626703 external/wpt/svg/shapes/reftests/pathlength-003.svg [ Failure ] crbug.com/626703 external/wpt/svg/shapes/reftests/pathlength-003.svg [ Failure ]
crbug.com/626703 external/wpt/svg/text/reftests/textpath-side-001.svg [ Failure ] crbug.com/626703 external/wpt/svg/text/reftests/textpath-side-001.svg [ Failure ]
crbug.com/626703 external/wpt/svg/text/reftests/textpath-shape-001.svg [ Failure ] crbug.com/626703 external/wpt/svg/text/reftests/textpath-shape-001.svg [ Failure ]
crbug.com/626703 external/wpt/streams/piping/then-interception.dedicatedworker.html [ Timeout ]
crbug.com/626703 external/wpt/streams/piping/then-interception.serviceworker.https.html [ Timeout ]
crbug.com/626703 external/wpt/streams/piping/then-interception.sharedworker.html [ Timeout ]
crbug.com/626703 [ Win7 ] external/wpt/resource-timing/resource_timing_buffer_full_eventually.html [ Timeout ] crbug.com/626703 [ Win7 ] external/wpt/resource-timing/resource_timing_buffer_full_eventually.html [ Timeout ]
crbug.com/626703 external/wpt/svg/rendering/order/z-index.svg [ Failure ] crbug.com/626703 external/wpt/svg/rendering/order/z-index.svg [ Failure ]
crbug.com/626703 external/wpt/web-animations/timing-model/timelines/update-and-send-events.html [ Timeout ] crbug.com/626703 external/wpt/web-animations/timing-model/timelines/update-and-send-events.html [ Timeout ]
......
// META: script=../resources/utils.js // META: script=../resources/utils.js
promise_test(async () => { promise_test(async () => {
// t.add_cleanup doesn't work when Object.prototype.then is overwritten, so
// these tests use add_completion_callback for cleanup instead.
add_completion_callback(() => delete Object.prototype.then); add_completion_callback(() => delete Object.prototype.then);
const hello = new TextEncoder().encode('hello'); const hello = new TextEncoder().encode('hello');
const bye = new TextEncoder().encode('bye'); const bye = new TextEncoder().encode('bye');
...@@ -16,8 +18,9 @@ promise_test(async () => { ...@@ -16,8 +18,9 @@ promise_test(async () => {
onFulfilled({done: false, value: bye}); onFulfilled({done: false, value: bye});
}; };
const text = await resp.text(); const text = await resp.text();
assert_equals(text, 'bye', 'The valud should be replaced with "bye".'); delete Object.prototype.then;
}, 'Inject {done: false, value: bye} via Object.prototype.then.'); assert_equals(text, 'hello', 'The value should be "hello".');
}, 'Attempt to inject {done: false, value: bye} via Object.prototype.then.');
promise_test(async (t) => { promise_test(async (t) => {
add_completion_callback(() => delete Object.prototype.then); add_completion_callback(() => delete Object.prototype.then);
...@@ -33,9 +36,10 @@ promise_test(async (t) => { ...@@ -33,9 +36,10 @@ promise_test(async (t) => {
delete Object.prototype.then; delete Object.prototype.then;
onFulfilled({done: false, value: undefined}); onFulfilled({done: false, value: undefined});
}; };
promise_rejects(t, TypeError(), resp.text(), const text = await resp.text();
'The value should be replaced with undefined.'); delete Object.prototype.then;
}, 'Inject {done: false, value: undefined} via Object.prototype.then.'); assert_equals(text, 'hello', 'The value should be "hello".');
}, 'Attempt to inject value: undefined via Object.prototype.then.');
promise_test(async (t) => { promise_test(async (t) => {
add_completion_callback(() => delete Object.prototype.then); add_completion_callback(() => delete Object.prototype.then);
...@@ -51,9 +55,10 @@ promise_test(async (t) => { ...@@ -51,9 +55,10 @@ promise_test(async (t) => {
delete Object.prototype.then; delete Object.prototype.then;
onFulfilled(undefined); onFulfilled(undefined);
}; };
promise_rejects(t, TypeError(), resp.text(), const text = await resp.text();
'The read result should be replaced with undefined.'); delete Object.prototype.then;
}, 'Inject undefined via Object.prototype.then.'); assert_equals(text, 'hello', 'The value should be "hello".');
}, 'Attempt to inject undefined via Object.prototype.then.');
promise_test(async (t) => { promise_test(async (t) => {
add_completion_callback(() => delete Object.prototype.then); add_completion_callback(() => delete Object.prototype.then);
...@@ -69,7 +74,43 @@ promise_test(async (t) => { ...@@ -69,7 +74,43 @@ promise_test(async (t) => {
delete Object.prototype.then; delete Object.prototype.then;
onFulfilled(8.2); onFulfilled(8.2);
}; };
promise_rejects(t, TypeError(), resp.text(), const text = await resp.text();
'The read result should be replaced with a number.'); delete Object.prototype.then;
}, 'Inject 8.2 via Object.prototype.then.'); assert_equals(text, 'hello', 'The value should be "hello".');
}, 'Attempt to inject 8.2 via Object.prototype.then.');
promise_test(async () => {
add_completion_callback(() => delete Object.prototype.then);
const hello = new TextEncoder().encode('hello');
const bye = new TextEncoder().encode('bye');
const resp = new Response(hello);
Object.prototype.then = (onFulfilled) => {
delete Object.prototype.then;
onFulfilled({done: false, value: bye});
};
const text = await resp.text();
delete Object.prototype.then;
assert_equals(text, 'hello', 'The value should be "hello".');
}, 'intercepting arraybuffer to text conversion via Object.prototype.then ' +
'should not be possible');
promise_test(async () => {
add_completion_callback(() => delete Object.prototype.then);
const u8a123 = new Uint8Array([1, 2, 3]);
const u8a456 = new Uint8Array([4, 5, 6]);
const resp = new Response(u8a123);
const writtenBytes = [];
const ws = new WritableStream({
write(chunk) {
writtenBytes.push(...Array.from(chunk));
}
});
Object.prototype.then = (onFulfilled) => {
delete Object.prototype.then;
onFulfilled({done: false, value: u8a456});
};
await resp.body.pipeTo(ws);
delete Object.prototype.then;
assert_array_equals(writtenBytes, u8a123, 'The value should be [1, 2, 3]');
}, 'intercepting arraybuffer to body readable stream conversion via ' +
'Object.prototype.then should not be possible');
This is a testharness.js-based test.
PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
PASS Closing must be propagated forward: erroring the writable while flushing pending writes should error pipeTo
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
PASS Closing must be propagated forward: erroring the writable while flushing pending writes should error pipeTo
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Service worker test setup
PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
PASS Closing must be propagated forward: erroring the writable while flushing pending writes should error pipeTo
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = (falsy); fulfilled close promise
PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
PASS Closing must be propagated forward: erroring the writable while flushing pending writes should error pipeTo
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: shutdown must not occur until the final write completes
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; preventAbort = true assert_equals: the pipe must not be complete expected false but got true
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write assert_array_equals: the second chunk must have been written, but abort must not have happened yet property 2, expected "write" but got "abort"
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write; preventAbort = true assert_false: the pipe should not complete while the second write is pending expected false got true
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: shutdown must not occur until the final write completes
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; preventAbort = true assert_equals: the pipe must not be complete expected false but got true
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write assert_array_equals: the second chunk must have been written, but abort must not have happened yet property 2, expected "write" but got "abort"
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write; preventAbort = true assert_false: the pipe should not complete while the second write is pending expected false got true
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Service worker test setup
PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: shutdown must not occur until the final write completes
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; preventAbort = true assert_equals: the pipe must not be complete expected false but got true
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write assert_array_equals: the second chunk must have been written, but abort must not have happened yet property 2, expected "write" but got "abort"
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write; preventAbort = true assert_false: the pipe should not complete while the second write is pending expected false got true
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = (falsy); fulfilled abort promise
PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
PASS Errors must be propagated forward: shutdown must not occur until the final write completes
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; preventAbort = true assert_equals: the pipe must not be complete expected false but got true
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write assert_array_equals: the second chunk must have been written, but abort must not have happened yet property 2, expected "write" but got "abort"
FAIL Errors must be propagated forward: shutdown must not occur until the final write completes; becomes errored after first write; preventAbort = true assert_false: the pipe should not complete while the second write is pending expected false got true
Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL piping should not be observable promise_test: Unhandled rejection with value: undefined
FAIL tee should not be observable promise_test: Unhandled rejection with value: object "TypeError: Assignment to constant variable."
Harness: the test ran to completion.
...@@ -36,6 +36,8 @@ promise_test(async () => { ...@@ -36,6 +36,8 @@ promise_test(async () => {
const intercepted = interceptThen(); const intercepted = interceptThen();
await rs.pipeTo(ws); await rs.pipeTo(ws);
delete Object.prototype.then;
assert_array_equals(intercepted, [], 'nothing should have been intercepted'); assert_array_equals(intercepted, [], 'nothing should have been intercepted');
assert_array_equals(ws.events, ['write', 'a', 'close'], 'written chunk should be "a"'); assert_array_equals(ws.events, ['write', 'a', 'close'], 'written chunk should be "a"');
...@@ -55,6 +57,7 @@ promise_test(async () => { ...@@ -55,6 +57,7 @@ promise_test(async () => {
const intercepted = interceptThen(); const intercepted = interceptThen();
await branch1.pipeTo(ws); await branch1.pipeTo(ws);
delete Object.prototype.then;
branch2.cancel(); branch2.cancel();
assert_array_equals(intercepted, [], 'nothing should have been intercepted'); assert_array_equals(intercepted, [], 'nothing should have been intercepted');
......
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size" PASS ReadableStream constructor should stop after get on size fails
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after get on highWaterMark fails
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type" PASS ReadableStream constructor should stop after get on type fails
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on type fails
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on size fails
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
Harness: the test ran to completion. Harness: the test ran to completion.
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size" PASS ReadableStream constructor should stop after get on size fails
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after get on highWaterMark fails
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type" PASS ReadableStream constructor should stop after get on type fails
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on type fails
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on size fails
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
Harness: the test ran to completion. Harness: the test ran to completion.
This is a testharness.js-based test. This is a testharness.js-based test.
PASS Service worker test setup PASS Service worker test setup
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size" PASS ReadableStream constructor should stop after get on size fails
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after get on highWaterMark fails
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type" PASS ReadableStream constructor should stop after get on type fails
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on type fails
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on size fails
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
Harness: the test ran to completion. Harness: the test ran to completion.
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size" PASS ReadableStream constructor should stop after get on size fails
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after get on highWaterMark fails
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type" PASS ReadableStream constructor should stop after get on type fails
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on type fails
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark" PASS ReadableStream constructor should stop after validate on size fails
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after tonumber on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on autoAllocateChunkSize fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on type,get on size,get on highWaterMark" FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on autoAllocateChunkSize,tonumber on autoAllocateChunkSize,get on start" but got "get on size,get on highWaterMark,get on type"
Harness: the test ran to completion. Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size"
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type"
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size"
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type"
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
Harness: the test ran to completion.
This is a testharness.js-based test.
PASS Service worker test setup
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size"
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type"
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL ReadableStream constructor should stop after get on size fails assert_equals: operations should be performed in the right order expected "get on size" but got "get on type,get on size"
FAIL ReadableStream constructor should stop after get on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after get on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type"
FAIL ReadableStream constructor should stop after validate on type fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark"
FAIL ReadableStream constructor should stop after validate on size fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after tonumber on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after validate on highWaterMark fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark"
FAIL ReadableStream constructor should stop after get on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after validate on pull fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull"
FAIL ReadableStream constructor should stop after get on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after validate on cancel fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel"
FAIL ReadableStream constructor should stop after get on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
FAIL ReadableStream constructor should stop after validate on start fails assert_equals: operations should be performed in the right order expected "get on size,get on highWaterMark,get on type,tonumber on highWaterMark,get on pull,get on cancel,get on start" but got "get on type,get on size,get on highWaterMark,tonumber on highWaterMark,get on pull,get on cancel,get on start"
Harness: the test ran to completion.
...@@ -1035,33 +1035,29 @@ ...@@ -1035,33 +1035,29 @@
// TODO(ricea): Exports to Blink // TODO(ricea): Exports to Blink
Object.assign(binding, {
// Exports for ReadableStream // Exports for ReadableStream
binding.AcquireWritableStreamDefaultWriter = AcquireWritableStreamDefaultWriter,
AcquireWritableStreamDefaultWriter; IsWritableStream,
binding.IsWritableStream = IsWritableStream; isWritableStreamClosingOrClosed,
binding.isWritableStreamClosingOrClosed = isWritableStreamClosingOrClosed; isWritableStreamErrored,
binding.isWritableStreamErrored = isWritableStreamErrored; isWritableStreamWritable,
binding.IsWritableStreamLocked = IsWritableStreamLocked; IsWritableStreamLocked,
binding.WritableStreamAbort = WritableStreamAbort; WritableStreamAbort,
binding.WritableStreamDefaultWriterCloseWithErrorPropagation = WritableStreamCloseQueuedOrInFlight,
WritableStreamDefaultWriterCloseWithErrorPropagation; WritableStreamDefaultWriterCloseWithErrorPropagation,
binding.getWritableStreamDefaultWriterClosedPromise = getWritableStreamDefaultWriterClosedPromise,
getWritableStreamDefaultWriterClosedPromise; WritableStreamDefaultWriterGetDesiredSize,
binding.WritableStreamDefaultWriterGetDesiredSize = getWritableStreamDefaultWriterReadyPromise,
WritableStreamDefaultWriterGetDesiredSize; WritableStreamDefaultWriterRelease,
binding.getWritableStreamDefaultWriterReadyPromise = WritableStreamDefaultWriterWrite,
getWritableStreamDefaultWriterReadyPromise; getWritableStreamStoredError,
binding.WritableStreamDefaultWriterRelease =
WritableStreamDefaultWriterRelease; // Additional exports for TransformStream
binding.WritableStreamDefaultWriterWrite = WritableStreamDefaultWriterWrite; CreateWritableStream,
binding.getWritableStreamStoredError = getWritableStreamStoredError; WritableStream,
WritableStreamDefaultControllerErrorIfNeeded,
// Exports for TransformStream isWritableStreamErroring,
binding.CreateWritableStream = CreateWritableStream; getWritableStreamController,
binding.WritableStream = WritableStream; });
binding.WritableStreamDefaultControllerErrorIfNeeded =
WritableStreamDefaultControllerErrorIfNeeded;
binding.isWritableStreamWritable = isWritableStreamWritable;
binding.isWritableStreamErroring = isWritableStreamErroring;
binding.getWritableStreamController = getWritableStreamController;
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment