���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/test/fixtures/wpt/encoding/streams/ |
// META: global=worker 'use strict'; const classes = [ { constructor: TextDecoderStream, input: new Uint8Array([65]) }, { constructor: TextEncoderStream, input: 'A' } ]; const microtasksRun = () => new Promise(resolve => step_timeout(resolve, 0)); for (const streamClass of classes) { promise_test(async () => { const stream = new streamClass.constructor(); const writer = stream.writable.getWriter(); const reader = stream.readable.getReader(); const events = []; await microtasksRun(); const writePromise = writer.write(streamClass.input); writePromise.then(() => events.push('write')); await microtasksRun(); events.push('paused'); await reader.read(); events.push('read'); await writePromise; assert_array_equals(events, ['paused', 'read', 'write'], 'write should happen after read'); }, 'write() should not complete until read relieves backpressure for ' + `${streamClass.constructor.name}`); promise_test(async () => { const stream = new streamClass.constructor(); const writer = stream.writable.getWriter(); const reader = stream.readable.getReader(); const events = []; await microtasksRun(); const readPromise1 = reader.read(); readPromise1.then(() => events.push('read1')); const writePromise1 = writer.write(streamClass.input); const writePromise2 = writer.write(streamClass.input); writePromise1.then(() => events.push('write1')); writePromise2.then(() => events.push('write2')); await microtasksRun(); events.push('paused'); const readPromise2 = reader.read(); readPromise2.then(() => events.push('read2')); await Promise.all([writePromise1, writePromise2, readPromise1, readPromise2]); assert_array_equals(events, ['read1', 'write1', 'paused', 'read2', 'write2'], 'writes should not happen before read2'); }, 'additional writes should wait for backpressure to be relieved for ' + `class ${streamClass.constructor.name}`); }