1// META: global=window,worker 2'use strict'; 3 4promise_test(t => { 5 let isDone = false; 6 const ws = new WritableStream( 7 { 8 write() { 9 return new Promise(resolve => { 10 t.step_timeout(() => { 11 isDone = true; 12 resolve(); 13 }, 200); 14 }); 15 }, 16 17 close() { 18 assert_true(isDone, 'close is only called once the promise has been resolved'); 19 } 20 }, 21 new ByteLengthQueuingStrategy({ highWaterMark: 1024 * 16 }) 22 ); 23 24 const writer = ws.getWriter(); 25 writer.write({ byteLength: 1024 }); 26 27 return writer.close(); 28}, 'Closing a writable stream with in-flight writes below the high water mark delays the close call properly'); 29