| 'use strict'; |
| |
| if (self.importScripts) { |
| self.importScripts('/resources/testharness.js'); |
| } |
| |
| promise_test(() => { |
| let isDone = false; |
| const ws = new WritableStream( |
| { |
| write() { |
| return new Promise(resolve => { |
| setTimeout(() => { |
| isDone = true; |
| resolve(); |
| }, 200); |
| }); |
| }, |
| |
| close() { |
| assert_true(isDone, 'close is only called once the promise has been resolved'); |
| } |
| }, |
| new ByteLengthQueuingStrategy({ highWaterMark: 1024 * 16 }) |
| ); |
| |
| const writer = ws.getWriter(); |
| writer.write({ byteLength: 1024 }); |
| |
| return writer.close(); |
| }, 'Closing a writable stream with in-flight writes below the high water mark delays the close call properly'); |
| |
| done(); |