1'use strict'; 2const common = require('../common.js'); 3const { 4 ReadableStream, 5 TransformStream, 6 WritableStream, 7} = require('node:stream/web'); 8const assert = require('assert'); 9 10const bench = common.createBenchmark(main, { 11 n: [50e3], 12 kind: ['ReadableStream', 'TransformStream', 'WritableStream'], 13}); 14 15let rs, ws, ts; 16 17function main({ n, kind }) { 18 switch (kind) { 19 case 'ReadableStream': 20 bench.start(); 21 for (let i = 0; i < n; ++i) 22 rs = new ReadableStream(); 23 bench.end(n); 24 25 // Avoid V8 deadcode (elimination) 26 assert.ok(rs); 27 break; 28 case 'WritableStream': 29 bench.start(); 30 for (let i = 0; i < n; ++i) 31 ws = new WritableStream(); 32 bench.end(n); 33 34 // Avoid V8 deadcode (elimination) 35 assert.ok(ws); 36 break; 37 case 'TransformStream': 38 bench.start(); 39 for (let i = 0; i < n; ++i) 40 ts = new TransformStream(); 41 bench.end(n); 42 43 // Avoid V8 deadcode (elimination) 44 assert.ok(ts); 45 break; 46 default: 47 throw new Error('Invalid kind'); 48 } 49} 50