| <!DOCTYPE html> | |
| <script src='../resources/testharness.js'></script> | |
| <script src='../resources/testharnessreport.js'></script> | |
| <script> | |
| promise_test(async () => { | |
| const chunks = []; | |
| const stream = new ReadableStream({ | |
| start : (controller) => { | |
| controller.close(); | |
| } | |
| }); | |
| await new Promise(resolve => setTimeout(resolve, 0)); | |
| const reader = stream.getReader(); | |
| Object.prototype.then = function(chunk) { | |
| chunks.push(chunk); | |
| } | |
| await reader.read(); | |
| delete Object.prototype.then; | |
| assert_array_equals(chunks, []); | |
| }, 'close synchronously'); | |
| promise_test(async () => { | |
| const chunks = []; | |
| const stream = new ReadableStream({ | |
| start : (controller) => { | |
| controller.close(); | |
| } | |
| }); | |
| await new Promise(resolve => setTimeout(resolve, 0)); | |
| const reader = stream.getReader(); | |
| Object.prototype.then = function(chunk) { | |
| chunks.push(chunk); | |
| } | |
| await reader.read(); | |
| delete Object.prototype.then; | |
| assert_array_equals(chunks, []); | |
| }, 'close asynchronously'); | |
| promise_test(async () => { | |
| const chunks = []; | |
| const stream = new ReadableStream({ | |
| start : async (controller) => { | |
| await new Promise(resolve => setTimeout(resolve, 0)); | |
| controller.enqueue('chunk'); | |
| } | |
| }); | |
| const reader = stream.getReader(); | |
| Object.prototype.then = function(chunk) { | |
| chunks.push(chunk); | |
| } | |
| await reader.read(); | |
| delete Object.prototype.then; | |
| assert_array_equals(chunks, []); | |
| }, 'enqueue synchronously'); | |
| promise_test(async () => { | |
| const chunks = []; | |
| const stream = new ReadableStream({ | |
| start : async (controller) => { | |
| await new Promise(resolve => setTimeout(resolve, 0)); | |
| controller.enqueue('chunk'); | |
| } | |
| }); | |
| const reader = stream.getReader(); | |
| Object.prototype.then = function(chunk) { | |
| chunks.push(chunk); | |
| } | |
| await reader.read(); | |
| delete Object.prototype.then; | |
| assert_array_equals(chunks, []); | |
| }, 'enqueue asynchronously'); | |
| </script> |