Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: add internalUtil.kEmptyObject #43159

Merged
merged 20 commits into from
Jun 11, 2022
Merged

Conversation

LiviaMedeiros
Copy link
Contributor

@LiviaMedeiros LiviaMedeiros commented May 20, 2022

Problem

There are lots of places in core where we have to pass an optional "pre-ES6 map"-style object with optional properties.

To avoid verbose boilerplate code or overusing of optional chaining, and to allow destructuring, we need a fallback value of {}, thus creating a throwaway object:

function fn({ foo = 'defaultFoo', bar } = {}) { // still unsafe
}
function fn(options = {}) {
  let foo = 'defaultFoo';
  if (options != null) // still have to check or validate
    foo = options.foo ?? 'defaultFoo';
  const bar = options?.bar;
 }
function fn(options) {
  options ??= {};
  const foo = options.foo || 'defaultFoo';
  const { bar } = options;
}
function fn(options) {
  const { foo = 'defaultFoo`, bar } = options ?? {};
}

It is also highly affected by prototype tampering, e.g.

import tls from 'node:tls';
Object.assign(Object.prototype,{rejectUnauthorized:!1,ca:'pwned',passphrase:'gwak'});
console.log((new tls.Server).ca);
console.log(tls.createServer().passphrase);

So we have to prefer Object.create(null), which is slower and still creates a throwaway object on every usage.

Solution

export const kEmptyObject = Object.freeze(Object.create(null));

const { foo, bar } = options ?? kEmptyObject;

A single immutable object that guarantees any property to be undefined.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/crypto
  • @nodejs/http2
  • @nodejs/net
  • @nodejs/streams

@nodejs-github-bot nodejs-github-bot added lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels May 20, 2022
@mscdex mscdex added the needs-benchmark-ci PR that need a benchmark CI run. label May 20, 2022
@panva
Copy link
Member

panva commented May 20, 2022

What if our own code later assigns to a defaulted-to nullObject? It won't throw and the assignment will be lost. Do we enforce not modifying parameters through lint rules? Should we when nullObject was used?

@LiviaMedeiros
Copy link
Contributor Author

It won't throw and the assignment will be lost.

I believe assignment to a frozen object throws in strict mode? Are there places where it doesn't? Of course this object is not supposed to be exposed to usedland in any way, nor used in any scenario where there is a slightest chance to mutate it.

@panva
Copy link
Member

panva commented May 20, 2022

It won't throw and the assignment will be lost.

I believe assignment to a frozen object throws in strict mode? Are there places where it doesn't? Of course this object is not supposed to be exposed to usedland in any way, nor used in any scenario where there is a slightest chance to mutate it.

I only tried with likewise constructed null object in REPL.

@LiviaMedeiros
Copy link
Contributor Author

I only tried with likewise constructed null object in REPL.

It throws for me in REPL as well:

Welcome to Node.js v18.1.0.
Type ".help" for more information.
> Object.assign(Object.freeze(Object.create(null)), { blep: 'blop' });
Uncaught TypeError: Cannot add property blep, object is not extensible
    at Function.assign (<anonymous>)

@aduh95
Copy link
Contributor

aduh95 commented May 20, 2022

Maybe it should be named kEmptyObject instead?

@LiviaMedeiros LiviaMedeiros changed the title lib: add internalUtil.nullObject lib: add internalUtil.kEmptyObject May 20, 2022
@LiviaMedeiros
Copy link
Contributor Author

Maybe it should be named kEmptyObject instead?

Sure, renamed.

I'm still tracing some tangled places in http*, will rebase to ensure alphabetic order of imports right after that.

@panva
Copy link
Member

panva commented May 20, 2022

I only tried with likewise constructed null object in REPL.

It throws for me in REPL as well:

Welcome to Node.js v18.1.0.
Type ".help" for more information.
> Object.assign(Object.freeze(Object.create(null)), { blep: 'blop' });
Uncaught TypeError: Cannot add property blep, object is not extensible
    at Function.assign (<anonymous>)

Trying a simpler approach, one that could be more likely used.

> o=Object.freeze(Object.create(null))
[Object: null prototype] {}
> o.foo = 'bar'
'bar'
> o.foo
undefined

@LiviaMedeiros
Copy link
Contributor Author

Trying a simpler approach, one that could be more likely used.

> o=Object.freeze(Object.create(null))
[Object: null prototype] {}
> o.foo = 'bar'
'bar'
> o.foo
undefined

Right, it doesn't run in strict mode by default. 😅

$ node --use_strict
Welcome to Node.js v18.1.0.
Type ".help" for more information.
> const o = Object.freeze(Object.create(null));
undefined
> o.blep = 'blop';
Uncaught TypeError: Cannot add property blep, object is not extensible

Both approaches are covered by test:

assert.throws(
() => kEmptyObject.foo = 'bar',
TypeError
);
assert.throws(
() => Object.assign(kEmptyObject, { foo: 'bar' }),
TypeError
);
assert.throws(
() => Object.defineProperty(kEmptyObject, 'foo', {}),
TypeError
);

@panva
Copy link
Member

panva commented May 20, 2022

Thank you for your diligence. I've learned something ;)

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I highly suspect this will cause major performance regressions as frozen objects are slower than their traditional counterparts.

This should be deeply investigated for regressions before landing.

@LiviaMedeiros
Copy link
Contributor Author

I highly suspect this will cause major performance regressions as frozen objects are slower than their traditional counterparts.

AFAIK performance hit from freezing was a thing in the past, but in modern v8 there's no difference anymore.

Synthetic testing on 18.1.0 and master shows [fastest] {} < frozenEmptyObjectregularEmptyObject < Object.create(null) < { __proto__: null } [slowest] for me.

To be safe, it would make sense to not backport this.

This should be deeply investigated for regressions before landing.

Aside from benchmark CI runs in Jenkins, what kind of investigation would you recommend?

@aduh95
Copy link
Contributor

aduh95 commented May 21, 2022

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1142/

EDIT: there are a few benchmark impacted by this change, overall it's pretty mild though:

                                                                                   confidence improvement accuracy (*)    (**)   (***)
crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha256' writes=500 **     11.72 %       ±8.74% ±11.65% ±15.23%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-parallel'                 **     11.29 %       ±8.05% ±10.72% ±13.96%
crypto/randomBytes.js n=1000 size=64                                                       **     12.41 %       ±7.86% ±10.47% ±13.65%
crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-sequential'                    **     -8.32 %       ±5.87%  ±7.81% ±10.16%
timers/timers-insert-pooled.js n=5000000                                                   **     -5.46 %       ±3.51%  ±4.67%  ±6.08%
util/inspect.js option='colors' method='String_complex' n=20000                            **     -8.53 %       ±6.20%  ±8.29% ±10.86%
Full resullts
                                                                                                                confidence improvement accuracy (*)    (**)   (***)
crypto/aes-gcm-throughput.js len=1024 cipher='aes-128-gcm' n=500                                                                1.02 %       ±7.03%  ±9.35% ±12.17%
crypto/aes-gcm-throughput.js len=1024 cipher='aes-192-gcm' n=500                                                                1.28 %       ±7.84% ±10.44% ±13.60%
crypto/aes-gcm-throughput.js len=1024 cipher='aes-256-gcm' n=500                                                               -2.01 %       ±5.39%  ±7.17%  ±9.33%
crypto/aes-gcm-throughput.js len=1048576 cipher='aes-128-gcm' n=500                                                             0.20 %      ±11.02% ±14.66% ±19.08%
crypto/aes-gcm-throughput.js len=1048576 cipher='aes-192-gcm' n=500                                                            -1.26 %       ±8.33% ±11.09% ±14.45%
crypto/aes-gcm-throughput.js len=1048576 cipher='aes-256-gcm' n=500                                                            -1.50 %       ±8.41% ±11.20% ±14.58%
crypto/aes-gcm-throughput.js len=16384 cipher='aes-128-gcm' n=500                                                              -0.00 %       ±7.16%  ±9.53% ±12.41%
crypto/aes-gcm-throughput.js len=16384 cipher='aes-192-gcm' n=500                                                               1.07 %       ±7.50%  ±9.97% ±12.98%
crypto/aes-gcm-throughput.js len=16384 cipher='aes-256-gcm' n=500                                                               0.13 %       ±7.37%  ±9.81% ±12.79%
crypto/aes-gcm-throughput.js len=262144 cipher='aes-128-gcm' n=500                                                             -1.53 %       ±8.61% ±11.46% ±14.92%
crypto/aes-gcm-throughput.js len=262144 cipher='aes-192-gcm' n=500                                                             -4.93 %       ±7.76% ±10.32% ±13.43%
crypto/aes-gcm-throughput.js len=262144 cipher='aes-256-gcm' n=500                                                              1.51 %       ±6.36%  ±8.47% ±11.03%
crypto/aes-gcm-throughput.js len=4096 cipher='aes-128-gcm' n=500                                                               -5.24 %       ±8.31% ±11.06% ±14.40%
crypto/aes-gcm-throughput.js len=4096 cipher='aes-192-gcm' n=500                                                               -1.26 %       ±8.55% ±11.38% ±14.82%
crypto/aes-gcm-throughput.js len=4096 cipher='aes-256-gcm' n=500                                                               -2.34 %       ±7.69% ±10.24% ±13.33%
crypto/aes-gcm-throughput.js len=65536 cipher='aes-128-gcm' n=500                                                              -0.60 %       ±7.17%  ±9.54% ±12.42%
crypto/aes-gcm-throughput.js len=65536 cipher='aes-192-gcm' n=500                                                               2.73 %       ±7.45%  ±9.92% ±12.91%
crypto/aes-gcm-throughput.js len=65536 cipher='aes-256-gcm' n=500                                                        *      7.97 %       ±7.26%  ±9.66% ±12.57%
crypto/cipher-stream.js api='legacy' len=102400 type='asc' cipher='AES192' writes=500                                           2.21 %       ±4.76%  ±6.33%  ±8.24%
crypto/cipher-stream.js api='legacy' len=102400 type='asc' cipher='AES256' writes=500                                           0.87 %       ±4.43%  ±5.90%  ±7.67%
crypto/cipher-stream.js api='legacy' len=102400 type='buf' cipher='AES192' writes=500                                          -1.61 %       ±4.63%  ±6.16%  ±8.03%
crypto/cipher-stream.js api='legacy' len=102400 type='buf' cipher='AES256' writes=500                                          -0.87 %       ±3.71%  ±4.93%  ±6.43%
crypto/cipher-stream.js api='legacy' len=102400 type='utf' cipher='AES192' writes=500                                          -1.44 %       ±3.92%  ±5.21%  ±6.78%
crypto/cipher-stream.js api='legacy' len=102400 type='utf' cipher='AES256' writes=500                                          -0.09 %       ±3.77%  ±5.01%  ±6.53%
crypto/cipher-stream.js api='legacy' len=1024 type='asc' cipher='AES192' writes=500                                      *     -6.32 %       ±5.38%  ±7.20%  ±9.45%
crypto/cipher-stream.js api='legacy' len=1024 type='asc' cipher='AES256' writes=500                                             3.12 %       ±9.03% ±12.07% ±15.81%
crypto/cipher-stream.js api='legacy' len=1024 type='buf' cipher='AES192' writes=500                                             2.18 %       ±6.16%  ±8.19% ±10.66%
crypto/cipher-stream.js api='legacy' len=1024 type='buf' cipher='AES256' writes=500                                             3.94 %       ±6.67%  ±8.89% ±11.60%
crypto/cipher-stream.js api='legacy' len=1024 type='utf' cipher='AES192' writes=500                                            -1.81 %       ±8.39% ±11.16% ±14.52%
crypto/cipher-stream.js api='legacy' len=1024 type='utf' cipher='AES256' writes=500                                             1.06 %       ±6.82%  ±9.08% ±11.81%
crypto/cipher-stream.js api='legacy' len=1048576 type='asc' cipher='AES192' writes=500                                          0.88 %       ±3.98%  ±5.29%  ±6.89%
crypto/cipher-stream.js api='legacy' len=1048576 type='asc' cipher='AES256' writes=500                                   *      4.67 %       ±3.73%  ±4.97%  ±6.47%
crypto/cipher-stream.js api='legacy' len=1048576 type='buf' cipher='AES192' writes=500                                          3.19 %       ±4.74%  ±6.30%  ±8.21%
crypto/cipher-stream.js api='legacy' len=1048576 type='buf' cipher='AES256' writes=500                                          0.69 %       ±4.13%  ±5.50%  ±7.16%
crypto/cipher-stream.js api='legacy' len=1048576 type='utf' cipher='AES192' writes=500                                         -4.04 %       ±4.60%  ±6.12%  ±7.98%
crypto/cipher-stream.js api='legacy' len=1048576 type='utf' cipher='AES256' writes=500                                          1.30 %       ±3.66%  ±4.87%  ±6.34%
crypto/cipher-stream.js api='legacy' len=2 type='asc' cipher='AES192' writes=500                                               -2.84 %       ±5.60%  ±7.45%  ±9.70%
crypto/cipher-stream.js api='legacy' len=2 type='asc' cipher='AES256' writes=500                                                1.53 %       ±4.45%  ±5.92%  ±7.71%
crypto/cipher-stream.js api='legacy' len=2 type='buf' cipher='AES192' writes=500                                               -0.78 %      ±12.71% ±16.91% ±22.02%
crypto/cipher-stream.js api='legacy' len=2 type='buf' cipher='AES256' writes=500                                               -1.14 %       ±6.40%  ±8.52% ±11.10%
crypto/cipher-stream.js api='legacy' len=2 type='utf' cipher='AES192' writes=500                                               -1.20 %       ±4.98%  ±6.63%  ±8.63%
crypto/cipher-stream.js api='legacy' len=2 type='utf' cipher='AES256' writes=500                                                3.92 %       ±4.19%  ±5.58%  ±7.27%
crypto/cipher-stream.js api='stream' len=102400 type='asc' cipher='AES192' writes=500                                           1.63 %       ±3.25%  ±4.33%  ±5.63%
crypto/cipher-stream.js api='stream' len=102400 type='asc' cipher='AES256' writes=500                                          -1.50 %       ±4.19%  ±5.59%  ±7.31%
crypto/cipher-stream.js api='stream' len=102400 type='buf' cipher='AES192' writes=500                                    *      3.84 %       ±3.79%  ±5.05%  ±6.57%
crypto/cipher-stream.js api='stream' len=102400 type='buf' cipher='AES256' writes=500                                           0.10 %       ±3.15%  ±4.20%  ±5.46%
crypto/cipher-stream.js api='stream' len=102400 type='utf' cipher='AES192' writes=500                                          -1.65 %       ±2.75%  ±3.66%  ±4.77%
crypto/cipher-stream.js api='stream' len=102400 type='utf' cipher='AES256' writes=500                                           1.54 %       ±2.67%  ±3.56%  ±4.64%
crypto/cipher-stream.js api='stream' len=1024 type='asc' cipher='AES192' writes=500                                            -0.71 %       ±5.01%  ±6.66%  ±8.67%
crypto/cipher-stream.js api='stream' len=1024 type='asc' cipher='AES256' writes=500                                             1.16 %       ±5.29%  ±7.04%  ±9.16%
crypto/cipher-stream.js api='stream' len=1024 type='buf' cipher='AES192' writes=500                                            -2.63 %       ±5.82%  ±7.77% ±10.16%
crypto/cipher-stream.js api='stream' len=1024 type='buf' cipher='AES256' writes=500                                             0.92 %       ±5.98%  ±7.96% ±10.38%
crypto/cipher-stream.js api='stream' len=1024 type='utf' cipher='AES192' writes=500                                            -1.84 %       ±8.54% ±11.41% ±14.96%
crypto/cipher-stream.js api='stream' len=1024 type='utf' cipher='AES256' writes=500                                            -1.22 %       ±5.27%  ±7.02%  ±9.13%
crypto/cipher-stream.js api='stream' len=1048576 type='asc' cipher='AES192' writes=500                                   *     -3.44 %       ±3.02%  ±4.02%  ±5.23%
crypto/cipher-stream.js api='stream' len=1048576 type='asc' cipher='AES256' writes=500                                          0.29 %       ±3.20%  ±4.25%  ±5.54%
crypto/cipher-stream.js api='stream' len=1048576 type='buf' cipher='AES192' writes=500                                         -2.80 %       ±4.88%  ±6.49%  ±8.44%
crypto/cipher-stream.js api='stream' len=1048576 type='buf' cipher='AES256' writes=500                                         -2.88 %       ±3.74%  ±4.98%  ±6.48%
crypto/cipher-stream.js api='stream' len=1048576 type='utf' cipher='AES192' writes=500                                          0.85 %       ±2.81%  ±3.73%  ±4.86%
crypto/cipher-stream.js api='stream' len=1048576 type='utf' cipher='AES256' writes=500                                          2.19 %       ±3.72%  ±4.95%  ±6.45%
crypto/cipher-stream.js api='stream' len=2 type='asc' cipher='AES192' writes=500                                               -2.91 %       ±5.75%  ±7.66%  ±9.98%
crypto/cipher-stream.js api='stream' len=2 type='asc' cipher='AES256' writes=500                                                0.74 %      ±10.81% ±14.38% ±18.72%
crypto/cipher-stream.js api='stream' len=2 type='buf' cipher='AES192' writes=500                                               -2.22 %       ±5.63%  ±7.50%  ±9.79%
crypto/cipher-stream.js api='stream' len=2 type='buf' cipher='AES256' writes=500                                                9.17 %       ±9.23% ±12.40% ±16.38%
crypto/cipher-stream.js api='stream' len=2 type='utf' cipher='AES192' writes=500                                               -1.13 %       ±9.92% ±13.25% ±17.35%
crypto/cipher-stream.js api='stream' len=2 type='utf' cipher='AES256' writes=500                                                3.34 %       ±5.39%  ±7.20%  ±9.43%
crypto/get-ciphers.js v='crypto' n=1                                                                                           -4.30 %       ±7.55% ±10.07% ±13.13%
crypto/get-ciphers.js v='crypto' n=5000                                                                                        -2.61 %       ±6.84%  ±9.10% ±11.85%
crypto/get-ciphers.js v='tls' n=1                                                                                               1.16 %       ±6.03%  ±8.03% ±10.46%
crypto/get-ciphers.js v='tls' n=5000                                                                                           -2.20 %       ±4.49%  ±5.98%  ±7.79%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='asc' algo='md5' writes=500                           -1.99 %       ±2.42%  ±3.23%  ±4.20%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='asc' algo='sha256' writes=500                        -1.06 %       ±1.64%  ±2.18%  ±2.84%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='buf' algo='md5' writes=500                            1.54 %       ±3.11%  ±4.15%  ±5.43%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='buf' algo='sha256' writes=500                        -0.10 %       ±1.97%  ±2.62%  ±3.42%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='utf' algo='md5' writes=500                     *      2.86 %       ±2.29%  ±3.05%  ±3.97%
crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='utf' algo='sha256' writes=500                         0.94 %       ±3.43%  ±4.57%  ±5.96%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='asc' algo='md5' writes=500                     *     -5.10 %       ±3.83%  ±5.12%  ±6.71%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='asc' algo='sha256' writes=500                         0.78 %       ±2.13%  ±2.83%  ±3.68%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='buf' algo='md5' writes=500                            2.15 %       ±3.20%  ±4.26%  ±5.57%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='buf' algo='sha256' writes=500                         0.97 %       ±2.05%  ±2.73%  ±3.57%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='utf' algo='md5' writes=500                           -4.31 %       ±5.12%  ±6.89%  ±9.11%
crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='utf' algo='sha256' writes=500                        -1.17 %       ±5.16%  ±6.93%  ±9.15%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='asc' algo='md5' writes=500                               3.24 %       ±6.02%  ±8.06% ±10.60%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='asc' algo='sha256' writes=500                           -0.83 %       ±1.85%  ±2.46%  ±3.21%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='buf' algo='md5' writes=500                              -0.14 %       ±2.85%  ±3.79%  ±4.93%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='buf' algo='sha256' writes=500                           -1.25 %       ±2.07%  ±2.75%  ±3.58%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='utf' algo='md5' writes=500                               1.18 %       ±2.80%  ±3.72%  ±4.84%
crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='utf' algo='sha256' writes=500                           -0.71 %       ±2.24%  ±2.98%  ±3.89%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='asc' algo='md5' writes=500                             -7.53 %      ±10.15% ±13.57% ±17.80%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='asc' algo='sha256' writes=500                          -4.74 %      ±10.53% ±14.07% ±18.45%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='buf' algo='md5' writes=500                              2.08 %       ±7.65% ±10.18% ±13.26%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='buf' algo='sha256' writes=500                           2.13 %       ±5.65%  ±7.52%  ±9.78%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='utf' algo='md5' writes=500                             -0.86 %       ±6.91%  ±9.20% ±11.99%
crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='utf' algo='sha256' writes=500                           4.03 %       ±6.00%  ±7.99% ±10.43%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='asc' algo='md5' writes=500                              7.81 %      ±12.71% ±16.98% ±22.25%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='asc' algo='sha256' writes=500                          -4.36 %      ±10.30% ±13.78% ±18.09%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='buf' algo='md5' writes=500                             -0.69 %       ±6.51%  ±8.66% ±11.27%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='buf' algo='sha256' writes=500                           1.31 %       ±6.58%  ±8.77% ±11.44%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='utf' algo='md5' writes=500                             -3.86 %       ±7.19%  ±9.62% ±12.62%
crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='utf' algo='sha256' writes=500                          -2.54 %       ±6.66%  ±8.86% ±11.54%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='asc' algo='md5' writes=500                                -3.45 %      ±12.48% ±16.61% ±21.61%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='asc' algo='sha256' writes=500                             -0.59 %       ±7.28%  ±9.69% ±12.61%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='buf' algo='md5' writes=500                                 4.10 %       ±8.06% ±10.73% ±13.98%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='buf' algo='sha256' writes=500                             -0.40 %       ±4.54%  ±6.04%  ±7.87%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='utf' algo='md5' writes=500                                -1.71 %       ±7.83% ±10.42% ±13.56%
crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='utf' algo='sha256' writes=500                              4.00 %       ±6.50%  ±8.66% ±11.31%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='asc' algo='md5' writes=500                           0.90 %       ±1.70%  ±2.26%  ±2.95%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='asc' algo='sha256' writes=500                       -1.15 %       ±1.62%  ±2.18%  ±2.88%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='buf' algo='md5' writes=500                          -0.51 %       ±1.42%  ±1.89%  ±2.45%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='buf' algo='sha256' writes=500                       -0.86 %       ±1.41%  ±1.88%  ±2.47%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='utf' algo='md5' writes=500                           0.15 %       ±1.50%  ±2.00%  ±2.61%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='utf' algo='sha256' writes=500                       -0.33 %       ±1.20%  ±1.59%  ±2.07%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='asc' algo='md5' writes=500                           1.18 %       ±2.63%  ±3.51%  ±4.59%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='asc' algo='sha256' writes=500                       -1.69 %       ±1.94%  ±2.60%  ±3.41%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='buf' algo='md5' writes=500                           0.84 %       ±1.29%  ±1.72%  ±2.24%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='buf' algo='sha256' writes=500                 *     -1.09 %       ±1.00%  ±1.34%  ±1.74%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='utf' algo='md5' writes=500                           1.16 %       ±2.26%  ±3.01%  ±3.92%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='utf' algo='sha256' writes=500                 *     -1.65 %       ±1.64%  ±2.19%  ±2.87%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='asc' algo='md5' writes=500                              0.90 %       ±1.58%  ±2.10%  ±2.74%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='asc' algo='sha256' writes=500                          -0.35 %       ±1.72%  ±2.29%  ±2.99%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='buf' algo='md5' writes=500                             -0.68 %       ±1.89%  ±2.52%  ±3.29%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='buf' algo='sha256' writes=500                          -0.40 %       ±1.28%  ±1.71%  ±2.22%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='utf' algo='md5' writes=500                              0.60 %       ±2.19%  ±2.91%  ±3.80%
crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='utf' algo='sha256' writes=500                           0.16 %       ±1.73%  ±2.31%  ±3.00%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='asc' algo='md5' writes=500                                -1.92 %       ±9.78% ±13.13% ±17.33%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='asc' algo='sha256' writes=500                              4.38 %       ±6.61%  ±8.82% ±11.51%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='buf' algo='md5' writes=500                                 8.99 %      ±10.96% ±14.66% ±19.23%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='buf' algo='sha256' writes=500                       *     12.17 %      ±10.89% ±14.58% ±19.17%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='utf' algo='md5' writes=500                                 5.17 %      ±13.09% ±17.42% ±22.69%
crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='utf' algo='sha256' writes=500                              4.49 %      ±12.23% ±16.42% ±21.67%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='asc' algo='md5' writes=500                                11.78 %      ±12.29% ±16.47% ±21.68%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='asc' algo='sha256' writes=500                             -0.08 %       ±5.79%  ±7.70% ±10.02%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='buf' algo='md5' writes=500                                 2.54 %       ±6.00%  ±7.99% ±10.40%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='buf' algo='sha256' writes=500                             -0.82 %       ±7.88% ±10.49% ±13.65%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='utf' algo='md5' writes=500                                10.28 %      ±12.17% ±16.31% ±21.45%
crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='utf' algo='sha256' writes=500                             -1.97 %       ±6.65%  ±8.85% ±11.52%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='asc' algo='md5' writes=500                                   -4.62 %       ±9.93% ±13.33% ±17.59%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='asc' algo='sha256' writes=500                                -4.38 %      ±11.02% ±14.74% ±19.34%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='buf' algo='md5' writes=500                                   -0.95 %      ±10.47% ±14.00% ±18.39%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='buf' algo='sha256' writes=500                          *      5.33 %       ±5.14%  ±6.85%  ±8.94%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='utf' algo='md5' writes=500                                   -6.79 %      ±10.30% ±13.79% ±18.13%
crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='utf' algo='sha256' writes=500                                 4.14 %       ±6.79%  ±9.04% ±11.77%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='asc' algo='md5' writes=500                           -0.30 %       ±4.85%  ±6.45%  ±8.40%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='asc' algo='sha256' writes=500                        -3.61 %       ±3.79%  ±5.04%  ±6.57%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='buf' algo='md5' writes=500                           -0.95 %       ±4.56%  ±6.07%  ±7.91%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='buf' algo='sha256' writes=500                        -2.61 %       ±3.46%  ±4.61%  ±6.00%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='utf' algo='md5' writes=500                           -0.97 %       ±3.77%  ±5.02%  ±6.54%
crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='utf' algo='sha256' writes=500                         1.77 %       ±3.60%  ±4.79%  ±6.24%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='asc' algo='md5' writes=500                            3.20 %       ±4.22%  ±5.62%  ±7.31%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='asc' algo='sha256' writes=500                         0.09 %       ±3.51%  ±4.68%  ±6.09%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='buf' algo='md5' writes=500                           -3.42 %       ±4.89%  ±6.51%  ±8.47%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='buf' algo='sha256' writes=500                         0.65 %       ±3.42%  ±4.56%  ±5.94%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='utf' algo='md5' writes=500                           -2.06 %       ±3.86%  ±5.14%  ±6.69%
crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='utf' algo='sha256' writes=500                        -0.79 %       ±3.47%  ±4.61%  ±6.00%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='asc' algo='md5' writes=500                              -1.11 %       ±4.27%  ±5.68%  ±7.39%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='asc' algo='sha256' writes=500                     *     -3.65 %       ±3.51%  ±4.68%  ±6.09%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='buf' algo='md5' writes=500                              -0.97 %       ±3.87%  ±5.15%  ±6.71%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='buf' algo='sha256' writes=500                           -1.35 %       ±3.35%  ±4.46%  ±5.82%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='utf' algo='md5' writes=500                              -1.05 %       ±5.49%  ±7.31%  ±9.52%
crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='utf' algo='sha256' writes=500                            0.25 %       ±3.02%  ±4.02%  ±5.24%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='asc' algo='md5' writes=500                              1.12 %       ±5.24%  ±6.98%  ±9.09%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='asc' algo='sha256' writes=500                           1.83 %       ±6.38%  ±8.49% ±11.07%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='buf' algo='md5' writes=500                              3.95 %       ±5.85%  ±7.79% ±10.16%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='buf' algo='sha256' writes=500                           2.33 %       ±7.49%  ±9.96% ±12.97%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='utf' algo='md5' writes=500                              1.41 %       ±6.86%  ±9.14% ±11.91%
crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='utf' algo='sha256' writes=500                           3.89 %       ±6.35%  ±8.45% ±11.01%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='asc' algo='md5' writes=500                             -0.51 %       ±4.78%  ±6.36%  ±8.28%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='asc' algo='sha256' writes=500                           3.53 %       ±6.88%  ±9.15% ±11.92%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='buf' algo='md5' writes=500                             -5.14 %       ±6.18%  ±8.24% ±10.76%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='buf' algo='sha256' writes=500                           0.39 %       ±7.39%  ±9.84% ±12.81%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='utf' algo='md5' writes=500                             -2.88 %       ±6.99%  ±9.30% ±12.13%
crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='utf' algo='sha256' writes=500                           0.31 %       ±5.87%  ±7.82% ±10.18%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='asc' algo='md5' writes=500                          *     -7.14 %       ±6.68%  ±8.90% ±11.61%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='asc' algo='sha256' writes=500                             -2.46 %       ±6.49%  ±8.64% ±11.24%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='buf' algo='md5' writes=500                                -4.58 %       ±5.39%  ±7.18%  ±9.37%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='buf' algo='sha256' writes=500                             -0.94 %       ±5.89%  ±7.84% ±10.22%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='utf' algo='md5' writes=500                                 1.93 %       ±7.40%  ±9.85% ±12.82%
crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='utf' algo='sha256' writes=500                              0.72 %       ±7.01%  ±9.33% ±12.14%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='asc' algo='md5' writes=500                           0.01 %       ±4.81%  ±6.40%  ±8.33%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='asc' algo='sha256' writes=500                        1.22 %       ±4.94%  ±6.57%  ±8.55%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='buf' algo='md5' writes=500                           4.41 %       ±5.59%  ±7.46%  ±9.78%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='buf' algo='sha256' writes=500                        4.08 %       ±5.73%  ±7.67% ±10.06%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='utf' algo='md5' writes=500                           2.29 %       ±5.53%  ±7.37%  ±9.60%
crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='utf' algo='sha256' writes=500                       -0.12 %       ±3.12%  ±4.15%  ±5.40%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='asc' algo='md5' writes=500                           5.23 %       ±5.68%  ±7.56%  ±9.86%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='asc' algo='sha256' writes=500                        0.85 %       ±5.30%  ±7.05%  ±9.18%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='buf' algo='md5' writes=500                           0.36 %       ±6.46%  ±8.60% ±11.19%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='buf' algo='sha256' writes=500                        2.00 %       ±4.04%  ±5.38%  ±7.01%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='utf' algo='md5' writes=500                           4.75 %       ±4.85%  ±6.46%  ±8.43%
crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='utf' algo='sha256' writes=500                        2.28 %       ±3.70%  ±4.93%  ±6.41%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='asc' algo='md5' writes=500                             -0.73 %       ±4.56%  ±6.07%  ±7.90%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='asc' algo='sha256' writes=500                           3.43 %       ±4.31%  ±5.73%  ±7.46%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='buf' algo='md5' writes=500                             -1.87 %       ±4.38%  ±5.83%  ±7.59%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='buf' algo='sha256' writes=500                          -2.84 %       ±4.49%  ±5.99%  ±7.82%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='utf' algo='md5' writes=500                             -3.71 %       ±4.50%  ±5.99%  ±7.79%
crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='utf' algo='sha256' writes=500                           1.54 %       ±3.29%  ±4.38%  ±5.70%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='asc' algo='md5' writes=500                                 2.15 %       ±4.61%  ±6.14%  ±8.02%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='asc' algo='sha256' writes=500                             -2.06 %       ±6.95%  ±9.24% ±12.03%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='buf' algo='md5' writes=500                          *      6.77 %       ±6.25%  ±8.32% ±10.85%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='buf' algo='sha256' writes=500                              0.88 %       ±6.76%  ±9.01% ±11.77%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='utf' algo='md5' writes=500                                 0.53 %       ±6.31%  ±8.40% ±10.93%
crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='utf' algo='sha256' writes=500                             -0.24 %       ±5.55%  ±7.40%  ±9.65%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='asc' algo='md5' writes=500                                 1.86 %       ±9.11% ±12.14% ±15.85%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='asc' algo='sha256' writes=500                             -4.74 %       ±6.09%  ±8.10% ±10.55%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='buf' algo='md5' writes=500                                -5.11 %       ±5.95%  ±7.93% ±10.34%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='buf' algo='sha256' writes=500                              2.70 %       ±5.11%  ±6.80%  ±8.85%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='utf' algo='md5' writes=500                                 3.36 %       ±8.44% ±11.26% ±14.70%
crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='utf' algo='sha256' writes=500                             -1.45 %       ±6.42%  ±8.55% ±11.13%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='asc' algo='md5' writes=500                                   -6.08 %       ±7.09%  ±9.46% ±12.38%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='asc' algo='sha256' writes=500                                -4.22 %       ±5.88%  ±7.84% ±10.23%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='buf' algo='md5' writes=500                                   -0.96 %       ±5.73%  ±7.63%  ±9.94%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='buf' algo='sha256' writes=500                                -0.96 %       ±6.57%  ±8.74% ±11.38%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='utf' algo='md5' writes=500                                    0.89 %       ±7.04%  ±9.39% ±12.27%
crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='utf' algo='sha256' writes=500                                -1.39 %       ±5.79%  ±7.72% ±10.08%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha1' writes=500                                      0.38 %       ±4.35%  ±5.79%  ±7.54%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha256' writes=500                                    3.40 %       ±6.03%  ±8.11% ±10.71%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha512' writes=500                                    0.63 %       ±5.48%  ±7.34%  ±9.66%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha1' writes=500                                     -5.11 %       ±7.56% ±10.14% ±13.36%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha256' writes=500                                    0.10 %       ±2.50%  ±3.33%  ±4.34%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha512' writes=500                                   -1.41 %       ±2.54%  ±3.38%  ±4.41%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha1' writes=500                                      0.52 %       ±2.43%  ±3.24%  ±4.22%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha256' writes=500                                   -0.41 %       ±1.72%  ±2.29%  ±2.98%
crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha512' writes=500                                   -0.64 %       ±2.94%  ±3.92%  ±5.11%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha1' writes=500                                       -2.13 %       ±6.39%  ±8.50% ±11.07%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha256' writes=500                              **     11.72 %       ±8.74% ±11.65% ±15.23%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha512' writes=500                                     10.82 %      ±11.44% ±15.36% ±20.30%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha1' writes=500                                       -1.03 %       ±5.84%  ±7.77% ±10.11%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha256' writes=500                                     -0.75 %       ±5.30%  ±7.05%  ±9.18%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha512' writes=500                                      0.22 %       ±6.92%  ±9.22% ±12.01%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha1' writes=500                                        1.82 %       ±5.65%  ±7.52%  ±9.79%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha256' writes=500                                     -5.93 %      ±10.15% ±13.63% ±17.97%
crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha512' writes=500                                     -0.76 %       ±7.40%  ±9.84% ±12.81%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha1' writes=500                                    -0.24 %       ±2.61%  ±3.48%  ±4.52%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha256' writes=500                                   0.99 %       ±1.19%  ±1.58%  ±2.06%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha512' writes=500                                   0.54 %       ±2.18%  ±2.92%  ±3.83%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha1' writes=500                                    -1.70 %       ±4.13%  ±5.51%  ±7.20%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha256' writes=500                                   0.23 %       ±1.34%  ±1.79%  ±2.34%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha512' writes=500                                  -1.20 %       ±2.72%  ±3.65%  ±4.80%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha1' writes=500                                     1.25 %       ±2.88%  ±3.86%  ±5.09%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha256' writes=500                                   0.69 %       ±1.15%  ±1.53%  ±2.01%
crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha512' writes=500                                  -0.58 %       ±2.04%  ±2.72%  ±3.54%
crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha1' writes=500                                          -1.73 %       ±7.59% ±10.12% ±13.22%
crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha256' writes=500                                        -0.93 %       ±9.65% ±12.87% ±16.82%
crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha512' writes=500                                        -0.78 %       ±8.06% ±10.76% ±14.06%
crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha1' writes=500                                          -0.77 %      ±12.87% ±17.12% ±22.28%
crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha256' writes=500                                        -3.72 %      ±11.95% ±15.90% ±20.71%
crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha512' writes=500                                        -1.44 %      ±12.00% ±16.06% ±21.09%
crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha1' writes=500                                          -2.54 %      ±10.68% ±14.29% ±18.74%
crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha256' writes=500                                         2.10 %       ±6.01%  ±8.00% ±10.44%
crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha512' writes=500                                         4.39 %       ±6.23%  ±8.30% ±10.80%
crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha1' writes=500                                      2.21 %       ±3.42%  ±4.55%  ±5.93%
crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha256' writes=500                                    0.37 %       ±1.38%  ±1.83%  ±2.39%
crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha512' writes=500                                    1.42 %       ±5.96%  ±8.00% ±10.55%
crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha1' writes=500                                     -2.93 %       ±3.39%  ±4.51%  ±5.86%
crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha256' writes=500                                   -2.65 %       ±3.47%  ±4.65%  ±6.12%
crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha512' writes=500                                   -2.01 %       ±2.95%  ±3.93%  ±5.12%
crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha1' writes=500                                     -0.70 %       ±2.75%  ±3.66%  ±4.77%
crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha256' writes=500                             *     -1.53 %       ±1.47%  ±1.95%  ±2.54%
crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha512' writes=500                                   -0.02 %       ±1.94%  ±2.58%  ±3.37%
crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha1' writes=500                                       -4.53 %       ±5.94%  ±7.91% ±10.31%
crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha256' writes=500                                      2.12 %       ±8.87% ±11.81% ±15.38%
crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha512' writes=500                                     -0.35 %       ±6.46%  ±8.59% ±11.18%
crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha1' writes=500                                       -6.04 %       ±6.06%  ±8.10% ±10.62%
crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha256' writes=500                                     -0.40 %       ±7.09%  ±9.43% ±12.28%
crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha512' writes=500                                      2.19 %       ±6.57%  ±8.74% ±11.38%
crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha1' writes=500                                       -0.25 %       ±5.70%  ±7.58%  ±9.86%
crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha256' writes=500                                     -3.87 %       ±9.00% ±12.06% ±15.87%
crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha512' writes=500                                      0.89 %       ±5.18%  ±6.89%  ±8.97%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha1' writes=500                                     4.67 %       ±5.67%  ±7.61% ±10.06%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha256' writes=500                                  -1.86 %       ±1.91%  ±2.54%  ±3.31%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha512' writes=500                                   0.20 %       ±3.81%  ±5.07%  ±6.60%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha1' writes=500                                     2.07 %       ±4.77%  ±6.35%  ±8.27%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha256' writes=500                                  -1.66 %       ±2.07%  ±2.79%  ±3.69%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha512' writes=500                                   1.15 %       ±2.59%  ±3.47%  ±4.56%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha1' writes=500                                    -0.04 %       ±3.35%  ±4.46%  ±5.80%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha256' writes=500                                  -0.80 %       ±1.32%  ±1.76%  ±2.31%
crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha512' writes=500                                   0.78 %       ±2.28%  ±3.05%  ±4.02%
crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha1' writes=500                                          -4.80 %       ±5.11%  ±6.81%  ±8.89%
crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha256' writes=500                                         6.41 %       ±7.44%  ±9.92% ±12.96%
crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha512' writes=500                                        -3.37 %       ±5.08%  ±6.75%  ±8.79%
crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha1' writes=500                                           4.72 %       ±8.62% ±11.54% ±15.14%
crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha256' writes=500                                        -0.13 %       ±8.75% ±11.66% ±15.20%
crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha512' writes=500                                         3.93 %      ±10.00% ±13.39% ±17.60%
crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha1' writes=500                                          -4.68 %       ±6.35%  ±8.48% ±11.09%
crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha256' writes=500                                         2.07 %       ±6.27%  ±8.35% ±10.88%
crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha512' writes=500                                        11.19 %      ±13.86% ±18.54% ±24.32%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=0                                                3.58 %       ±5.35%  ±7.12%  ±9.27%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=1                                               -1.41 %       ±6.04%  ±8.03% ±10.46%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=0                                                  4.95 %       ±7.64% ±10.18% ±13.28%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=1                                                  0.73 %       ±7.20%  ±9.58% ±12.47%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=0                                                 -2.00 %      ±10.76% ±14.33% ±18.67%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=1                                           *      7.54 %       ±6.37%  ±8.48% ±11.04%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=0                                          -1.25 %       ±6.80%  ±9.06% ±11.80%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=1                                           3.63 %       ±6.37%  ±8.47% ±11.02%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=0                                            -8.76 %      ±11.03% ±14.70% ±19.18%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=1                                            -0.39 %       ±6.52%  ±8.67% ±11.30%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=0                                            -3.12 %      ±10.48% ±13.94% ±18.14%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=1                                            -0.91 %       ±6.69%  ±8.90% ±11.58%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                     3.13 %       ±6.14%  ±8.18% ±10.65%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                     1.27 %       ±6.40%  ±8.51% ±11.09%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                       7.40 %      ±10.20% ±13.59% ±17.72%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                       0.51 %       ±4.42%  ±5.89%  ±7.66%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                      -6.05 %      ±11.86% ±15.78% ±20.54%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                       0.25 %       ±5.30%  ±7.05%  ±9.17%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=0                                           -1.62 %       ±6.11%  ±8.14% ±10.62%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=1                                           -2.71 %       ±5.54%  ±7.37%  ±9.60%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=0                                            -11.03 %      ±12.55% ±16.73% ±21.82%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=1                                              2.16 %       ±7.94% ±10.56% ±13.75%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=0                                             -1.43 %      ±13.10% ±17.43% ±22.70%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=1                                              1.78 %       ±8.74% ±11.65% ±15.23%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=0                                       0.03 %       ±6.73%  ±8.96% ±11.67%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=1                                       2.11 %       ±6.25%  ±8.32% ±10.83%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=0                                        -7.52 %      ±12.87% ±17.13% ±22.32%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=1                                        -0.31 %       ±5.26%  ±7.01%  ±9.13%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=0                                        -6.19 %      ±12.14% ±16.15% ±21.04%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=1                                         5.20 %       ±5.61%  ±7.47%  ±9.72%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                -1.41 %       ±5.16%  ±6.86%  ±8.93%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1                -2.02 %       ±5.38%  ±7.16%  ±9.32%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                   4.51 %       ±9.70% ±12.91% ±16.81%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                  -2.34 %       ±5.05%  ±6.73%  ±8.79%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                  -2.98 %      ±11.31% ±15.05% ±19.59%
crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1                   4.13 %       ±5.75%  ±7.66% ±10.01%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=0                                                   -0.52 %       ±6.29%  ±8.37% ±10.90%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=1                                                    2.27 %       ±5.29%  ±7.04%  ±9.17%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=10 sync=0                                                      0.56 %       ±4.16%  ±5.56%  ±7.26%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=10 sync=1                                                      3.01 %       ±7.83% ±10.42% ±13.56%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=64 sync=0                                                     -1.71 %       ±9.86% ±13.12% ±17.08%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=64 sync=1                                                      5.37 %       ±6.59%  ±8.77% ±11.41%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=0                                              -0.67 %       ±8.00% ±10.65% ±13.87%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=1                                               1.06 %       ±6.22%  ±8.27% ±10.77%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=0                                                -7.78 %      ±10.27% ±13.69% ±17.87%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=1                                                 2.07 %       ±7.43%  ±9.89% ±12.89%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=0                                                -4.09 %       ±9.54% ±12.69% ±16.52%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=1                                                 3.97 %       ±6.12%  ±8.17% ±10.66%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                         4.63 %       ±6.84%  ±9.10% ±11.85%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                         0.42 %       ±5.91%  ±7.87% ±10.27%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                          -3.78 %       ±8.92% ±11.89% ±15.53%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                          -2.52 %       ±5.97%  ±7.94% ±10.35%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                          -4.50 %       ±9.91% ±13.21% ±17.23%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                           1.12 %       ±6.75%  ±8.98% ±11.69%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=0                                                3.71 %       ±6.24%  ±8.31% ±10.83%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=1                                               -0.92 %       ±4.96%  ±6.60%  ±8.59%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=0                                                 -4.80 %       ±9.25% ±12.34% ±16.13%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=1                                                 -0.13 %       ±8.07% ±10.73% ±13.97%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=0                                                  1.56 %      ±11.69% ±15.56% ±20.27%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=1                                                 -1.34 %       ±6.49%  ±8.64% ±11.25%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=0                                           3.11 %       ±6.80%  ±9.05% ±11.80%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=1                                           3.27 %       ±6.34%  ±8.43% ±10.98%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=0                                            -1.96 %      ±11.09% ±14.76% ±19.23%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=1                                             3.00 %       ±6.19%  ±8.24% ±10.72%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=0                                            -4.61 %      ±11.96% ±15.91% ±20.72%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=1                                             0.82 %       ±5.19%  ±6.90%  ±8.98%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                     1.35 %       ±6.04%  ±8.03% ±10.46%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1                     2.36 %       ±6.35%  ±8.45% ±11.00%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                       8.99 %      ±10.51% ±13.98% ±18.20%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                       3.55 %       ±5.01%  ±6.67%  ±8.68%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                       3.82 %      ±11.76% ±15.68% ±20.49%
crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1                      -0.69 %       ±5.35%  ±7.12%  ±9.26%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=0                                               -5.23 %       ±6.29%  ±8.37% ±10.90%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=1                                               -1.70 %       ±5.62%  ±7.48%  ±9.76%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=0                                                 -0.10 %      ±12.61% ±16.78% ±21.83%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=1                                                  5.43 %       ±7.86% ±10.46% ±13.61%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=0                                                  5.71 %      ±11.75% ±15.65% ±20.41%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=1                                                 -0.72 %       ±9.60% ±12.80% ±16.72%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=0                                           0.85 %       ±6.77%  ±9.00% ±11.72%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=1                                           3.56 %       ±6.75%  ±8.98% ±11.69%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=0                                             2.07 %      ±10.68% ±14.22% ±18.52%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=1                                             0.02 %       ±6.34%  ±8.44% ±10.99%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=0                                            -2.62 %      ±13.00% ±17.30% ±22.52%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=1                                            -0.53 %       ±4.72%  ±6.28%  ±8.18%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                     3.50 %       ±9.37% ±12.47% ±16.26%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                    -0.12 %       ±5.52%  ±7.34%  ±9.56%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                      -1.17 %       ±8.69% ±11.56% ±15.04%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                      -0.50 %       ±5.01%  ±6.67%  ±8.68%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                       9.39 %      ±11.56% ±15.41% ±20.09%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                       1.35 %       ±5.57%  ±7.42%  ±9.66%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=0                                            2.84 %       ±8.55% ±11.38% ±14.81%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=1                                            3.13 %       ±5.73%  ±7.63%  ±9.93%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=0                                              2.81 %      ±10.90% ±14.50% ±18.88%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=1                                              1.98 %       ±6.89%  ±9.18% ±11.96%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=0                                             -3.11 %      ±11.49% ±15.29% ±19.90%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=1                                              7.00 %       ±9.14% ±12.21% ±16.00%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=0                                      -0.77 %       ±8.77% ±11.67% ±15.19%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=1                                       0.07 %       ±5.96%  ±7.93% ±10.32%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=0                                         5.17 %      ±11.69% ±15.57% ±20.30%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=1                                        -3.17 %       ±5.49%  ±7.30%  ±9.51%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=0                                         5.81 %      ±13.03% ±17.33% ±22.56%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=1                                        -4.56 %       ±5.90%  ±7.85% ±10.22%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                 2.35 %       ±7.74% ±10.29% ±13.40%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1                -1.81 %       ±4.92%  ±6.55%  ±8.52%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                   7.39 %      ±11.85% ±15.77% ±20.55%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                  -0.39 %       ±4.96%  ±6.61%  ±8.61%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                  -0.16 %      ±10.95% ±14.57% ±18.96%
crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1                  -1.46 %       ±5.89%  ±7.85% ±10.23%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=0                                                   -3.65 %       ±6.43%  ±8.56% ±11.14%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=1                                                    0.40 %       ±6.51%  ±8.67% ±11.29%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=10 sync=0                                                     -1.38 %       ±7.46%  ±9.94% ±12.95%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=10 sync=1                                                      2.88 %       ±8.11% ±10.79% ±14.04%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=64 sync=0                                                     -3.56 %      ±10.69% ±14.22% ±18.51%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=64 sync=1                                                      4.62 %       ±6.56%  ±8.73% ±11.37%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=0                                              -0.66 %       ±7.56% ±10.06% ±13.10%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=1                                               2.60 %       ±5.86%  ±7.80% ±10.15%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=0                                                 2.61 %      ±11.51% ±15.32% ±19.95%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=1                                                 2.53 %       ±7.79% ±10.40% ±13.61%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=0                                                 2.38 %      ±11.09% ±14.76% ±19.22%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=1                                                -1.18 %       ±6.38%  ±8.49% ±11.06%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                         3.67 %       ±7.75% ±10.33% ±13.47%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                         4.56 %       ±6.08%  ±8.09% ±10.54%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                           9.48 %      ±10.45% ±13.92% ±18.16%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                          -2.32 %       ±5.54%  ±7.38%  ±9.62%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                          -0.57 %      ±10.46% ±13.91% ±18.11%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                           3.32 %       ±4.26%  ±5.66%  ±7.37%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=0                                                0.09 %       ±8.69% ±11.56% ±15.05%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=1                                               -1.87 %       ±6.54%  ±8.70% ±11.32%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=0                                                 -4.10 %      ±11.28% ±15.02% ±19.58%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=1                                                  3.04 %       ±6.58%  ±8.76% ±11.41%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=0                                                  7.91 %      ±10.83% ±14.42% ±18.81%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=1                                                  4.98 %       ±6.56%  ±8.74% ±11.40%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=0                                          -3.16 %       ±8.64% ±11.50% ±14.97%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=1                                           3.48 %       ±6.00%  ±7.99% ±10.39%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=0                                            -6.22 %       ±9.83% ±13.09% ±17.04%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=1                                             2.51 %       ±6.54%  ±8.70% ±11.32%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=0                                            -4.66 %      ±11.69% ±15.55% ±20.24%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=1                                             4.91 %       ±5.54%  ±7.38%  ±9.62%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                    -0.02 %       ±9.13% ±12.16% ±15.85%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1                     0.36 %       ±4.88%  ±6.50%  ±8.46%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                       0.39 %      ±10.97% ±14.60% ±19.00%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                       1.93 %       ±5.80%  ±7.72% ±10.05%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                       3.82 %      ±10.72% ±14.29% ±18.65%
crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1                      -0.57 %       ±5.56%  ±7.40%  ±9.63%
crypto/keygen.js n=100 method='dsaAsync'                                                                                       -0.08 %       ±2.69%  ±3.59%  ±4.67%
crypto/keygen.js n=100 method='dsaSync'                                                                                        -0.18 %       ±2.56%  ±3.41%  ±4.44%
crypto/keygen.js n=100 method='rsaAsync'                                                                                        1.02 %       ±3.88%  ±5.16%  ±6.72%
crypto/keygen.js n=100 method='rsaSync'                                                                                        -2.04 %       ±4.37%  ±5.82%  ±7.58%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='async-parallel'                                                0.21 %       ±1.43%  ±1.90%  ±2.47%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='async-serial'                                                  8.73 %      ±15.28% ±20.36% ±26.58%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='sync'                                                         -7.20 %      ±11.14% ±14.82% ±19.30%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='async-parallel'                                         5.06 %       ±8.80% ±11.72% ±15.27%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='async-serial'                                          -5.08 %      ±16.61% ±22.10% ±28.76%
crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='sync'                                                  -3.46 %      ±10.76% ±14.32% ±18.64%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-parallel'                                              **     11.29 %       ±8.05% ±10.72% ±13.96%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-serial'                                                       -3.98 %       ±8.18% ±10.89% ±14.17%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='sync'                                                                2.95 %       ±4.18%  ±5.56%  ±7.24%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='async-parallel'                                               1.05 %       ±7.86% ±10.45% ±13.61%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='async-serial'                                                 5.59 %      ±10.68% ±14.21% ±18.49%
crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='sync'                                                        -0.97 %       ±4.81%  ±6.39%  ±8.32%
crypto/randomBytes.js n=1000 size=1024                                                                                          0.26 %       ±6.36%  ±8.46% ±11.03%
crypto/randomBytes.js n=1000 size=524288                                                                                        3.00 %       ±5.42%  ±7.22%  ±9.40%
crypto/randomBytes.js n=1000 size=64                                                                                    **     12.41 %       ±7.86% ±10.47% ±13.65%
crypto/randomBytes.js n=1000 size=8192                                                                                         -4.65 %       ±5.34%  ±7.12%  ±9.28%
crypto/randomInt.js n=100000 max=10000 min=-10000 mode='async-parallel'                                                        -0.06 %       ±4.17%  ±5.55%  ±7.23%
crypto/randomInt.js n=100000 max=10000 min=-10000 mode='async-sequential'                                                       5.94 %       ±6.57%  ±8.75% ±11.41%
crypto/randomInt.js n=100000 max=10000 min=-10000 mode='sync'                                                                  -1.64 %       ±6.63%  ±8.83% ±11.50%
crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-parallel'                                                    *     -5.70 %       ±4.31%  ±5.74%  ±7.47%
crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-sequential'                                                 **     -8.32 %       ±5.87%  ±7.81% ±10.16%
crypto/randomInt.js n=100000 max=10000 min=-100 mode='sync'                                                              *     -5.64 %       ±4.69%  ±6.26%  ±8.20%
crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='async-parallel'                                               3.94 %       ±5.66%  ±7.53%  ±9.80%
crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='async-sequential'                                             1.04 %       ±6.63%  ±8.82% ±11.48%
crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='sync'                                                         3.95 %       ±6.88%  ±9.16% ±11.93%
crypto/randomInt.js n=100000 max=100 min=-10000 mode='async-parallel'                                                           2.41 %       ±4.80%  ±6.39%  ±8.31%
crypto/randomInt.js n=100000 max=100 min=-10000 mode='async-sequential'                                                        -5.10 %       ±7.29%  ±9.71% ±12.63%
crypto/randomInt.js n=100000 max=100 min=-10000 mode='sync'                                                                     1.12 %       ±6.49%  ±8.64% ±11.24%
crypto/randomInt.js n=100000 max=100 min=-100 mode='async-parallel'                                                            -1.28 %       ±4.65%  ±6.19%  ±8.06%
crypto/randomInt.js n=100000 max=100 min=-100 mode='async-sequential'                                                           0.93 %       ±6.00%  ±7.99% ±10.41%
crypto/randomInt.js n=100000 max=100 min=-100 mode='sync'                                                                      -3.03 %       ±6.67%  ±8.88% ±11.58%
crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='async-parallel'                                                -2.40 %       ±6.25%  ±8.32% ±10.82%
crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='async-sequential'                                               0.23 %       ±5.12%  ±6.81%  ±8.87%
crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='sync'                                                           1.27 %       ±7.38%  ±9.83% ±12.80%
crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='async-parallel'                                              -0.90 %       ±5.08%  ±6.76%  ±8.79%
crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='async-sequential'                                            -2.44 %       ±7.31%  ±9.72% ±12.66%
crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='sync'                                                        -2.77 %       ±6.29%  ±8.39% ±10.96%
crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='async-parallel'                                                -4.11 %       ±6.40%  ±8.52% ±11.10%
crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='async-sequential'                                              -0.69 %       ±6.86%  ±9.14% ±11.90%
crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='sync'                                                          -2.72 %       ±5.86%  ±7.81% ±10.18%
crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='async-parallel'                                    -0.28 %       ±5.14%  ±6.85%  ±8.93%
crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='async-sequential'                                   4.15 %       ±6.29%  ±8.38% ±10.92%
crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='sync'                                               6.96 %      ±10.92% ±14.61% ±19.18%
crypto/randomInt.js n=1000 max=10000 min=-10000 mode='async-parallel'                                                          -1.45 %       ±6.05%  ±8.07% ±10.53%
crypto/randomInt.js n=1000 max=10000 min=-10000 mode='async-sequential'                                                         2.35 %       ±6.70%  ±8.92% ±11.62%
crypto/randomInt.js n=1000 max=10000 min=-10000 mode='sync'                                                                    -3.15 %       ±6.98%  ±9.29% ±12.11%
crypto/randomInt.js n=1000 max=10000 min=-100 mode='async-parallel'                                                             4.20 %       ±6.13%  ±8.18% ±10.71%
crypto/randomInt.js n=1000 max=10000 min=-100 mode='async-sequential'                                                          -0.93 %       ±5.62%  ±7.48%  ±9.74%
crypto/randomInt.js n=1000 max=10000 min=-100 mode='sync'                                                                      -0.21 %       ±8.01% ±10.66% ±13.88%
crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='async-parallel'                                                -2.62 %      ±11.09% ±14.84% ±19.48%
crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='async-sequential'                                              -0.54 %       ±8.12% ±10.82% ±14.12%
crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='sync'                                                           2.37 %       ±8.86% ±11.79% ±15.34%
crypto/randomInt.js n=1000 max=100 min=-10000 mode='async-parallel'                                                            -1.08 %       ±6.15%  ±8.18% ±10.65%
crypto/randomInt.js n=1000 max=100 min=-10000 mode='async-sequential'                                                          -0.77 %       ±6.52%  ±8.68% ±11.31%
crypto/randomInt.js n=1000 max=100 min=-10000 mode='sync'                                                                      -2.01 %       ±9.47% ±12.60% ±16.41%
crypto/randomInt.js n=1000 max=100 min=-100 mode='async-parallel'                                                              -4.11 %       ±7.38%  ±9.87% ±12.96%
crypto/randomInt.js n=1000 max=100 min=-100 mode='async-sequential'                                                            -1.91 %       ±5.75%  ±7.67% ±10.03%
crypto/randomInt.js n=1000 max=100 min=-100 mode='sync'                                                                         5.47 %      ±11.23% ±14.98% ±19.57%
crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='async-parallel'                                                  -0.48 %       ±7.05%  ±9.38% ±12.21%
crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='async-sequential'                                          *     -4.76 %       ±4.67%  ±6.21%  ±8.09%
crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='sync'                                                             1.84 %       ±9.68% ±12.88% ±16.77%
crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='async-parallel'                                                 3.69 %       ±6.40%  ±8.52% ±11.09%
crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='async-sequential'                                              -4.11 %       ±5.83%  ±7.77% ±10.13%
crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='sync'                                                           0.56 %       ±8.40% ±11.20% ±14.60%
crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='async-parallel'                                                  -2.42 %       ±5.80%  ±7.76% ±10.19%
crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='async-sequential'                                          *     -7.11 %       ±6.93%  ±9.27% ±12.14%
crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='sync'                                                            -5.51 %       ±6.45%  ±8.59% ±11.19%
crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='async-parallel'                                      -2.53 %       ±5.36%  ±7.15%  ±9.33%
crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='async-sequential'                                    -1.35 %       ±6.38%  ±8.48% ±11.04%
crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='sync'                                                 1.24 %      ±10.07% ±13.39% ±17.43%
crypto/randomUUID.js disableEntropyCache=0 n=10000000                                                                          -2.20 %       ±3.83%  ±5.10%  ±6.64%
crypto/randomUUID.js disableEntropyCache=1 n=10000000                                                                          -3.36 %       ±4.85%  ±6.47%  ±8.45%
crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='1024' n=500                                                             0.89 %       ±2.80%  ±3.74%  ±4.89%
crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='2048' n=500                                                            -0.92 %       ±2.34%  ±3.11%  ±4.05%
crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='4096' n=500                                                             0.32 %       ±0.93%  ±1.23%  ±1.61%
crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='1024' n=500                                                            -1.61 %       ±2.16%  ±2.87%  ±3.74%
crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='2048' n=500                                                      *      2.96 %       ±2.41%  ±3.24%  ±4.28%
crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='4096' n=500                                                             0.25 %       ±0.94%  ±1.26%  ±1.64%
crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='1024' n=500                                                            -2.46 %       ±2.53%  ±3.37%  ±4.40%
crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='2048' n=500                                                             0.41 %       ±1.45%  ±1.94%  ±2.56%
crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='4096' n=500                                                            -0.53 %       ±1.25%  ±1.66%  ±2.17%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA1' writes=500                                           -0.42 %       ±1.90%  ±2.53%  ±3.30%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA224' writes=500                                         -4.23 %       ±6.61%  ±8.90% ±11.81%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA256' writes=500                                          0.18 %       ±4.58%  ±6.12%  ±8.03%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA384' writes=500                                          3.04 %       ±3.82%  ±5.14%  ±6.80%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA512' writes=500                                         -3.34 %       ±7.00%  ±9.34% ±12.21%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA1' writes=500                                           -1.60 %       ±2.77%  ±3.69%  ±4.80%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA224' writes=500                                          2.81 %       ±6.15%  ±8.22% ±10.78%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA256' writes=500                                          4.33 %       ±6.92%  ±9.32% ±12.36%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA384' writes=500                                         -0.15 %       ±1.44%  ±1.92%  ±2.50%
crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA512' writes=500                                          3.02 %       ±3.79%  ±5.08%  ±6.71%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA1' writes=500                                              3.39 %       ±6.40%  ±8.52% ±11.09%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA224' writes=500                                           -0.21 %      ±14.03% ±18.67% ±24.30%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA256' writes=500                                           -0.98 %       ±4.61%  ±6.15%  ±8.04%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA384' writes=500                                           -0.95 %       ±5.30%  ±7.05%  ±9.18%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA512' writes=500                                           -3.56 %       ±5.63%  ±7.53%  ±9.87%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA1' writes=500                                             -0.58 %      ±13.50% ±17.96% ±23.37%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA224' writes=500                                           -3.34 %      ±13.14% ±17.48% ±22.75%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA256' writes=500                                            6.10 %      ±16.68% ±22.21% ±28.94%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA384' writes=500                                            6.83 %      ±10.37% ±13.90% ±18.31%
crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA512' writes=500                                            1.48 %      ±13.41% ±17.84% ±23.22%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA1' writes=500                                           0.13 %       ±0.90%  ±1.20%  ±1.57%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA224' writes=500                                         0.77 %       ±0.91%  ±1.21%  ±1.58%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA256' writes=500                                         1.28 %       ±2.55%  ±3.42%  ±4.51%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA384' writes=500                                         0.93 %       ±2.04%  ±2.73%  ±3.57%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA512' writes=500                                  *      3.06 %       ±2.43%  ±3.26%  ±4.28%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA1' writes=500                                           1.57 %       ±1.69%  ±2.27%  ±2.99%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA224' writes=500                                        -0.31 %       ±1.00%  ±1.33%  ±1.73%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA256' writes=500                                         0.17 %       ±1.21%  ±1.61%  ±2.10%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA384' writes=500                                        -1.03 %       ±2.17%  ±2.90%  ±3.81%
crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA512' writes=500                                        -0.94 %       ±1.53%  ±2.04%  ±2.66%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA1' writes=500                                           -1.37 %       ±3.39%  ±4.56%  ±6.04%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA224' writes=500                                         -0.14 %       ±2.56%  ±3.42%  ±4.49%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA256' writes=500                                          1.65 %       ±2.09%  ±2.79%  ±3.63%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA384' writes=500                                         -4.54 %       ±5.02%  ±6.75%  ±8.94%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA512' writes=500                                         -0.33 %       ±0.97%  ±1.29%  ±1.69%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA1' writes=500                                           -3.02 %       ±7.79% ±10.39% ±13.55%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA224' writes=500                                         -0.42 %       ±1.81%  ±2.41%  ±3.13%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA256' writes=500                                          0.05 %       ±2.56%  ±3.41%  ±4.43%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA384' writes=500                                         -0.17 %       ±0.87%  ±1.16%  ±1.51%
crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA512' writes=500                                          4.56 %       ±5.83%  ±7.85% ±10.41%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA1' writes=500                                            3.16 %       ±4.77%  ±6.43%  ±8.53%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA224' writes=500                                          1.43 %       ±3.86%  ±5.15%  ±6.73%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA256' writes=500                                         -3.89 %       ±4.75%  ±6.39%  ±8.45%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA384' writes=500                                          1.82 %       ±4.46%  ±5.96%  ±7.80%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA512' writes=500                                         -0.81 %       ±1.51%  ±2.00%  ±2.61%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA1' writes=500                                           -3.75 %       ±5.90%  ±7.95% ±10.55%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA224' writes=500                                          2.18 %       ±3.36%  ±4.50%  ±5.94%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA256' writes=500                                          2.45 %       ±4.52%  ±6.02%  ±7.87%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA384' writes=500                                         -0.96 %       ±4.17%  ±5.59%  ±7.38%
crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA512' writes=500                                          1.42 %       ±3.70%  ±4.97%  ±6.54%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=100 sync='createHash'                                                     3.49 %       ±9.81% ±13.06% ±17.00%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=100 sync='subtle'                                                        -5.42 %       ±8.72% ±11.60% ±15.10%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=10 sync='createHash'                                                      5.59 %       ±9.63% ±12.82% ±16.68%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=10 sync='subtle'                                                          0.26 %       ±7.26%  ±9.66% ±12.57%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=20 sync='createHash'                                                      0.78 %      ±12.64% ±16.85% ±21.98%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=20 sync='subtle'                                                          4.90 %       ±8.44% ±11.24% ±14.65%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=50 sync='createHash'                                                     -3.63 %       ±9.08% ±12.08% ±15.73%
crypto/webcrypto-digest.js n=1000 method='SHA-1' data=50 sync='subtle'                                                          1.19 %       ±7.79% ±10.36% ±13.49%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=100 sync='createHash'                                                   4.05 %      ±11.69% ±15.60% ±20.39%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=100 sync='subtle'                                                      -0.36 %       ±8.68% ±11.55% ±15.03%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=10 sync='createHash'                                                    4.09 %       ±9.05% ±12.04% ±15.68%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=10 sync='subtle'                                                       -0.85 %       ±7.38%  ±9.83% ±12.79%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=20 sync='createHash'                                                   -5.72 %      ±10.73% ±14.27% ±18.57%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=20 sync='subtle'                                                       -1.80 %       ±7.64% ±10.16% ±13.23%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=50 sync='createHash'                                                    0.12 %       ±9.15% ±12.18% ±15.85%
crypto/webcrypto-digest.js n=1000 method='SHA-256' data=50 sync='subtle'                                                        4.25 %       ±8.17% ±10.88% ±14.16%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=100 sync='createHash'                                                  -3.23 %       ±8.37% ±11.14% ±14.50%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=100 sync='subtle'                                                      -2.35 %       ±7.69% ±10.24% ±13.33%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=10 sync='createHash'                                                   -4.16 %       ±8.77% ±11.67% ±15.19%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=10 sync='subtle'                                                       -5.11 %       ±7.55% ±10.04% ±13.07%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=20 sync='createHash'                                                    1.79 %       ±9.17% ±12.20% ±15.88%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=20 sync='subtle'                                                        1.07 %       ±8.19% ±10.91% ±14.22%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=50 sync='createHash'                                                   -1.41 %       ±9.14% ±12.16% ±15.83%
crypto/webcrypto-digest.js n=1000 method='SHA-384' data=50 sync='subtle'                                                       -1.84 %       ±7.41%  ±9.87% ±12.84%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=100 sync='createHash'                                                  -2.31 %      ±10.79% ±14.38% ±18.75%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=100 sync='subtle'                                                      -0.67 %       ±8.00% ±10.64% ±13.85%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=10 sync='createHash'                                                    2.35 %      ±12.91% ±17.20% ±22.44%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=10 sync='subtle'                                                       -5.72 %       ±8.80% ±11.71% ±15.25%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=20 sync='createHash'                                                   -3.93 %       ±8.62% ±11.49% ±14.98%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=20 sync='subtle'                                                       -3.18 %       ±8.90% ±11.84% ±15.42%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=50 sync='createHash'                                                   -1.55 %       ±7.90% ±10.52% ±13.69%
crypto/webcrypto-digest.js n=1000 method='SHA-512' data=50 sync='subtle'                                                       -1.02 %       ±7.82% ±10.40% ±13.54%
misc/arguments.js n=1000000 method='argumentsAndApply'                                                                         -0.33 %       ±1.40%  ±1.87%  ±2.43%
misc/arguments.js n=1000000 method='predefined'                                                                                -0.99 %       ±1.48%  ±1.97%  ±2.56%
misc/arguments.js n=1000000 method='restAndApply'                                                                               1.52 %       ±3.80%  ±5.06%  ±6.60%
misc/arguments.js n=1000000 method='restAndSpread'                                                                             -1.13 %       ±1.33%  ±1.77%  ±2.31%
misc/freelist.js n=100000                                                                                                       1.12 %       ±2.27%  ±3.02%  ±3.95%
misc/getstringwidth.js n=100000 type='ascii'                                                                                    0.09 %       ±0.94%  ±1.26%  ±1.64%
misc/getstringwidth.js n=100000 type='emojiseq'                                                                                -0.98 %       ±5.92%  ±7.88% ±10.26%
misc/getstringwidth.js n=100000 type='fullwidth'                                                                                0.72 %       ±5.99%  ±7.97% ±10.39%
misc/getstringwidth.js n=100000 type='mixed'                                                                                   -0.38 %       ±3.25%  ±4.33%  ±5.64%
misc/hidestackframes.js n=100000 type='direct-call-noerr'                                                                       2.30 %       ±6.78%  ±9.05% ±11.85%
misc/hidestackframes.js n=100000 type='direct-call-throw'                                                                       2.80 %       ±4.32%  ±5.74%  ±7.48%
misc/hidestackframes.js n=100000 type='hide-stackframes-noerr'                                                                  2.94 %       ±5.81%  ±7.74% ±10.10%
misc/hidestackframes.js n=100000 type='hide-stackframes-throw'                                                                  1.11 %       ±3.22%  ±4.29%  ±5.58%
misc/object-property-bench.js n=1000000000 method='property'                                                                   -1.22 %       ±3.21%  ±4.30%  ±5.66%
misc/object-property-bench.js n=1000000000 method='string'                                                                     -1.70 %       ±5.82%  ±7.75% ±10.10%
misc/object-property-bench.js n=1000000000 method='symbol'                                                                      0.96 %       ±4.12%  ±5.48%  ±7.14%
misc/object-property-bench.js n=1000000000 method='variable'                                                                   -0.16 %       ±3.15%  ±4.20%  ±5.49%
misc/print.js code='1' dur=1                                                                                             *      1.00 %       ±0.98%  ±1.31%  ±1.70%
misc/print.js code='process' dur=1                                                                                              0.68 %       ±1.29%  ±1.72%  ±2.25%
misc/print.js code='process.versions' dur=1                                                                                     0.38 %       ±1.11%  ±1.48%  ±1.92%
misc/print.js code='"string"' dur=1                                                                                             0.97 %       ±1.21%  ±1.60%  ±2.09%
misc/punycode.js val='belgië.icom.museum' n=1024 method='icu'                                                                   0.36 %       ±7.33%  ±9.76% ±12.72%
misc/punycode.js val='belgië.icom.museum' n=1024 method='punycode'                                                              3.47 %       ±5.10%  ±6.80%  ±8.86%
misc/punycode.js val='českárepublika.icom.museum' n=1024 method='icu'                                                           0.22 %       ±9.19% ±12.25% ±15.99%
misc/punycode.js val='českárepublika.icom.museum' n=1024 method='punycode'                                                      1.13 %       ±4.38%  ±5.83%  ±7.60%
misc/punycode.js val='éire.icom.museum' n=1024 method='icu'                                                                     0.84 %       ±6.88%  ±9.20% ±12.06%
misc/punycode.js val='éire.icom.museum' n=1024 method='punycode'                                                               -1.15 %       ±6.83%  ±9.09% ±11.84%
misc/punycode.js val='ísland.icom.museum' n=1024 method='icu'                                                                  -1.18 %       ±6.79%  ±9.03% ±11.75%
misc/punycode.js val='ísland.icom.museum' n=1024 method='punycode'                                                             -0.17 %       ±7.50%  ±9.98% ±12.99%
misc/punycode.js val='magyarország.icom.museum' n=1024 method='icu'                                                            -5.57 %       ±6.16%  ±8.20% ±10.67%
misc/punycode.js val='magyarország.icom.museum' n=1024 method='punycode'                                                       -2.93 %       ±4.19%  ±5.58%  ±7.29%
misc/punycode.js val='österreich.icom.museum' n=1024 method='icu'                                                               0.83 %       ±7.40%  ±9.84% ±12.81%
misc/punycode.js val='österreich.icom.museum' n=1024 method='punycode'                                                   *      4.99 %       ±4.51%  ±6.00%  ±7.81%
misc/punycode.js val='افغانستا.icom.museum' n=1024 method='icu'                                                                -3.78 %       ±8.91% ±11.88% ±15.50%
misc/punycode.js val='افغانستا.icom.museum' n=1024 method='punycode'                                                           -3.13 %       ±4.55%  ±6.06%  ±7.90%
misc/punycode.js val='الأردن.icom.museum' n=1024 method='icu'                                                                   1.13 %       ±6.91%  ±9.20% ±11.98%
misc/punycode.js val='الأردن.icom.museum' n=1024 method='punycode'                                                              1.00 %       ±3.89%  ±5.18%  ±6.75%
misc/punycode.js val='الجزائر.icom.museum' n=1024 method='icu'                                                                 -1.36 %       ±7.08%  ±9.42% ±12.27%
misc/punycode.js val='الجزائر.icom.museum' n=1024 method='punycode'                                                             0.85 %       ±5.36%  ±7.13%  ±9.28%
misc/punycode.js val='القمر.icom.museum' n=1024 method='icu'                                                                    2.66 %       ±7.30%  ±9.71% ±12.64%
misc/punycode.js val='القمر.icom.museum' n=1024 method='punycode'                                                              -0.29 %       ±4.25%  ±5.65%  ±7.36%
misc/punycode.js val='ايران.icom.museum' n=1024 method='icu'                                                                   -6.12 %       ±6.62%  ±8.82% ±11.49%
misc/punycode.js val='ايران.icom.museum' n=1024 method='punycode'                                                              -3.61 %       ±3.93%  ±5.23%  ±6.81%
misc/punycode.js val='تشادر.icom.museum' n=1024 method='icu'                                                                    3.06 %       ±8.24% ±10.96% ±14.28%
misc/punycode.js val='تشادر.icom.museum' n=1024 method='punycode'                                                               2.14 %       ±3.57%  ±4.75%  ±6.18%
misc/punycode.js val='مصر.icom.museum' n=1024 method='icu'                                                                      4.63 %       ±6.29%  ±8.38% ±10.93%
misc/punycode.js val='مصر.icom.museum' n=1024 method='punycode'                                                                -2.92 %       ±4.65%  ±6.19%  ±8.08%
misc/punycode.js val='איקו״ם.ישראל.museum' n=1024 method='icu'                                                                 -3.81 %       ±8.28% ±11.08% ±14.53%
misc/punycode.js val='איקו״ם.ישראל.museum' n=1024 method='punycode'                                                            -5.40 %       ±6.12%  ±8.15% ±10.61%
misc/punycode.js val='ελλάδα.icom.museum' n=1024 method='icu'                                                            *      8.22 %       ±7.56% ±10.06% ±13.10%
misc/punycode.js val='ελλάδα.icom.museum' n=1024 method='punycode'                                                             -0.55 %       ±4.36%  ±5.80%  ±7.56%
misc/punycode.js val='κυπρος.icom.museum' n=1024 method='icu'                                                                  -0.92 %       ±9.30% ±12.37% ±16.10%
misc/punycode.js val='κυπρος.icom.museum' n=1024 method='punycode'                                                              3.61 %       ±3.98%  ±5.30%  ±6.91%
misc/punycode.js val='беларусь.icom.museum' n=1024 method='icu'                                                                -3.90 %       ±6.25%  ±8.33% ±10.86%
misc/punycode.js val='беларусь.icom.museum' n=1024 method='punycode'                                                           -4.36 %       ±4.79%  ±6.37%  ±8.30%
misc/punycode.js val='българия.icom.museum' n=1024 method='icu'                                                                -0.02 %       ±6.96%  ±9.27% ±12.10%
misc/punycode.js val='българия.icom.museum' n=1024 method='punycode'                                                           -1.12 %       ±6.08%  ±8.09% ±10.53%
misc/punycode.js val='भारत.icom.museum' n=1024 method='icu'                                                                    -3.67 %       ±7.20%  ±9.60% ±12.53%
misc/punycode.js val='भारत.icom.museum' n=1024 method='punycode'                                                               -1.46 %       ±5.88%  ±7.84% ±10.21%
misc/punycode.js val='বাংলাদেশ.icom.museum' n=1024 method='icu'                                                                -3.30 %       ±7.05%  ±9.40% ±12.28%
misc/punycode.js val='বাংলাদেশ.icom.museum' n=1024 method='punycode'                                                           -3.49 %       ±5.81%  ±7.74% ±10.08%
misc/punycode.js val='中国.icom.museum' n=1024 method='icu'                                                                    -1.66 %       ±8.83% ±11.75% ±15.29%
misc/punycode.js val='中国.icom.museum' n=1024 method='punycode'                                                               -2.52 %       ±6.16%  ±8.20% ±10.67%
misc/punycode.js val='日本.icom.museum' n=1024 method='icu'                                                                     0.71 %       ±6.89%  ±9.17% ±11.96%
misc/punycode.js val='日本.icom.museum' n=1024 method='punycode'                                                               -4.09 %       ±5.94%  ±7.91% ±10.29%
misc/startup.js mode='process' script='benchmark/fixtures/require-builtins' dur=1                                              -0.83 %       ±1.33%  ±1.78%  ±2.32%
misc/startup.js mode='process' script='benchmark/fixtures/require-cachable' dur=1                                              -0.50 %       ±1.33%  ±1.77%  ±2.31%
misc/startup.js mode='process' script='test/fixtures/semicolon' dur=1                                                           0.04 %       ±1.34%  ±1.79%  ±2.33%
misc/startup.js mode='worker' script='benchmark/fixtures/require-builtins' dur=1                                               -1.81 %       ±2.81%  ±3.74%  ±4.87%
misc/startup.js mode='worker' script='benchmark/fixtures/require-cachable' dur=1                                               -0.13 %       ±3.43%  ±4.57%  ±5.95%
misc/startup.js mode='worker' script='test/fixtures/semicolon' dur=1                                                           -0.53 %       ±2.57%  ±3.42%  ±4.45%
misc/trace.js method='isTraceCategoryEnabled' n=100000                                                                          4.03 %       ±9.95% ±13.25% ±17.25%
misc/trace.js method='trace' n=100000                                                                                           1.97 %       ±3.25%  ±4.32%  ±5.63%
misc/util-extend-vs-object-assign.js n=100000 type='assign'                                                                     1.94 %       ±2.20%  ±2.92%  ±3.81%
misc/util-extend-vs-object-assign.js n=100000 type='extend'                                                                    -0.04 %       ±2.00%  ±2.66%  ±3.46%
streams/creation.js kind='duplex' n=50000000                                                                                    0.77 %       ±2.15%  ±2.86%  ±3.73%
streams/creation.js kind='readable' n=50000000                                                                                 -0.07 %       ±1.49%  ±1.98%  ±2.58%
streams/creation.js kind='transform' n=50000000                                                                                -1.29 %       ±5.53%  ±7.36%  ±9.58%
streams/creation.js kind='writable' n=50000000                                                                           *     -1.37 %       ±1.29%  ±1.71%  ±2.23%
streams/pipe.js n=5000000                                                                                                       0.69 %       ±2.69%  ±3.57%  ±4.65%
streams/pipe-object-mode.js n=5000000                                                                                           3.21 %       ±5.64%  ±7.51%  ±9.80%
streams/readable-async-iterator.js sync='no' n=100000                                                                           2.98 %       ±3.31%  ±4.41%  ±5.74%
streams/readable-async-iterator.js sync='yes' n=100000                                                                         -0.41 %       ±5.25%  ±6.98%  ±9.08%
streams/readable-bigread.js n=1000                                                                                             -1.96 %       ±3.36%  ±4.48%  ±5.84%
streams/readable-bigunevenread.js n=1000                                                                                       -0.09 %       ±4.01%  ±5.34%  ±6.95%
streams/readable-boundaryread.js type='buffer' n=2000                                                                          -1.54 %       ±1.80%  ±2.39%  ±3.12%
streams/readable-boundaryread.js type='string' n=2000                                                                          -1.72 %       ±3.37%  ±4.48%  ±5.83%
streams/readable-from.js n=10000000                                                                                             1.21 %       ±4.20%  ±5.59%  ±7.27%
streams/readable-readall.js n=5000                                                                                              0.68 %       ±3.11%  ±4.14%  ±5.39%
streams/readable-unevenread.js n=1000                                                                                          -1.03 %       ±3.14%  ±4.18%  ±5.45%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='no' n=2000000                                          -0.97 %       ±3.05%  ±4.06%  ±5.29%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='yes' n=2000000                                          0.97 %      ±11.88% ±15.82% ±20.63%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='no' n=2000000                                          0.76 %       ±2.38%  ±3.17%  ±4.13%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='yes' n=2000000                                        -6.28 %       ±8.72% ±11.62% ±15.15%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='no' n=2000000                                          2.11 %       ±2.89%  ±3.85%  ±5.01%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='yes' n=2000000                                         5.17 %      ±10.95% ±14.57% ±18.96%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='no' n=2000000                                        -1.25 %       ±2.19%  ±2.91%  ±3.79%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='yes' n=2000000                                        1.37 %      ±12.89% ±17.17% ±22.38%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='no' n=2000000                                          2.49 %       ±4.23%  ±5.63%  ±7.34%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='yes' n=2000000                                         2.29 %       ±2.70%  ±3.60%  ±4.70%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='no' n=2000000                                        -2.53 %       ±4.03%  ±5.37%  ±6.99%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='yes' n=2000000                                       -0.04 %       ±2.08%  ±2.77%  ±3.61%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='no' n=2000000                                        -0.25 %       ±6.10%  ±8.15% ±10.68%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='yes' n=2000000                                       -0.40 %       ±2.19%  ±2.91%  ±3.79%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='no' n=2000000                                        0.34 %       ±3.59%  ±4.77%  ±6.21%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='yes' n=2000000                                      -2.64 %       ±4.51%  ±6.05%  ±7.99%
timers/immediate.js type='breadth1' n=5000000                                                                                   1.53 %       ±4.23%  ±5.63%  ±7.34%
timers/immediate.js type='breadth4' n=5000000                                                                                  -2.79 %       ±3.00%  ±4.00%  ±5.21%
timers/immediate.js type='breadth' n=5000000                                                                                   -4.12 %       ±4.35%  ±5.79%  ±7.54%
timers/immediate.js type='clear' n=5000000                                                                                     -0.39 %       ±2.47%  ±3.29%  ±4.29%
timers/immediate.js type='depth1' n=5000000                                                                                    -0.59 %       ±1.63%  ±2.17%  ±2.85%
timers/immediate.js type='depth' n=5000000                                                                                      1.18 %       ±1.94%  ±2.58%  ±3.36%
timers/set-immediate-breadth-args.js n=5000000                                                                                 -0.71 %       ±2.72%  ±3.63%  ±4.73%
timers/set-immediate-breadth.js n=10000000                                                                                     -1.21 %       ±2.52%  ±3.35%  ±4.37%
timers/set-immediate-depth-args.js n=5000000                                                                                    0.98 %       ±1.18%  ±1.58%  ±2.08%
timers/timers-breadth-args.js n=1000000                                                                                         1.44 %       ±3.11%  ±4.14%  ±5.40%
timers/timers-breadth.js n=5000000                                                                                              1.30 %       ±5.18%  ±6.90%  ±8.99%
timers/timers-cancel-pooled.js n=5000000                                                                                        1.40 %      ±11.90% ±15.84% ±20.62%
timers/timers-cancel-unpooled.js direction='end' n=1000000                                                                     -5.57 %      ±19.20% ±25.56% ±33.30%
timers/timers-cancel-unpooled.js direction='start' n=1000000                                                                   -5.58 %       ±7.67% ±10.22% ±13.33%
timers/timers-depth.js n=1000                                                                                                   0.00 %       ±0.35%  ±0.46%  ±0.60%
timers/timers-insert-pooled.js n=5000000                                                                                **     -5.46 %       ±3.51%  ±4.67%  ±6.08%
timers/timers-insert-unpooled.js direction='end' n=1000000                                                                      3.95 %       ±4.20%  ±5.58%  ±7.27%
timers/timers-insert-unpooled.js direction='start' n=1000000                                                                    1.66 %       ±4.03%  ±5.37%  ±7.00%
timers/timers-timeout-nexttick.js n=50000                                                                                      -0.09 %       ±2.59%  ±3.45%  ±4.50%
timers/timers-timeout-nexttick.js n=5000000                                                                                    -1.92 %       ±7.30%  ±9.72% ±12.66%
timers/timers-timeout-pooled.js n=10000000                                                                                     -5.24 %       ±6.18%  ±8.23% ±10.71%
timers/timers-timeout-unpooled.js n=1000000                                                                                    -2.57 %       ±7.11%  ±9.50% ±12.46%
util/format.js type='many-%' n=100000                                                                                          -4.24 %       ±4.40%  ±5.87%  ±7.67%
util/format.js type='no-replace-2' n=100000                                                                                    -0.54 %       ±6.21%  ±8.26% ±10.75%
util/format.js type='no-replace' n=100000                                                                                      -0.82 %       ±4.77%  ±6.35%  ±8.26%
util/format.js type='number' n=100000                                                                                           2.18 %       ±6.06%  ±8.06% ±10.49%
util/format.js type='object-%s' n=100000                                                                                       -1.33 %       ±2.75%  ±3.66%  ±4.76%
util/format.js type='object-to-string' n=100000                                                                                -2.74 %       ±4.67%  ±6.22%  ±8.09%
util/format.js type='only-objects' n=100000                                                                                    -0.06 %       ±2.11%  ±2.81%  ±3.65%
util/format.js type='replace-object' n=100000                                                                                  -0.88 %       ±4.26%  ±5.67%  ±7.39%
util/format.js type='string-2' n=100000                                                                                         0.60 %       ±4.95%  ±6.59%  ±8.59%
util/format.js type='string' n=100000                                                                                           0.48 %       ±5.69%  ±7.58%  ±9.88%
util/format.js type='unknown' n=100000                                                                                          0.14 %       ±6.19%  ±8.23% ±10.71%
util/inspect-array.js type='denseArray' len=100000 n=500                                                                        0.37 %       ±6.46%  ±8.60% ±11.19%
util/inspect-array.js type='denseArray' len=100 n=500                                                                          -4.32 %       ±4.66%  ±6.20%  ±8.09%
util/inspect-array.js type='denseArray_showHidden' len=100000 n=500                                                            -1.06 %       ±4.28%  ±5.69%  ±7.41%
util/inspect-array.js type='denseArray_showHidden' len=100 n=500                                                         *      5.82 %       ±5.13%  ±6.82%  ±8.88%
util/inspect-array.js type='mixedArray' len=100000 n=500                                                                        2.77 %       ±3.12%  ±4.15%  ±5.40%
util/inspect-array.js type='mixedArray' len=100 n=500                                                                          -2.87 %       ±4.72%  ±6.28%  ±8.18%
util/inspect-array.js type='sparseArray' len=100000 n=500                                                                       0.48 %       ±5.82%  ±7.75% ±10.09%
util/inspect-array.js type='sparseArray' len=100 n=500                                                                          3.34 %       ±6.40%  ±8.54% ±11.18%
util/inspect.js option='colors' method='Array' n=20000                                                                         -0.53 %       ±2.71%  ±3.61%  ±4.71%
util/inspect.js option='colors' method='Date' n=20000                                                                           0.56 %       ±5.61%  ±7.47%  ±9.74%
util/inspect.js option='colors' method='Error' n=20000                                                                   *     -5.09 %       ±4.01%  ±5.33%  ±6.95%
util/inspect.js option='colors' method='Number' n=20000                                                                         2.00 %       ±7.57% ±10.07% ±13.11%
util/inspect.js option='colors' method='Object_deep_ln' n=20000                                                                -1.71 %       ±2.62%  ±3.49%  ±4.55%
util/inspect.js option='colors' method='Object_empty' n=20000                                                                   1.19 %       ±6.21%  ±8.26% ±10.76%
util/inspect.js option='colors' method='Object' n=20000                                                                         2.22 %       ±3.22%  ±4.29%  ±5.59%
util/inspect.js option='colors' method='Set' n=20000                                                                            2.92 %       ±5.38%  ±7.16%  ±9.32%
util/inspect.js option='colors' method='String_boxed' n=20000                                                                   0.60 %       ±4.34%  ±5.78%  ±7.52%
util/inspect.js option='colors' method='String_complex' n=20000                                                         **     -8.53 %       ±6.20%  ±8.29% ±10.86%
util/inspect.js option='colors' method='String' n=20000                                                                         3.65 %       ±7.04%  ±9.36% ±12.19%
util/inspect.js option='colors' method='TypedArray_extra' n=20000                                                              -1.91 %       ±3.39%  ±4.52%  ±5.90%
util/inspect.js option='colors' method='TypedArray' n=20000                                                                     0.81 %       ±2.51%  ±3.34%  ±4.36%
util/inspect.js option='none' method='Array' n=20000                                                                           -0.16 %       ±5.01%  ±6.67%  ±8.70%
util/inspect.js option='none' method='Date' n=20000                                                                             2.27 %       ±6.06%  ±8.06% ±10.50%
util/inspect.js option='none' method='Error' n=20000                                                                     *     -5.54 %       ±5.03%  ±6.70%  ±8.73%
util/inspect.js option='none' method='Number' n=20000                                                                           1.47 %       ±6.06%  ±8.06% ±10.49%
util/inspect.js option='none' method='Object_deep_ln' n=20000                                                                   0.40 %       ±2.70%  ±3.59%  ±4.67%
util/inspect.js option='none' method='Object_empty' n=20000                                                                     2.76 %       ±6.60%  ±8.78% ±11.43%
util/inspect.js option='none' method='Object' n=20000                                                                           4.36 %       ±4.80%  ±6.39%  ±8.32%
util/inspect.js option='none' method='Set' n=20000                                                                              1.85 %       ±4.76%  ±6.33%  ±8.24%
util/inspect.js option='none' method='String_boxed' n=20000                                                                    -3.10 %       ±4.72%  ±6.28%  ±8.19%
util/inspect.js option='none' method='String_complex' n=20000                                                                   2.24 %       ±8.19% ±10.91% ±14.23%
util/inspect.js option='none' method='String' n=20000                                                                          -0.69 %       ±7.29%  ±9.70% ±12.63%
util/inspect.js option='none' method='TypedArray_extra' n=20000                                                                -2.11 %       ±5.31%  ±7.08%  ±9.26%
util/inspect.js option='none' method='TypedArray' n=20000                                                                      -2.72 %       ±5.18%  ±6.93%  ±9.09%
util/inspect.js option='showHidden' method='Array' n=20000                                                                     -1.93 %       ±2.27%  ±3.04%  ±4.00%
util/inspect.js option='showHidden' method='Date' n=20000                                                                      -4.95 %       ±5.18%  ±6.91%  ±9.04%
util/inspect.js option='showHidden' method='Error' n=20000                                                                     -0.70 %       ±4.48%  ±5.96%  ±7.77%
util/inspect.js option='showHidden' method='Number' n=20000                                                                     0.10 %       ±4.87%  ±6.48%  ±8.44%
util/inspect.js option='showHidden' method='Object_deep_ln' n=20000                                                             2.68 %       ±3.40%  ±4.53%  ±5.89%
util/inspect.js option='showHidden' method='Object_empty' n=20000                                                               4.05 %       ±7.01%  ±9.33% ±12.15%
util/inspect.js option='showHidden' method='Object' n=20000                                                              *      5.78 %       ±5.34%  ±7.10%  ±9.24%
util/inspect.js option='showHidden' method='Set' n=20000                                                                 *      5.91 %       ±5.40%  ±7.19%  ±9.35%
util/inspect.js option='showHidden' method='String_boxed' n=20000                                                               2.28 %       ±4.96%  ±6.60%  ±8.60%
util/inspect.js option='showHidden' method='String_complex' n=20000                                                             2.23 %       ±8.04% ±10.72% ±14.01%
util/inspect.js option='showHidden' method='String' n=20000                                                                    -0.11 %       ±5.12%  ±6.82%  ±8.89%
util/inspect.js option='showHidden' method='TypedArray_extra' n=20000                                                           2.51 %       ±3.74%  ±4.99%  ±6.53%
util/inspect.js option='showHidden' method='TypedArray' n=20000                                                                 0.37 %       ±3.21%  ±4.27%  ±5.56%
util/inspect-proxy.js isProxy=0 showProxy=0 n=100000                                                                           -0.80 %       ±2.32%  ±3.10%  ±4.06%
util/inspect-proxy.js isProxy=0 showProxy=1 n=100000                                                                            0.74 %       ±2.35%  ±3.13%  ±4.08%
util/inspect-proxy.js isProxy=1 showProxy=0 n=100000                                                                           -1.82 %       ±2.14%  ±2.85%  ±3.71%
util/inspect-proxy.js isProxy=1 showProxy=1 n=100000                                                                     *     -4.03 %       ±3.21%  ±4.29%  ±5.63%
util/normalize-encoding.js n=100000 input=''                                                                                   -1.90 %       ±6.47%  ±8.63% ±11.26%
util/normalize-encoding.js n=100000 input='base64'                                                                             -1.25 %       ±5.61%  ±7.46%  ±9.71%
util/normalize-encoding.js n=100000 input='BASE64'                                                                              0.70 %       ±6.43%  ±8.57% ±11.16%
util/normalize-encoding.js n=100000 input='binary'                                                                             -2.88 %       ±5.36%  ±7.14%  ±9.31%
util/normalize-encoding.js n=100000 input='BINARY'                                                                              1.34 %       ±5.43%  ±7.23%  ±9.41%
util/normalize-encoding.js n=100000 input='foo'                                                                                 1.28 %       ±6.62%  ±8.80% ±11.46%
util/normalize-encoding.js n=100000 input='group_common'                                                                       -5.24 %       ±5.79%  ±7.71% ±10.04%
util/normalize-encoding.js n=100000 input='group_misc'                                                                         -0.82 %       ±6.67%  ±8.87% ±11.55%
util/normalize-encoding.js n=100000 input='group_uncommon'                                                                     -2.63 %       ±6.15%  ±8.20% ±10.71%
util/normalize-encoding.js n=100000 input='group_upper'                                                                         2.95 %       ±5.63%  ±7.52%  ±9.86%
util/normalize-encoding.js n=100000 input='hex'                                                                                 1.71 %       ±6.83%  ±9.09% ±11.83%
util/normalize-encoding.js n=100000 input='HEX'                                                                                 3.94 %       ±6.33%  ±8.44% ±11.02%
util/normalize-encoding.js n=100000 input='latin1'                                                                             -0.23 %       ±5.32%  ±7.07%  ±9.21%
util/normalize-encoding.js n=100000 input='ucs2'                                                                                2.34 %       ±5.40%  ±7.21%  ±9.42%
util/normalize-encoding.js n=100000 input='UCS2'                                                                                2.98 %       ±6.82%  ±9.08% ±11.85%
util/normalize-encoding.js n=100000 input='undefined'                                                                          -0.57 %       ±6.42%  ±8.55% ±11.13%
util/normalize-encoding.js n=100000 input='utf16le'                                                                             2.19 %       ±7.92% ±10.54% ±13.72%
util/normalize-encoding.js n=100000 input='UTF16LE'                                                                            -2.29 %       ±5.37%  ±7.15%  ±9.30%
util/normalize-encoding.js n=100000 input='utf-8'                                                                               4.94 %       ±5.72%  ±7.63%  ±9.95%
util/normalize-encoding.js n=100000 input='utf8'                                                                                2.16 %       ±7.27%  ±9.68% ±12.63%
util/normalize-encoding.js n=100000 input='Utf8'                                                                                4.23 %       ±7.08%  ±9.45% ±12.38%
util/normalize-encoding.js n=100000 input='UTF-8'                                                                               4.87 %       ±6.92%  ±9.20% ±11.98%
util/normalize-encoding.js n=100000 input='UTF8'                                                                               -3.44 %       ±6.77%  ±9.02% ±11.75%
util/priority-queue.js n=100000                                                                                                -3.23 %       ±4.54%  ±6.05%  ±7.89%
util/splice-one.js size=100 pos='end' n=100000                                                                                  0.86 %       ±6.88%  ±9.16% ±11.93%
util/splice-one.js size=100 pos='middle' n=100000                                                                               2.38 %       ±5.65%  ±7.52%  ±9.78%
util/splice-one.js size=100 pos='start' n=100000                                                                               -0.13 %       ±4.62%  ±6.15%  ±8.01%
util/splice-one.js size=10 pos='end' n=100000                                                                                  -1.62 %       ±4.37%  ±5.81%  ±7.57%
util/splice-one.js size=10 pos='middle' n=100000                                                                               -1.07 %       ±4.84%  ±6.44%  ±8.39%
util/splice-one.js size=10 pos='start' n=100000                                                                                 1.47 %       ±3.83%  ±5.11%  ±6.67%
util/splice-one.js size=500 pos='end' n=100000                                                                                  3.71 %       ±6.02%  ±8.01% ±10.43%
util/splice-one.js size=500 pos='middle' n=100000                                                                              -2.58 %       ±2.99%  ±3.99%  ±5.21%
util/splice-one.js size=500 pos='start' n=100000                                                                                1.50 %       ±2.98%  ±3.97%  ±5.17%
util/to-usv-string.js size=100 n=100000                                                                                        -0.73 %       ±2.12%  ±2.82%  ±3.68%
util/to-usv-string.js size=10 n=100000                                                                                          1.23 %       ±4.86%  ±6.47%  ±8.44%
util/to-usv-string.js size=500 n=100000                                                                                         0.53 %       ±2.65%  ±3.54%  ±4.63%
util/type-check.js n=100000 argument='false-object' version='js' type='ArrayBufferView'                                         3.62 %       ±6.87%  ±9.14% ±11.89%
util/type-check.js n=100000 argument='false-object' version='js' type='TypedArray'                                              0.40 %       ±5.86%  ±7.81% ±10.17%
util/type-check.js n=100000 argument='false-object' version='js' type='Uint8Array'                                             -0.41 %       ±5.91%  ±7.86% ±10.23%
util/type-check.js n=100000 argument='false-object' version='native' type='ArrayBufferView'                                    -2.05 %       ±6.77%  ±9.01% ±11.73%
util/type-check.js n=100000 argument='false-object' version='native' type='TypedArray'                                         -0.48 %       ±4.96%  ±6.61%  ±8.61%
util/type-check.js n=100000 argument='false-object' version='native' type='Uint8Array'                                          2.77 %       ±6.38%  ±8.50% ±11.11%
util/type-check.js n=100000 argument='false-primitive' version='js' type='ArrayBufferView'                                     -4.74 %       ±5.49%  ±7.31%  ±9.51%
util/type-check.js n=100000 argument='false-primitive' version='js' type='TypedArray'                                          -1.22 %       ±5.54%  ±7.38%  ±9.62%
util/type-check.js n=100000 argument='false-primitive' version='js' type='Uint8Array'                                           1.36 %      ±10.09% ±13.50% ±17.73%
util/type-check.js n=100000 argument='false-primitive' version='native' type='ArrayBufferView'                                  5.30 %       ±6.70%  ±8.92% ±11.65%
util/type-check.js n=100000 argument='false-primitive' version='native' type='TypedArray'                                       0.48 %       ±6.44%  ±8.57% ±11.16%
util/type-check.js n=100000 argument='false-primitive' version='native' type='Uint8Array'                                       2.56 %       ±5.73%  ±7.63%  ±9.93%
util/type-check.js n=100000 argument='true' version='js' type='ArrayBufferView'                                                -2.88 %       ±6.00%  ±7.99% ±10.40%
util/type-check.js n=100000 argument='true' version='js' type='TypedArray'                                                     -2.34 %       ±5.90%  ±7.87% ±10.29%
util/type-check.js n=100000 argument='true' version='js' type='Uint8Array'                                                     -0.18 %       ±6.50%  ±8.66% ±11.29%
util/type-check.js n=100000 argument='true' version='native' type='ArrayBufferView'                                      *     -7.04 %       ±5.63%  ±7.51%  ±9.84%
util/type-check.js n=100000 argument='true' version='native' type='TypedArray'                                                 -0.33 %       ±5.37%  ±7.15%  ±9.31%
util/type-check.js n=100000 argument='true' version='native' type='Uint8Array'                                                  2.82 %       ±7.42%  ±9.88% ±12.87%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 841 comparisons, you can thus
expect the following amount of false-positive results:
  42.05 false positives, when considering a   5% risk acceptance (*, **, ***),
  8.41 false positives, when considering a   1% risk acceptance (**, ***),
  0.84 false positives, when considering a 0.1% risk acceptance (***)

@mcollina
Copy link
Member

AFAIK performance hit from freezing was a thing in the past, but in modern v8 there's no difference anymore.

Amazing progress, I might have missed it. Have you got a link?

@LiviaMedeiros
Copy link
Contributor Author

LiviaMedeiros commented May 21, 2022

Amazing progress, I might have missed it. Have you got a link?

Not 100% sure if these are exhaustive or there were follow-ups:
https://codereview.chromium.org/135903014 / https://bugs.chromium.org/p/v8/issues/detail?id=1858 (Obect.freeze)
https://codereview.chromium.org/776143005 / https://bugs.chromium.org/p/v8/issues/detail?id=3662 (Object.seal, Object.preventExtensions)

(for my tests I ran destructuring, not iterating)

Edit: according to https://bugs.chromium.org/p/chromium/issues/detail?id=980227, there still are issues with some particular operations.

I tried to benchmark their 1000-element array in Chromium and got this (higher is better):

  • [ ...frozenArray ] - 2_354_212 ops/s
  • [ ...array ] - 2_229_525 ops/s
  • frozenArray.slice() - 13_790 ops/s
  • array.slice() - 2_228_496 ops/s

But these operations shouldn't be applicable to this partucular empty object.

@nodejs-github-bot

This comment was marked as outdated.

@LiviaMedeiros LiviaMedeiros added the needs-citgm PRs that need a CITGM CI run. label May 22, 2022
@LiviaMedeiros
Copy link
Contributor Author

CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2939/

Just in case of some sort of really elusive errors.

@nodejs-github-bot
Copy link
Collaborator

lib/fs.js Outdated Show resolved Hide resolved
lib/fs.js Outdated Show resolved Hide resolved
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
PR-URL: #43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
PR-URL: nodejs/node#43159
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. commit-queue-failed An error occurred while landing this pull request using GitHub Actions. lib / src Issues and PRs related to general changes in the lib or src directory. needs-benchmark-ci PR that need a benchmark CI run. needs-ci PRs that need a full CI run. needs-citgm PRs that need a CITGM CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants