• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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