28 lines
716 B
JavaScript
28 lines
716 B
JavaScript
// META: global=window,worker,shadowrealm
|
|
'use strict';
|
|
|
|
promise_test(t => {
|
|
let isDone = false;
|
|
const ws = new WritableStream(
|
|
{
|
|
write() {
|
|
return new Promise(resolve => {
|
|
t.step_timeout(() => {
|
|
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');
|