buffer: fix out of range for toString
Fixes: https://github.com/nodejs/node/issues/52298
Hi! It seems part of the commit may have been posted by @targos in the original issue, could you add him as a Co-Author?
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 87.34%. Comparing base (
4f14eb1) to head (93befdf). Report is 392 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #54553 +/- ##
=======================================
Coverage 87.34% 87.34%
=======================================
Files 649 649
Lines 182562 182562
Branches 35023 35031 +8
=======================================
+ Hits 159451 159458 +7
+ Misses 16396 16382 -14
- Partials 6715 6722 +7
| Files with missing lines | Coverage Δ | |
|---|---|---|
| lib/buffer.js | 96.70% <100.00%> (ø) |
@RedYetiDev Of course! Thanks for the heads up
CI: https://ci.nodejs.org/job/node-test-pull-request/61552/
CI: https://ci.nodejs.org/job/node-test-pull-request/61583/
CI: https://ci.nodejs.org/job/node-test-pull-request/61633/
CI: https://ci.nodejs.org/job/node-test-pull-request/61652/
CI: https://ci.nodejs.org/job/node-test-pull-request/61681/ 💛
Benchmark result https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1627/ 🟢
Results
confidence improvement accuracy (*) (**) (***)
buffers/buffer-atob.js n=1000000 size=128 0.06 % ±0.50% ±0.66% ±0.86%
buffers/buffer-atob.js n=1000000 size=16 0.77 % ±1.03% ±1.37% ±1.79%
buffers/buffer-atob.js n=1000000 size=32 -0.08 % ±0.96% ±1.28% ±1.68%
buffers/buffer-atob.js n=1000000 size=64 -0.44 % ±0.89% ±1.19% ±1.55%
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76 0.13 % ±0.35% ±0.46% ±0.60%
buffers/buffer-base64-decode.js size=8388608 n=32 0.00 % ±0.17% ±0.23% ±0.30%
buffers/buffer-base64-encode.js n=32 len=67108864 -0.02 % ±0.11% ±0.15% ±0.19%
buffers/buffer-base64url-decode.js size=8388608 n=32 * -0.16 % ±0.16% ±0.21% ±0.27%
buffers/buffer-base64url-encode.js n=32 len=67108864 0.03 % ±0.08% ±0.10% ±0.13%
buffers/buffer-btoa.js n=1000000 size=1024 *** 1.51 % ±0.61% ±0.81% ±1.06%
buffers/buffer-btoa.js n=1000000 size=128 -0.46 % ±1.61% ±2.15% ±2.79%
buffers/buffer-btoa.js n=1000000 size=16 0.26 % ±0.84% ±1.12% ±1.46%
buffers/buffer-btoa.js n=1000000 size=256 -1.37 % ±1.45% ±1.93% ±2.51%
buffers/buffer-btoa.js n=1000000 size=32 1.03 % ±1.90% ±2.54% ±3.33%
buffers/buffer-btoa.js n=1000000 size=64 * -1.13 % ±1.08% ±1.44% ±1.91%
buffers/buffer-bytelength-buffer.js n=4000000 len=16 -0.75 % ±2.29% ±3.05% ±3.97%
buffers/buffer-bytelength-buffer.js n=4000000 len=2 0.36 % ±1.87% ±2.49% ±3.24%
buffers/buffer-bytelength-buffer.js n=4000000 len=256 1.76 % ±2.50% ±3.33% ±4.34%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='four_bytes' 0.05 % ±1.90% ±2.53% ±3.31%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='latin1' -0.05 % ±1.92% ±2.55% ±3.32%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='one_byte' -0.47 % ±2.23% ±2.96% ±3.86%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='three_bytes' 0.45 % ±2.21% ±2.95% ±3.84%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='two_bytes' 0.23 % ±2.21% ±2.95% ±3.84%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='four_bytes' -0.35 % ±0.88% ±1.18% ±1.53%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='latin1' 0.02 % ±1.29% ±1.72% ±2.24%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='one_byte' 0.02 % ±2.03% ±2.71% ±3.52%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='three_bytes' -0.94 % ±1.79% ±2.39% ±3.11%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='two_bytes' 0.02 % ±0.65% ±0.87% ±1.14%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='four_bytes' -0.37 % ±1.64% ±2.18% ±2.84%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='latin1' 0.70 % ±1.76% ±2.34% ±3.05%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='one_byte' -1.10 % ±2.00% ±2.65% ±3.45%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='three_bytes' 0.20 % ±1.68% ±2.24% ±2.92%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='two_bytes' * -1.39 % ±1.28% ±1.70% ±2.22%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='four_bytes' 0.11 % ±0.12% ±0.16% ±0.21%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='latin1' *** -0.39 % ±0.18% ±0.23% ±0.31%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='one_byte' * -0.79 % ±0.69% ±0.92% ±1.20%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='three_bytes' -0.21 % ±0.22% ±0.29% ±0.38%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='two_bytes' 0.21 % ±0.28% ±0.37% ±0.48%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='four_bytes' -0.34 % ±1.83% ±2.43% ±3.16%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='latin1' 0.11 % ±1.74% ±2.32% ±3.02%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='one_byte' -1.11 % ±1.84% ±2.45% ±3.19%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='three_bytes' -0.94 % ±1.80% ±2.40% ±3.12%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='two_bytes' -0.10 % ±1.91% ±2.55% ±3.32%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='four_bytes' 0.44 % ±0.73% ±0.97% ±1.26%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='latin1' -0.56 % ±0.60% ±0.80% ±1.05%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='one_byte' 0.47 % ±1.84% ±2.45% ±3.19%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='three_bytes' 0.20 % ±1.20% ±1.60% ±2.09%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' -0.73 % ±1.75% ±2.33% ±3.03%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='four_bytes' 0.67 % ±1.75% ±2.33% ±3.03%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' 0.34 % ±1.96% ±2.61% ±3.40%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='one_byte' -0.53 % ±2.31% ±3.08% ±4.01%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='three_bytes' -0.41 % ±1.50% ±2.00% ±2.60%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='two_bytes' -1.00 % ±1.66% ±2.21% ±2.87%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='four_bytes' -0.00 % ±0.01% ±0.01% ±0.01%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='latin1' -0.02 % ±0.06% ±0.08% ±0.10%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='one_byte' -0.11 % ±0.11% ±0.14% ±0.18%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='three_bytes' -0.00 % ±0.02% ±0.03% ±0.04%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='two_bytes' -0.03 % ±0.10% ±0.13% ±0.17%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16 1.19 % ±3.38% ±4.50% ±5.86%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16386 -0.87 % ±1.18% ±1.59% ±2.10%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=4096 -1.33 % ±2.35% ±3.14% ±4.11%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=512 -2.81 % ±4.32% ±5.76% ±7.50%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16 -0.56 % ±1.56% ±2.08% ±2.71%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16386 -0.08 % ±2.44% ±3.24% ±4.22%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=4096 -1.54 % ±3.45% ±4.59% ±5.97%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=512 0.03 % ±1.04% ±1.38% ±1.80%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16 0.84 % ±1.36% ±1.81% ±2.36%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16386 -0.04 % ±3.67% ±4.88% ±6.35%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=4096 1.04 % ±2.85% ±3.79% ±4.93%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=512 0.26 % ±0.97% ±1.29% ±1.69%
buffers/buffer-compare-offset.js n=1000000 size=16 method='offset' 0.89 % ±1.54% ±2.05% ±2.67%
buffers/buffer-compare-offset.js n=1000000 size=16 method='slice' 0.63 % ±1.09% ±1.45% ±1.89%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='offset' 0.23 % ±1.57% ±2.08% ±2.71%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='slice' 0.40 % ±0.97% ±1.29% ±1.68%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='offset' -0.00 % ±1.03% ±1.37% ±1.78%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='slice' -0.71 % ±1.10% ±1.47% ±1.93%
buffers/buffer-compare-offset.js n=1000000 size=512 method='offset' -0.02 % ±1.22% ±1.63% ±2.13%
buffers/buffer-compare-offset.js n=1000000 size=512 method='slice' -0.56 % ±1.21% ±1.61% ±2.09%
buffers/buffer-compare.js n=1000000 size=16 -0.55 % ±2.72% ±3.62% ±4.72%
buffers/buffer-compare.js n=1000000 size=16386 0.21 % ±1.20% ±1.61% ±2.11%
buffers/buffer-compare.js n=1000000 size=4096 -0.61 % ±1.21% ±1.61% ±2.10%
buffers/buffer-compare.js n=1000000 size=512 0.58 % ±2.69% ±3.57% ±4.65%
buffers/buffer-concat-fill.js n=800000 extraSize=1 -0.04 % ±0.37% ±0.49% ±0.63%
buffers/buffer-concat-fill.js n=800000 extraSize=1024 0.47 % ±0.68% ±0.90% ±1.17%
buffers/buffer-concat-fill.js n=800000 extraSize=256 -0.27 % ±0.54% ±0.72% ±0.93%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=16 0.09 % ±0.28% ±0.38% ±0.49%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=4 0.03 % ±0.65% ±0.87% ±1.13%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=16 -0.07 % ±0.59% ±0.79% ±1.03%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=4 0.48 % ±1.22% ±1.62% ±2.13%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=16 -0.40 % ±0.74% ±0.99% ±1.29%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=4 0.18 % ±0.73% ±0.97% ±1.26%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=16 0.13 % ±0.36% ±0.48% ±0.62%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=4 0.25 % ±0.75% ±1.00% ±1.31%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=16 -0.07 % ±0.71% ±0.95% ±1.23%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=4 1.47 % ±2.06% ±2.76% ±3.63%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=16 -0.20 % ±0.72% ±0.96% ±1.25%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=4 * 0.59 % ±0.56% ±0.75% ±0.98%
buffers/buffer-copy.js n=6000000 partial='false' bytes=0 -1.88 % ±2.60% ±3.46% ±4.52%
buffers/buffer-copy.js n=6000000 partial='false' bytes=128 -0.15 % ±0.51% ±0.68% ±0.88%
buffers/buffer-copy.js n=6000000 partial='false' bytes=32768 1.31 % ±2.04% ±2.74% ±3.63%
buffers/buffer-copy.js n=6000000 partial='false' bytes=8 -0.19 % ±0.88% ±1.17% ±1.53%
buffers/buffer-copy.js n=6000000 partial='true' bytes=0 0.18 % ±1.65% ±2.20% ±2.86%
buffers/buffer-copy.js n=6000000 partial='true' bytes=128 -0.39 % ±0.72% ±0.96% ±1.26%
buffers/buffer-copy.js n=6000000 partial='true' bytes=32768 -2.26 % ±4.79% ±6.46% ±8.58%
buffers/buffer-copy.js n=6000000 partial='true' bytes=8 -0.11 % ±0.89% ±1.19% ±1.54%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc-fill' -0.05 % ±1.22% ±1.63% ±2.12%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc' -0.07 % ±1.39% ±1.86% ±2.42%
buffers/buffer-creation.js n=600000 len=10 type='fast-allocUnsafe' -0.37 % ±0.90% ±1.20% ±1.56%
buffers/buffer-creation.js n=600000 len=10 type='slow-allocUnsafe' -0.77 % ±0.85% ±1.13% ±1.47%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc-fill' 0.11 % ±0.83% ±1.11% ±1.44%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc' 0.35 % ±0.83% ±1.10% ±1.43%
buffers/buffer-creation.js n=600000 len=1024 type='fast-allocUnsafe' 0.18 % ±0.89% ±1.19% ±1.55%
buffers/buffer-creation.js n=600000 len=1024 type='slow-allocUnsafe' -0.11 % ±0.92% ±1.23% ±1.60%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc-fill' -0.02 % ±0.70% ±0.92% ±1.20%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc' -0.48 % ±0.80% ±1.07% ±1.39%
buffers/buffer-creation.js n=600000 len=4096 type='fast-allocUnsafe' -0.28 % ±0.67% ±0.89% ±1.16%
buffers/buffer-creation.js n=600000 len=4096 type='slow-allocUnsafe' 0.69 % ±0.73% ±0.98% ±1.27%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc-fill' 0.04 % ±0.65% ±0.87% ±1.13%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc' -0.14 % ±0.64% ±0.85% ±1.11%
buffers/buffer-creation.js n=600000 len=8192 type='fast-allocUnsafe' -0.45 % ±1.03% ±1.37% ±1.79%
buffers/buffer-creation.js n=600000 len=8192 type='slow-allocUnsafe' -0.81 % ±0.97% ±1.29% ±1.68%
buffers/buffer-equals.js n=1000000 difflen='false' size=0 -0.52 % ±3.56% ±4.74% ±6.16%
buffers/buffer-equals.js n=1000000 difflen='false' size=16386 -0.09 % ±0.32% ±0.43% ±0.57%
buffers/buffer-equals.js n=1000000 difflen='false' size=512 -0.11 % ±3.30% ±4.40% ±5.72%
buffers/buffer-equals.js n=1000000 difflen='true' size=0 -2.29 % ±3.58% ±4.77% ±6.24%
buffers/buffer-equals.js n=1000000 difflen='true' size=16386 -2.26 % ±2.36% ±3.16% ±4.18%
buffers/buffer-equals.js n=1000000 difflen='true' size=512 -0.22 % ±1.72% ±2.28% ±2.97%
buffers/buffer-fill.js n=20000 size=65536 type='fill("")' 0.05 % ±1.95% ±2.60% ±3.38%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", "utf8")' 0.71 % ±1.85% ±2.46% ±3.20%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0, "utf8")' -0.66 % ±1.61% ±2.15% ±2.80%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0)' 1.18 % ±1.71% ±2.27% ±2.97%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t")' 0.36 % ±1.37% ±1.82% ±2.38%
buffers/buffer-fill.js n=20000 size=65536 type='fill("test")' -0.02 % ±1.90% ±2.53% ±3.30%
buffers/buffer-fill.js n=20000 size=65536 type='fill(0)' -0.53 % ±1.97% ±2.63% ±3.42%
buffers/buffer-fill.js n=20000 size=65536 type='fill(100)' 0.29 % ±1.66% ±2.21% ±2.88%
buffers/buffer-fill.js n=20000 size=65536 type='fill(400)' 0.02 % ±1.79% ±2.38% ±3.10%
buffers/buffer-fill.js n=20000 size=65536 type='fill(Buffer.alloc(1), 0)' -0.97 % ±1.41% ±1.89% ±2.47%
buffers/buffer-fill.js n=20000 size=8192 type='fill("")' * 2.21 % ±2.08% ±2.77% ±3.60%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", "utf8")' 0.18 % ±1.52% ±2.02% ±2.64%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0, "utf8")' -0.80 % ±1.91% ±2.55% ±3.33%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0)' -0.48 % ±1.83% ±2.44% ±3.17%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t")' 0.65 % ±1.91% ±2.55% ±3.31%
buffers/buffer-fill.js n=20000 size=8192 type='fill("test")' -2.49 % ±2.59% ±3.44% ±4.48%
buffers/buffer-fill.js n=20000 size=8192 type='fill(0)' -1.14 % ±3.15% ±4.19% ±5.45%
buffers/buffer-fill.js n=20000 size=8192 type='fill(100)' -0.45 % ±1.98% ±2.64% ±3.44%
buffers/buffer-fill.js n=20000 size=8192 type='fill(400)' 0.90 % ±3.45% ±4.60% ±6.01%
buffers/buffer-fill.js n=20000 size=8192 type='fill(Buffer.alloc(1), 0)' 2.50 % ±3.54% ±4.72% ±6.15%
buffers/buffer-from.js n=800000 len=100 source='array' -0.06 % ±0.74% ±0.98% ±1.28%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer-middle' 0.48 % ±2.02% ±2.69% ±3.51%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer' -0.56 % ±2.08% ±2.76% ±3.59%
buffers/buffer-from.js n=800000 len=100 source='buffer' 0.61 % ±1.24% ±1.65% ±2.15%
buffers/buffer-from.js n=800000 len=100 source='object' * 1.42 % ±1.40% ±1.87% ±2.45%
buffers/buffer-from.js n=800000 len=100 source='string-base64' 0.15 % ±0.73% ±0.97% ±1.26%
buffers/buffer-from.js n=800000 len=100 source='string-utf8' 0.45 % ±0.89% ±1.18% ±1.54%
buffers/buffer-from.js n=800000 len=100 source='string' -0.24 % ±0.72% ±0.96% ±1.25%
buffers/buffer-from.js n=800000 len=100 source='uint16array' -0.34 % ±0.85% ±1.13% ±1.47%
buffers/buffer-from.js n=800000 len=100 source='uint8array' -0.20 % ±1.48% ±1.97% ±2.56%
buffers/buffer-from.js n=800000 len=2048 source='array' -0.02 % ±0.09% ±0.12% ±0.16%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle' -1.62 % ±2.45% ±3.28% ±4.30%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer' 0.55 % ±1.73% ±2.30% ±3.00%
buffers/buffer-from.js n=800000 len=2048 source='buffer' 0.08 % ±1.01% ±1.34% ±1.75%
buffers/buffer-from.js n=800000 len=2048 source='object' -0.23 % ±2.03% ±2.70% ±3.52%
buffers/buffer-from.js n=800000 len=2048 source='string-base64' -0.05 % ±0.68% ±0.90% ±1.18%
buffers/buffer-from.js n=800000 len=2048 source='string-utf8' 0.30 % ±0.67% ±0.89% ±1.16%
buffers/buffer-from.js n=800000 len=2048 source='string' 0.60 % ±0.76% ±1.01% ±1.32%
buffers/buffer-from.js n=800000 len=2048 source='uint16array' -0.15 % ±0.65% ±0.87% ±1.13%
buffers/buffer-from.js n=800000 len=2048 source='uint8array' 0.45 % ±0.76% ±1.02% ±1.33%
buffers/buffer-hex-decode.js n=1000000 len=1024 0.03 % ±0.25% ±0.34% ±0.44%
buffers/buffer-hex-decode.js n=1000000 len=64 *** 2.32 % ±0.55% ±0.73% ±0.95%
buffers/buffer-hex-encode.js n=1000000 len=1024 -0.11 % ±0.24% ±0.32% ±0.42%
buffers/buffer-hex-encode.js n=1000000 len=64 -0.25 % ±0.33% ±0.45% ±0.59%
buffers/buffer-indexof-number.js n=1000000 value=64 -2.58 % ±3.43% ±4.57% ±5.95%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='--l' -0.02 % ±0.51% ±0.68% ±0.88%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='@' -1.40 % ±3.97% ±5.29% ±6.88%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='</i> to the Caterpillar' -0.02 % ±0.04% ±0.06% ±0.08%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='aaaaaaaaaaaaaaaaa' -0.02 % ±0.08% ±0.11% ±0.14%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Alice' -1.16 % ±4.60% ±6.13% ±7.98%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='found it very' -0.01 % ±0.06% ±0.08% ±0.10%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Gryphon' -0.80 % ±0.97% ±1.30% ±1.70%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='neighbouring pool' 0.02 % ±0.05% ±0.07% ±0.09%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Ou est ma chatte?' -0.06 % ±0.16% ±0.22% ±0.28%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='SQ' 0.68 % ±1.22% ±1.63% ±2.12%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='venture to go near the house till she had brought herself down to' 1.06 % ±1.86% ±2.50% ±3.31%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='--l' -0.22 % ±0.57% ±0.77% ±1.02%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='@' -2.21 % ±3.48% ±4.66% ±6.11%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='</i> to the Caterpillar' -0.02 % ±0.06% ±0.08% ±0.11%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='aaaaaaaaaaaaaaaaa' 0.03 % ±0.13% ±0.17% ±0.23%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Alice' -1.72 % ±1.90% ±2.53% ±3.29%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='found it very' 0.02 % ±0.05% ±0.06% ±0.08%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Gryphon' -0.33 % ±0.34% ±0.46% ±0.60%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='neighbouring pool' -0.01 % ±0.08% ±0.11% ±0.14%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Ou est ma chatte?' 0.02 % ±0.09% ±0.12% ±0.16%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='SQ' 0.43 % ±1.43% ±1.90% ±2.47%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='venture to go near the house till she had brought herself down to' -0.01 % ±0.08% ±0.11% ±0.14%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='--l' 0.09 % ±0.24% ±0.32% ±0.42%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='@' -1.46 % ±2.86% ±3.83% ±5.03%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='</i> to the Caterpillar' 0.02 % ±0.04% ±0.05% ±0.06%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='aaaaaaaaaaaaaaaaa' -0.08 % ±0.09% ±0.12% ±0.16%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Alice' -0.27 % ±2.41% ±3.22% ±4.21%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='found it very' 0.15 % ±0.23% ±0.31% ±0.40%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Gryphon' 0.05 % ±0.89% ±1.19% ±1.54%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='neighbouring pool' 0.03 % ±0.04% ±0.05% ±0.07%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Ou est ma chatte?' *** -0.68 % ±0.15% ±0.20% ±0.26%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='SQ' *** -2.59 % ±1.21% ±1.63% ±2.15%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='venture to go near the house till she had brought herself down to' 0.00 % ±0.09% ±0.12% ±0.15%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=16386 1.12 % ±1.94% ±2.59% ±3.39%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=4096 2.79 % ±2.79% ±3.73% ±4.88%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=512 3.50 % ±4.84% ±6.44% ±8.38%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=16386 -0.06 % ±0.29% ±0.39% ±0.51%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=4096 -0.59 % ±1.49% ±1.98% ±2.57%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=512 -0.97 % ±3.22% ±4.29% ±5.58%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=16386 -0.33 % ±0.42% ±0.56% ±0.73%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=4096 0.65 % ±1.67% ±2.22% ±2.89%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=512 0.44 % ±3.19% ±4.24% ±5.53%
buffers/buffer-normalize-encoding.js n=1000000 encoding='ascii' 0.69 % ±2.61% ±3.47% ±4.51%
buffers/buffer-normalize-encoding.js n=1000000 encoding='base64' 1.19 % ±2.29% ±3.07% ±4.04%
buffers/buffer-normalize-encoding.js n=1000000 encoding='BASE64' -0.26 % ±3.32% ±4.42% ±5.75%
buffers/buffer-normalize-encoding.js n=1000000 encoding='binary' 1.24 % ±3.51% ±4.68% ±6.11%
buffers/buffer-normalize-encoding.js n=1000000 encoding='hex' -0.97 % ±1.66% ±2.21% ±2.88%
buffers/buffer-normalize-encoding.js n=1000000 encoding='HEX' 1.35 % ±4.72% ±6.28% ±8.18%
buffers/buffer-normalize-encoding.js n=1000000 encoding='latin1' * 7.27 % ±5.79% ±7.70% ±10.02%
buffers/buffer-normalize-encoding.js n=1000000 encoding='LATIN1' -1.19 % ±2.96% ±3.94% ±5.14%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS-2' 0.39 % ±2.07% ±2.76% ±3.59%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS2' -0.04 % ±3.83% ±5.10% ±6.64%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-16le' 1.48 % ±2.05% ±2.74% ±3.58%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF-16LE' 3.01 % ±5.97% ±7.96% ±10.38%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-8' -0.65 % ±2.43% ±3.23% ±4.20%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf16le' -0.41 % ±1.49% ±1.98% ±2.58%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF16LE' -0.72 % ±5.53% ±7.36% ±9.58%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf8' 0.76 % ±2.76% ±3.70% ±4.86%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF8' 0.51 % ±1.79% ±2.38% ±3.10%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Double' * 1.00 % ±0.78% ±1.04% ±1.37%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Float' 0.42 % ±0.79% ±1.05% ±1.37%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Double' -0.00 % ±0.69% ±0.91% ±1.19%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Float' 0.60 % ±0.87% ±1.16% ±1.52%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Double' 0.34 % ±1.50% ±2.01% ±2.62%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Float' -0.04 % ±0.91% ±1.21% ±1.58%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Double' 0.23 % ±0.97% ±1.29% ±1.68%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Float' 0.61 % ±1.22% ±1.62% ±2.11%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Double' * 1.61 % ±1.42% ±1.89% ±2.47%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Float' 0.03 % ±0.96% ±1.27% ±1.66%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntBE' buffer='fast' -0.30 % ±1.44% ±1.93% ±2.53%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntLE' buffer='fast' -0.13 % ±0.62% ±0.82% ±1.07%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntBE' buffer='fast' -0.05 % ±0.62% ±0.83% ±1.09%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntLE' buffer='fast' 0.47 % ±0.50% ±0.67% ±0.87%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntBE' buffer='fast' -0.41 % ±1.29% ±1.72% ±2.25%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntLE' buffer='fast' 0.13 % ±0.82% ±1.10% ±1.45%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntBE' buffer='fast' -0.10 % ±0.66% ±0.88% ±1.14%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntLE' buffer='fast' 0.34 % ±0.49% ±0.65% ±0.86%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntBE' buffer='fast' -0.47 % ±0.73% ±0.97% ±1.26%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntLE' buffer='fast' 0.25 % ±0.52% ±0.69% ±0.90%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntBE' buffer='fast' -0.11 % ±0.67% ±0.89% ±1.16%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntLE' buffer='fast' -0.02 % ±0.81% ±1.08% ±1.40%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntBE' buffer='fast' -0.04 % ±0.71% ±0.94% ±1.22%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntLE' buffer='fast' -0.28 % ±0.56% ±0.74% ±0.97%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntBE' buffer='fast' -0.57 % ±0.70% ±0.94% ±1.22%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntLE' buffer='fast' *** -1.39 % ±0.74% ±0.98% ±1.28%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntBE' buffer='fast' 0.06 % ±0.67% ±0.89% ±1.16%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntLE' buffer='fast' * -0.57 % ±0.49% ±0.66% ±0.86%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntBE' buffer='fast' -0.49 % ±0.53% ±0.70% ±0.91%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntLE' buffer='fast' -0.79 % ±1.04% ±1.40% ±1.84%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntBE' buffer='fast' -0.29 % ±0.73% ±0.97% ±1.26%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntLE' buffer='fast' * -0.59 % ±0.58% ±0.77% ±1.01%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntBE' buffer='fast' -0.17 % ±0.81% ±1.08% ±1.41%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntLE' buffer='fast' -0.14 % ±0.63% ±0.84% ±1.09%
buffers/buffer-read.js n=1000000 type='BigInt64BE' buffer='fast' 0.70 % ±1.69% ±2.27% ±2.99%
buffers/buffer-read.js n=1000000 type='BigInt64LE' buffer='fast' 0.50 % ±2.57% ±3.41% ±4.44%
buffers/buffer-read.js n=1000000 type='BigUInt64BE' buffer='fast' -0.13 % ±0.97% ±1.29% ±1.68%
buffers/buffer-read.js n=1000000 type='BigUInt64LE' buffer='fast' -0.57 % ±0.98% ±1.30% ±1.69%
buffers/buffer-read.js n=1000000 type='Int16BE' buffer='fast' -0.28 % ±1.02% ±1.35% ±1.76%
buffers/buffer-read.js n=1000000 type='Int16LE' buffer='fast' 0.13 % ±1.69% ±2.26% ±2.94%
buffers/buffer-read.js n=1000000 type='Int32BE' buffer='fast' -0.84 % ±0.84% ±1.12% ±1.46%
buffers/buffer-read.js n=1000000 type='Int32LE' buffer='fast' -0.38 % ±1.05% ±1.40% ±1.82%
buffers/buffer-read.js n=1000000 type='Int8' buffer='fast' 0.22 % ±1.84% ±2.45% ±3.19%
buffers/buffer-read.js n=1000000 type='UInt16BE' buffer='fast' -1.26 % ±1.82% ±2.42% ±3.15%
buffers/buffer-read.js n=1000000 type='UInt16LE' buffer='fast' 0.03 % ±2.56% ±3.41% ±4.44%
buffers/buffer-read.js n=1000000 type='UInt32BE' buffer='fast' -0.16 % ±1.14% ±1.52% ±1.98%
buffers/buffer-read.js n=1000000 type='UInt32LE' buffer='fast' -0.27 % ±1.27% ±1.70% ±2.22%
buffers/buffer-read.js n=1000000 type='UInt8' buffer='fast' 0.59 % ±2.52% ±3.36% ±4.38%
buffers/buffer-slice.js n=1000000 type='fast' 1.73 % ±2.23% ±2.96% ±3.87%
buffers/buffer-slice.js n=1000000 type='slow' -0.87 % ±2.29% ±3.04% ±3.96%
buffers/buffer-slice.js n=1000000 type='subarray' -0.18 % ±1.58% ±2.10% ±2.74%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='false' * -1.59 % ±1.26% ±1.68% ±2.18%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='true' -0.46 % ±1.19% ±1.59% ±2.07%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='false' -0.23 % ±0.50% ±0.67% ±0.87%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='true' 0.23 % ±0.54% ±0.72% ±0.93%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='false' -0.10 % ±0.77% ±1.02% ±1.33%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='true' 0.25 % ±0.76% ±1.02% ±1.32%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='false' 0.28 % ±0.42% ±0.56% ±0.73%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='true' 0.36 % ±0.38% ±0.51% ±0.66%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='false' -0.11 % ±0.29% ±0.38% ±0.50%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='true' -0.24 % ±0.29% ±0.39% ±0.50%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='false' 0.06 % ±0.57% ±0.76% ±0.99%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='true' 0.31 % ±0.61% ±0.81% ±1.05%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='false' -0.06 % ±0.79% ±1.05% ±1.37%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='true' -0.27 % ±0.90% ±1.19% ±1.56%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='false' -0.09 % ±2.75% ±3.66% ±4.77%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='true' 0.68 % ±2.55% ±3.39% ±4.42%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='false' -1.13 % ±1.69% ±2.25% ±2.93%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='true' -1.45 % ±1.83% ±2.44% ±3.18%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='false' 0.31 % ±0.97% ±1.30% ±1.69%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='true' 2.16 % ±2.51% ±3.34% ±4.35%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='false' 0.46 % ±1.01% ±1.34% ±1.74%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='true' 0.57 % ±1.24% ±1.65% ±2.16%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='false' -0.21 % ±0.61% ±0.81% ±1.05%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='true' -0.50 % ±1.14% ±1.52% ±1.98%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='false' -0.17 % ±0.71% ±0.94% ±1.22%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='true' * -0.72 % ±0.70% ±0.94% ±1.22%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='false' -0.27 % ±0.78% ±1.03% ±1.35%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='true' 0.65 % ±0.75% ±1.00% ±1.30%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='false' -0.94 % ±1.31% ±1.74% ±2.27%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='true' 1.18 % ±1.51% ±2.01% ±2.62%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='false' 0.36 % ±0.40% ±0.53% ±0.69%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='true' 0.27 % ±0.42% ±0.57% ±0.74%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='false' -0.03 % ±0.06% ±0.08% ±0.10%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='true' 0.01 % ±0.07% ±0.10% ±0.13%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='false' 0.03 % ±0.16% ±0.21% ±0.27%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='true' -0.09 % ±0.17% ±0.22% ±0.29%
buffers/buffer-tojson.js len=0 n=10000 -6.34 % ±13.53% ±18.00% ±23.43%
buffers/buffer-tojson.js len=256 n=10000 -1.09 % ±2.07% ±2.75% ±3.58%
buffers/buffer-tojson.js len=4096 n=10000 0.56 % ±1.97% ±2.63% ±3.42%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='' -1.08 % ±1.59% ±2.11% ±2.75%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='ascii' * 2.67 % ±2.29% ±3.05% ±3.97%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='hex' *** 4.86 % ±1.44% ±1.91% ±2.49%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='latin1' ** 3.24 % ±2.36% ±3.14% ±4.09%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='UCS-2' *** 5.86 % ±1.13% ±1.50% ±1.95%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='utf8' 2.25 % ±2.62% ±3.49% ±4.54%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='ascii' 0.98 % ±2.11% ±2.81% ±3.67%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='hex' ** -3.29 % ±2.40% ±3.21% ±4.22%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='latin1' 0.61 % ±2.10% ±2.81% ±3.67%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='UCS-2' -1.30 % ±1.30% ±1.73% ±2.25%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='utf8' 2.62 % ±3.28% ±4.37% ±5.69%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='' 0.20 % ±0.58% ±0.77% ±1.00%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='ascii' -1.02 % ±1.04% ±1.39% ±1.81%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='hex' *** -1.02 % ±0.20% ±0.27% ±0.35%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='latin1' * 1.06 % ±0.84% ±1.12% ±1.46%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='UCS-2' *** 1.02 % ±0.54% ±0.71% ±0.93%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='utf8' *** 1.83 % ±0.62% ±0.83% ±1.08%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='ascii' *** -3.65 % ±1.17% ±1.56% ±2.04%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='hex' 0.31 % ±0.36% ±0.48% ±0.62%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='latin1' -0.12 % ±0.95% ±1.27% ±1.65%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='UCS-2' -0.35 % ±0.89% ±1.18% ±1.54%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='utf8' -0.14 % ±0.74% ±0.98% ±1.27%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='' 0.67 % ±1.51% ±2.02% ±2.63%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='ascii' *** 2.35 % ±1.14% ±1.51% ±1.97%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='hex' ** 1.28 % ±0.75% ±1.01% ±1.31%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='latin1' 1.36 % ±1.41% ±1.88% ±2.45%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='UCS-2' -0.34 % ±1.21% ±1.61% ±2.11%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='utf8' 1.50 % ±1.53% ±2.03% ±2.65%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='ascii' *** 2.63 % ±1.03% ±1.38% ±1.79%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='hex' 0.01 % ±0.68% ±0.91% ±1.18%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='latin1' 0.37 % ±1.23% ±1.64% ±2.14%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='UCS-2' ** -1.99 % ±1.28% ±1.71% ±2.24%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='utf8' 0.15 % ±0.72% ±0.96% ±1.25%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ascii' -0.47 % ±1.00% ±1.32% ±1.72%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='latin1' -0.21 % ±0.77% ±1.02% ±1.34%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ucs2' * 1.11 % ±1.11% ±1.47% ±1.92%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='utf8' -0.42 % ±0.94% ±1.25% ±1.62%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ascii' -0.67 % ±0.99% ±1.32% ±1.72%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='latin1' -0.01 % ±0.79% ±1.05% ±1.37%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ucs2' -0.58 % ±1.11% ±1.48% ±1.93%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='utf8' 0.45 % ±0.88% ±1.17% ±1.52%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ascii' 0.49 % ±1.26% ±1.68% ±2.19%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='latin1' 0.04 % ±1.19% ±1.58% ±2.06%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ucs2' 0.31 % ±1.05% ±1.39% ±1.81%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='utf8' 0.29 % ±1.26% ±1.68% ±2.19%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='ascii' -0.22 % ±0.63% ±0.83% ±1.09%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='latin1' 0.47 % ±0.75% ±1.00% ±1.30%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='utf8' -0.32 % ±0.96% ±1.27% ±1.66%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ascii' -0.72 % ±1.09% ±1.44% ±1.88%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='latin1' 0.14 % ±0.95% ±1.27% ±1.65%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ucs2' 0.52 % ±0.82% ±1.09% ±1.41%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='utf8' -0.04 % ±1.15% ±1.53% ±1.99%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ascii' -0.76 % ±0.91% ±1.21% ±1.58%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='latin1' 0.25 % ±0.91% ±1.21% ±1.57%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ucs2' 0.12 % ±1.10% ±1.46% ±1.90%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='utf8' 0.57 % ±0.69% ±0.92% ±1.20%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ascii' -0.14 % ±1.38% ±1.84% ±2.40%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='latin1' 0.04 % ±1.56% ±2.07% ±2.70%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ucs2' -0.33 % ±0.90% ±1.20% ±1.57%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='utf8' -0.34 % ±1.37% ±1.82% ±2.37%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='ascii' 0.17 % ±1.05% ±1.40% ±1.83%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='latin1' 0.51 % ±0.93% ±1.24% ±1.62%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='utf8' 0.91 % ±1.41% ±1.88% ±2.45%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ascii' -0.22 % ±0.69% ±0.91% ±1.19%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='latin1' -0.49 % ±0.54% ±0.72% ±0.94%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ucs2' -1.16 % ±2.30% ±3.09% ±4.11%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='utf8' 0.14 % ±0.82% ±1.09% ±1.42%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ascii' 0.43 % ±0.77% ±1.03% ±1.34%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='latin1' 0.38 % ±0.85% ±1.14% ±1.49%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ucs2' 0.05 % ±0.10% ±0.14% ±0.18%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='utf8' 0.18 % ±0.51% ±0.69% ±0.89%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ascii' -0.27 % ±0.71% ±0.94% ±1.22%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='latin1' -0.11 % ±0.81% ±1.08% ±1.41%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ucs2' -0.15 % ±0.61% ±0.82% ±1.07%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='utf8' 0.25 % ±0.54% ±0.71% ±0.93%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='ascii' 0.06 % ±0.38% ±0.51% ±0.66%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='latin1' 0.37 % ±0.86% ±1.15% ±1.49%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='utf8' 0.19 % ±0.55% ±0.74% ±0.96%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='ascii' 0.73 % ±2.37% ±3.15% ±4.11%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='latin1' -1.80 % ±2.50% ±3.33% ±4.33%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='utf8' -1.87 % ±2.70% ±3.60% ±4.69%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='ascii' -1.77 % ±2.25% ±2.99% ±3.89%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='latin1' 1.27 % ±3.01% ±4.01% ±5.22%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='utf8' -0.53 % ±2.01% ±2.68% ±3.49%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='ascii' -0.69 % ±2.55% ±3.40% ±4.43%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='latin1' -0.33 % ±2.48% ±3.30% ±4.30%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='utf8' 0.07 % ±1.43% ±1.90% ±2.47%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='ascii' -0.82 % ±2.07% ±2.75% ±3.58%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='latin1' 0.96 % ±3.33% ±4.43% ±5.76%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='utf8' 0.47 % ±2.01% ±2.67% ±3.48%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='' -0.06 % ±0.49% ±0.66% ±0.85%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='ascii' -0.21 % ±2.04% ±2.72% ±3.56%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='hex' *** 0.48 % ±0.12% ±0.16% ±0.21%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='latin1' -0.77 % ±1.32% ±1.76% ±2.29%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf16le' -0.05 % ±1.23% ±1.63% ±2.13%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf8' -0.44 % ±0.68% ±0.91% ±1.18%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='' -0.02 % ±0.62% ±0.83% ±1.08%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='ascii' -0.52 % ±1.24% ±1.65% ±2.15%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='hex' * 0.20 % ±0.19% ±0.25% ±0.32%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='latin1' 0.61 % ±1.75% ±2.33% ±3.03%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf16le' 0.74 % ±0.85% ±1.14% ±1.48%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf8' 0.79 % ±1.06% ±1.42% ±1.85%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='' -0.67 % ±0.70% ±0.93% ±1.22%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='ascii' -0.23 % ±0.84% ±1.11% ±1.45%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='hex' *** 0.75 % ±0.41% ±0.54% ±0.71%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='latin1' 0.65 % ±1.59% ±2.12% ±2.76%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf16le' 0.72 % ±1.04% ±1.39% ±1.81%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf8' 0.55 % ±0.91% ±1.21% ±1.57%
buffers/buffer-write.js n=1000000 type='BigInt64BE' buffer='fast' 0.06 % ±0.81% ±1.07% ±1.40%
buffers/buffer-write.js n=1000000 type='BigInt64LE' buffer='fast' * -1.26 % ±1.12% ±1.50% ±1.96%
buffers/buffer-write.js n=1000000 type='BigUInt64BE' buffer='fast' 0.03 % ±0.88% ±1.17% ±1.53%
buffers/buffer-write.js n=1000000 type='BigUInt64LE' buffer='fast' * 0.96 % ±0.84% ±1.12% ±1.47%
buffers/buffer-write.js n=1000000 type='DoubleBE' buffer='fast' 0.09 % ±0.73% ±0.97% ±1.27%
buffers/buffer-write.js n=1000000 type='DoubleLE' buffer='fast' -0.23 % ±0.76% ±1.01% ±1.31%
buffers/buffer-write.js n=1000000 type='FloatBE' buffer='fast' 0.01 % ±2.26% ±3.01% ±3.91%
buffers/buffer-write.js n=1000000 type='FloatLE' buffer='fast' -0.32 % ±1.49% ±1.98% ±2.57%
buffers/buffer-write.js n=1000000 type='Int16BE' buffer='fast' -0.23 % ±0.94% ±1.26% ±1.64%
buffers/buffer-write.js n=1000000 type='Int16LE' buffer='fast' -0.31 % ±1.05% ±1.40% ±1.84%
buffers/buffer-write.js n=1000000 type='Int32BE' buffer='fast' 0.48 % ±1.14% ±1.52% ±1.99%
buffers/buffer-write.js n=1000000 type='Int32LE' buffer='fast' 0.24 % ±0.93% ±1.24% ±1.62%
buffers/buffer-write.js n=1000000 type='Int8' buffer='fast' 0.34 % ±0.89% ±1.18% ±1.54%
buffers/buffer-write.js n=1000000 type='IntBE' buffer='fast' 0.34 % ±1.86% ±2.48% ±3.23%
buffers/buffer-write.js n=1000000 type='IntLE' buffer='fast' -0.55 % ±1.12% ±1.48% ±1.93%
buffers/buffer-write.js n=1000000 type='UInt16BE' buffer='fast' * -0.75 % ±0.75% ±0.99% ±1.29%
buffers/buffer-write.js n=1000000 type='UInt16LE' buffer='fast' 0.26 % ±1.29% ±1.72% ±2.24%
buffers/buffer-write.js n=1000000 type='UInt32BE' buffer='fast' -0.36 % ±0.64% ±0.85% ±1.11%
buffers/buffer-write.js n=1000000 type='UInt32LE' buffer='fast' -0.54 % ±0.93% ±1.23% ±1.61%
buffers/buffer-write.js n=1000000 type='UInt8' buffer='fast' -2.06 % ±2.83% ±3.77% ±4.92%
buffers/buffer-write.js n=1000000 type='UIntBE' buffer='fast' -0.76 % ±0.88% ±1.17% ±1.52%
buffers/buffer-write.js n=1000000 type='UIntLE' buffer='fast' ** -1.16 % ±0.76% ±1.01% ±1.31%
buffers/buffer-zero.js type='buffer' n=1000000 0.09 % ±1.12% ±1.49% ±1.94%
buffers/buffer-zero.js type='string' n=1000000 0.19 % ±2.19% ±2.91% ±3.79%
buffers/dataview-set.js n=1000000 type='Float32BE' * -4.15 % ±3.24% ±4.35% ±5.75%
buffers/dataview-set.js n=1000000 type='Float32LE' 0.78 % ±4.16% ±5.54% ±7.21%
buffers/dataview-set.js n=1000000 type='Float64BE' -0.63 % ±3.37% ±4.49% ±5.86%
buffers/dataview-set.js n=1000000 type='Float64LE' 2.53 % ±3.50% ±4.67% ±6.11%
buffers/dataview-set.js n=1000000 type='Int16BE' -1.11 % ±4.19% ±5.57% ±7.25%
buffers/dataview-set.js n=1000000 type='Int16LE' -3.68 % ±4.97% ±6.62% ±8.62%
buffers/dataview-set.js n=1000000 type='Int32BE' 1.73 % ±3.60% ±4.79% ±6.25%
buffers/dataview-set.js n=1000000 type='Int32LE' -1.22 % ±3.36% ±4.47% ±5.82%
buffers/dataview-set.js n=1000000 type='Int8' 1.29 % ±4.24% ±5.67% ±7.42%
buffers/dataview-set.js n=1000000 type='Uint16BE' -0.82 % ±3.93% ±5.24% ±6.82%
buffers/dataview-set.js n=1000000 type='Uint16LE' -0.81 % ±5.63% ±7.51% ±9.80%
buffers/dataview-set.js n=1000000 type='Uint32BE' 0.10 % ±1.45% ±1.93% ±2.52%
buffers/dataview-set.js n=1000000 type='Uint32LE' 2.04 % ±2.66% ±3.55% ±4.64%
buffers/dataview-set.js n=1000000 type='Uint8' -0.07 % ±4.23% ±5.63% ±7.33%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 467 comparisons, you can thus
expect the following amount of false-positive results:
23.35 false positives, when considering a 5% risk acceptance (*, **, ***),
4.67 false positives, when considering a 1% risk acceptance (**, ***),
0.47 false positives, when considering a 0.1% risk acceptance (***)
Landed in 1c67899ffb32871461c7ff2d82597d8f9c5cd6af
The test doesn't pass on v20.x-staging, so it will need a manual backport:
$ ./node test/parallel/test-buffer-tostring-range.js
node:internal/errors:541
throw error;
^
RangeError [ERR_OUT_OF_RANGE]: The value of "size" is out of range. It must be >= 0 && <= 4294967296. Received 4_294_967_315
at Function.alloc (node:buffer:390:3)
at Object.<anonymous> (/Users/mzasso/git/nodejs/v20.x/test/parallel/test-buffer-tostring-range.js:107:28)
at Module._compile (node:internal/modules/cjs/loader:1469:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
at Module.load (node:internal/modules/cjs/loader:1288:32)
at Module._load (node:internal/modules/cjs/loader:1104:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
at node:internal/main/run_main_module:28:49 {
code: 'ERR_OUT_OF_RANGE'
}
Node.js v20.17.1-pre
I'll raise a backport PR for this tomorrow.