'use strict'; const common = require('../common.js'); const { ReadableStream } = require('node:stream/web'); const bench = common.createBenchmark(main, { n: [1e5], type: ['normal', 'byob'], }); async function main({ n, type }) { switch (type) { case 'normal': { const rs = new ReadableStream({ pull: function(controller) { controller.enqueue('a'); }, }); const reader = rs.getReader(); let x = null; bench.start(); for (let i = 0; i < n; i++) { const { value } = await reader.read(); x = value; } bench.end(n); console.assert(x); break; } case 'byob': { const encode = new TextEncoder(); const rs = new ReadableStream({ type: 'bytes', pull: function(controller) { controller.enqueue(encode.encode('a')); }, }); const reader = rs.getReader({ mode: 'byob' }); let x = null; bench.start(); for (let i = 0; i < n; i++) { const { value } = await reader.read(new Uint8Array(1)); x = value; } bench.end(n); console.assert(x); break; } } }