Skip to content

src: fix TextDecoder large-input and error paths - #65634

Open
JosephDoUrden wants to merge 1 commit into
nodejs:mainfrom
JosephDoUrden:fix/textdecoder-icu-error-path
Open

src: fix TextDecoder large-input and error paths#65634
JosephDoUrden wants to merge 1 commit into
nodejs:mainfrom
JosephDoUrden:fix/textdecoder-icu-error-path

Conversation

@JosephDoUrden

Copy link
Copy Markdown

Fixes #47645.

TextDecoder('utf-16le').decode(new Uint16Array(2**27)) throws ERR_ENCODING_INVALID_ENCODED_DATA even though the input is valid and the result (134M chars) fits comfortably in a V8 string. Root cause analysis is in the issue thread: ConverterObject::Decode() sizes the ICU target as 2 * min_char_size * input length UChars. min_char_size() is the minimum number of bytes per character, so multiplying by it inflates the bound instead of tightening it. For UTF-16 that requests 4x the input in UChars, which crosses ucnv_toUnicode()'s target range validation (0x3fffffff UChars) at exactly 2**27 elements, and ICU rejects the call before looking at a single byte. The failure then gets reported by the blanket invalid-data throw at the bottom of the function.

Two changes, same function:

The bound becomes 2 * (input length + pending bytes) / min_char_size, clamped to the ICU cap. Each character consumes at least min_char_size bytes and emits at most a surrogate pair, and bytes carried over from a previous chunk complete a character in this one, so they count too. For every min_char_size == 1 encoding (all the CJK ones) this is the same as or larger than the old bound, so nothing tightens there. Only utf-16le/be change, from 4x to 1x. After the change the whole representable range decodes: an input of 2 * MAX_STRING_LENGTH bytes produces exactly a MAX_STRING_LENGTH string.

Second, Decode() now returns after a failed StringBytes::Encode() instead of falling through, so the exception Encode scheduled (ERR_STRING_TOO_LONG for oversized results) is no longer replaced by ERR_ENCODING_INVALID_ENCODED_DATA. Boundary behaviour measured locally: 2 * MAX_STRING_LENGTH bytes decodes, +2 bytes throws ERR_STRING_TOO_LONG, lone surrogate with fatal: true still throws ERR_ENCODING_INVALID_ENCODED_DATA.

On the interaction with #61559 / #61041: I know the direction is to move TextDecoder off ICU, and #61559 would take utf-16 out of this path entirely. But big5, euc-jp, euc-kr, gb18030, shift_jis and iso-2022-jp keep routing through ConverterObject::Decode(), and the error-path fix applies to all of them, so this stands regardless of when the fast-path work lands. Happy to rebase if #61559 moves first.

Tests are in pummel because of the working set (~1.6 GiB and ~3 GiB peaks, both under the existing test-buffer-large-size-* ceiling). The streaming case uses an odd byte split so a code unit actually stays pending across the chunk boundary, and compares content, not just length. Everything ran locally on both a small-icu and a full-icu build: the two pummel tests (including the gb18030 ERR_STRING_TOO_LONG case, which needs full-icu), parallel/test-whatwg-encoding* and parallel/test-icu-*, plus an A/B sweep against an unpatched build of the same tree (91 sizes per endianness, no behaviour change other than the fixed cases) and a mid-character gb18030 streaming split to exercise the pending-bytes term on a min_char_size == 1 encoding.

Known remaining limitation: results that could never fit in a string (more than 0x3fffffff UChars, i.e. inputs over ~2 GiB) still surface the blanket error rather than ERR_STRING_TOO_LONG. Fixing that needs a chunked conversion loop; it did not seem worth the extra risk in this change.

AI disclosure: I used an AI coding agent for parts of the investigation and drafting. I verified the root cause against the ICU and Node sources myself, and every number in this description comes from runs on my own machine.

ConverterObject::Decode() sized its ICU target buffer as the input
length, or the pending byte count when flushing if that is larger,
times min_char_size(), times 2. min_char_size() is the minimum number
of bytes per character, so multiplying by it inflates the bound
instead of tightening it: for UTF-16 (min_char_size() == 2) a 256 MiB
input requested 2^30 UChars, which fails ucnv_toUnicode()'s internal
targetLimit validation before any input is examined, and the failure
was then reported as ERR_ENCODING_INVALID_ENCODED_DATA. Bound the
buffer by 2 * (input length + pending bytes) / min_char_size instead:
each character consumes at least min_char_size bytes and emits at
most one surrogate pair, and bytes carried over from previous chunks
complete a character in this one. The request is also clamped to
ucnv_toUnicode()'s target-range validation limit of 0x3fffffff
UChars, which loses nothing since larger results cannot fit in a V8
string anyway. This decodes every input whose result fits in a V8
string.

Also return after a failed StringBytes::Encode() instead of falling
through, so the exception it scheduled (such as ERR_STRING_TOO_LONG
for results beyond the string limit) is no longer masked by
ERR_ENCODING_INVALID_ENCODED_DATA.

The `2 *` factor dates to 98ec909, which restored the effective
capacity that an earlier targetLimit arithmetic bug had provided by
accident. The min_char_size() multiplier itself is older, from
ed21cb1.

Fixes: nodejs#47645
Refs: nodejs#41026
Refs: nodejs#61559
Signed-off-by: Yusufhan Saçak <yusufhansacak@icloud.com>
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. i18n-api Issues and PRs related to Node.js internationalization support. needs-ci PRs that need a full CI run. labels Aug 29, 2026
@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Benchmark GHA (util / text-decoder): https://github.com/nodejs/node/actions/runs/33238297431 🟢

Results

[!WARNING]
Do not take GHA benchmark results as face value, always confirm them
using a dedicated machine, e.g. Jenkins CI.

Benchmark results:

                                                                                                                                      confidence improvement accuracy (*)    (**)   (***)
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                          2.68 %       ±5.81%  ±7.65%  ±9.82%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                            -0.71 %       ±9.48% ±12.50% ±16.04%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                          0.10 %       ±5.93%  ±7.82% ±10.03%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                            -0.94 %       ±9.73% ±12.82% ±16.45%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                          3.13 %       ±5.97%  ±7.87% ±10.10%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                            -0.35 %       ±9.70% ±12.78% ±16.40%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                          2.16 %       ±5.92%  ±7.80% ±10.01%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                            -0.39 %       ±9.66% ±12.73% ±16.33%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                          2.30 %       ±5.84%  ±7.70%  ±9.88%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                             0.01 %       ±3.07%  ±4.04%  ±5.19%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                          2.26 %       ±5.85%  ±7.71%  ±9.90%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                            -0.08 %       ±2.83%  ±3.73%  ±4.78%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                          1.54 %       ±5.61%  ±7.40%  ±9.50%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                            -1.87 %       ±4.37%  ±5.77%  ±7.40%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                          1.68 %       ±5.75%  ±7.58%  ±9.72%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                            -0.52 %       ±4.30%  ±5.67%  ±7.27%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                           0.80 %       ±9.92% ±13.07% ±16.78%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                             -2.03 %      ±11.82% ±15.57% ±19.98%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                          -0.61 %       ±9.55% ±12.58% ±16.14%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                             -0.64 %      ±12.12% ±15.98% ±20.51%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                          -1.88 %       ±9.39% ±12.38% ±15.88%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                             -0.65 %      ±12.23% ±16.12% ±20.68%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                          -1.41 %       ±9.62% ±12.68% ±16.27%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                              0.40 %      ±12.04% ±15.87% ±20.36%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                          -0.14 %       ±9.72% ±12.81% ±16.44%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                             -0.53 %       ±4.57%  ±6.03%  ±7.74%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                          -1.14 %       ±9.60% ±12.66% ±16.24%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                              0.17 %       ±4.65%  ±6.12%  ±7.86%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                           0.24 %       ±9.66% ±12.74% ±16.34%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                              0.79 %       ±8.09% ±10.66% ±13.68%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                          -0.06 %       ±9.72% ±12.82% ±16.45%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                              1.59 %       ±8.03% ±10.59% ±13.59%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                            -1.93 %      ±10.09% ±13.30% ±17.06%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                               -1.67 %      ±10.51% ±13.86% ±17.78%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                             1.04 %      ±10.21% ±13.46% ±17.27%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                                0.07 %      ±10.47% ±13.80% ±17.70%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                            -0.97 %       ±9.83% ±12.95% ±16.62%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                               -1.28 %      ±10.43% ±13.75% ±17.65%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                            -2.96 %      ±10.05% ±13.25% ±17.00%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                               -1.59 %      ±10.34% ±13.63% ±17.49%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                             0.67 %      ±10.15% ±13.37% ±17.16%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                               -0.49 %       ±9.96% ±13.13% ±16.85%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                            -1.41 %      ±10.10% ±13.31% ±17.08%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                                0.65 %       ±9.72% ±12.82% ±16.45%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                             1.53 %      ±10.27% ±13.54% ±17.37%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                                0.91 %      ±10.33% ±13.62% ±17.47%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                            -0.67 %      ±10.02% ±13.21% ±16.95%
util/text-decoder-stream.js type='ArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                                2.01 %      ±10.45% ±13.77% ±17.67%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                               3.42 %       ±4.72%  ±6.22%  ±7.98%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                                 -0.16 %       ±8.31% ±10.95% ±14.06%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                               0.95 %       ±4.49%  ±5.91%  ±7.59%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                                 -0.91 %       ±8.42% ±11.10% ±14.24%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                               3.05 %       ±4.78%  ±6.30%  ±8.09%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                                  1.10 %       ±8.48% ±11.17% ±14.33%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                               1.44 %       ±4.65%  ±6.13%  ±7.86%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                                  0.27 %       ±8.73% ±11.50% ±14.76%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                               2.85 %       ±4.74%  ±6.24%  ±8.01%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                                 -0.90 %       ±2.78%  ±3.67%  ±4.71%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                               0.79 %       ±4.71%  ±6.21%  ±7.97%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                                 -1.67 %       ±3.05%  ±4.02%  ±5.15%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                               1.13 %       ±4.69%  ±6.18%  ±7.93%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                                 -0.73 %       ±3.42%  ±4.51%  ±5.79%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                               1.31 %       ±4.76%  ±6.27%  ±8.05%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                                  0.55 %       ±3.35%  ±4.42%  ±5.67%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                               -1.28 %       ±6.61%  ±8.71% ±11.17%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                                   1.57 %       ±8.54% ±11.25% ±14.44%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                               -2.13 %       ±6.23%  ±8.21% ±10.54%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                                  -1.50 %       ±8.90% ±11.73% ±15.05%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                               -0.47 %       ±6.46%  ±8.51% ±10.92%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                                  -1.22 %       ±8.69% ±11.46% ±14.70%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                               -2.34 %       ±6.38%  ±8.41% ±10.79%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                                   1.36 %       ±8.71% ±11.47% ±14.72%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                               -2.61 %       ±6.34%  ±8.35% ±10.72%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                                   0.05 %       ±3.44%  ±4.53%  ±5.81%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                               -2.34 %       ±6.38%  ±8.41% ±10.79%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                                   0.57 %       ±3.61%  ±4.76%  ±6.11%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                                0.26 %       ±6.45%  ±8.51% ±10.91%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                                   0.99 %       ±5.51%  ±7.27%  ±9.33%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                                0.00 %       ±6.53%  ±8.60% ±11.04%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                                   1.02 %       ±5.59%  ±7.37%  ±9.45%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                                  0.94 %       ±8.62% ±11.36% ±14.58%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                                    -0.74 %       ±8.64% ±11.38% ±14.61%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                                 -1.93 %       ±8.02% ±10.57% ±13.56%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                                     0.37 %       ±8.77% ±11.57% ±14.84%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                                 -2.04 %       ±8.24% ±10.86% ±13.93%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                                    -1.98 %       ±8.89% ±11.72% ±15.04%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                                 -0.60 %       ±8.69% ±11.45% ±14.69%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                                     0.53 %       ±8.93% ±11.77% ±15.10%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                                 -1.20 %       ±8.20% ±10.81% ±13.87%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                                     0.15 %       ±8.89% ±11.72% ±15.03%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                                 -1.05 %       ±7.98% ±10.51% ±13.49%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                                     0.40 %       ±8.93% ±11.77% ±15.11%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                                 -1.16 %       ±8.35% ±11.01% ±14.12%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                                     0.04 %       ±9.17% ±12.09% ±15.51%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                                  1.86 %       ±8.56% ±11.28% ±14.48%
util/text-decoder-stream.js type='Buffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                                    -0.75 %       ±9.09% ±11.98% ±15.38%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                    2.03 %       ±6.32%  ±8.33% ±10.68%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                      -0.36 %       ±9.43% ±12.43% ±15.95%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                    1.42 %       ±6.00%  ±7.91% ±10.15%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                      -1.06 %       ±9.77% ±12.87% ±16.52%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                    3.67 %       ±6.27%  ±8.26% ±10.60%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                       1.14 %       ±9.67% ±12.74% ±16.35%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                    2.08 %       ±6.29%  ±8.29% ±10.63%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                       1.11 %       ±9.69% ±12.78% ±16.40%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                    4.18 %       ±6.30%  ±8.31% ±10.66%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                       0.34 %       ±3.19%  ±4.21%  ±5.40%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                    1.54 %       ±6.04%  ±7.96% ±10.22%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                      -1.12 %       ±3.22%  ±4.24%  ±5.44%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                    2.42 %       ±5.97%  ±7.86% ±10.09%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                      -2.51 %       ±4.84%  ±6.38%  ±8.19%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                    1.34 %       ±6.00%  ±7.90% ±10.14%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=131072 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                       0.69 %       ±4.69%  ±6.18%  ±7.93%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                     0.82 %       ±9.79% ±12.91% ±16.56%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                        0.33 %      ±11.92% ±15.71% ±20.15%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                    -0.30 %       ±9.46% ±12.47% ±16.01%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                       -1.03 %      ±11.73% ±15.46% ±19.84%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                    -0.03 %       ±9.40% ±12.40% ±15.90%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                       -0.01 %      ±12.04% ±15.87% ±20.36%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                    -0.14 %       ±9.39% ±12.38% ±15.89%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                        2.37 %      ±12.03% ±15.86% ±20.35%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                     2.78 %       ±9.72% ±12.82% ±16.45%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                       -0.01 %       ±5.11%  ±6.73%  ±8.64%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                    -0.76 %       ±9.51% ±12.53% ±16.08%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                        0.55 %       ±5.27%  ±6.94%  ±8.91%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                     0.20 %       ±9.73% ±12.83% ±16.46%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                       -0.25 %       ±8.59% ±11.33% ±14.53%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                     1.39 %       ±9.64% ±12.71% ±16.31%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=16384 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                        1.76 %       ±8.33% ±10.97% ±14.08%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-16le'                      -0.20 %      ±10.15% ±13.38% ±17.17%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=0 encoding='utf-8'                          0.71 %      ±10.79% ±14.22% ±18.24%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-16le'                      -0.15 %      ±10.11% ±13.33% ±17.11%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=0 ignoreBOM=1 encoding='utf-8'                          0.88 %      ±10.66% ±14.05% ±18.03%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-16le'                      -0.25 %      ±10.08% ±13.29% ±17.05%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=0 encoding='utf-8'                         -1.16 %      ±10.68% ±14.07% ±18.06%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-16le'                      -3.36 %       ±9.97% ±13.14% ±16.86%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=0 fatal=1 ignoreBOM=1 encoding='utf-8'                         -0.39 %      ±10.59% ±13.96% ±17.91%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-16le'                       1.42 %      ±10.19% ±13.43% ±17.23%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=0 encoding='utf-8'                         -0.95 %      ±10.03% ±13.22% ±16.97%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-16le'                      -1.67 %       ±9.88% ±13.02% ±16.71%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=0 ignoreBOM=1 encoding='utf-8'                         -0.60 %      ±10.01% ±13.20% ±16.93%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-16le'                      -0.28 %      ±10.24% ±13.50% ±17.32%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=0 encoding='utf-8'                          2.67 %      ±10.69% ±14.09% ±18.08%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-16le'                      -0.48 %      ±10.00% ±13.18% ±16.92%
util/text-decoder-stream.js type='SharedArrayBuffer' n=1000 chunks=10 len=256 unicode=1 fatal=1 ignoreBOM=1 encoding='utf-8'                          0.68 %      ±10.81% ±14.25% ±18.28%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                   1.18 %       ±9.15% ±12.06% ±15.47%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                        0.50 %       ±9.24% ±12.17% ±15.62%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                 0.47 %       ±9.14% ±12.05% ±15.46%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                  -0.21 %       ±9.40% ±12.39% ±15.90%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                        0.72 %       ±9.39% ±12.37% ±15.87%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                -0.51 %       ±9.22% ±12.15% ±15.59%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                   0.47 %       ±9.50% ±12.53% ±16.08%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                       -1.87 %       ±9.07% ±11.96% ±15.34%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                 0.38 %       ±9.04% ±11.92% ±15.29%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                  -0.89 %       ±9.40% ±12.39% ±15.90%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                        0.74 %       ±9.37% ±12.35% ±15.84%
util/text-decoder.js n=1000 len=131072 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                -1.49 %       ±8.88% ±11.71% ±15.02%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                        3.23 %       ±9.54% ±12.57% ±16.13%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                            -0.02 %       ±9.04% ±11.92% ±15.29%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                      0.21 %       ±9.17% ±12.09% ±15.52%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                       -0.41 %       ±9.44% ±12.44% ±15.97%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                             0.15 %       ±9.07% ±11.95% ±15.33%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                      1.71 %       ±9.21% ±12.14% ±15.58%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                        1.56 %       ±9.42% ±12.42% ±15.93%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                             0.73 %       ±9.04% ±11.91% ±15.29%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                      0.02 %       ±9.06% ±11.94% ±15.33%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                       -1.21 %       ±9.50% ±12.53% ±16.07%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                             0.41 %       ±9.06% ±11.94% ±15.33%
util/text-decoder.js n=1000 len=131072 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                     -1.04 %       ±9.10% ±12.00% ±15.40%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                             0.68 %       ±9.19% ±12.11% ±15.55%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                 -2.30 %       ±7.97% ±10.51% ±13.48%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                          -0.50 %       ±8.94% ±11.78% ±15.12%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                            -0.03 %       ±9.17% ±12.09% ±15.51%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                 -0.29 %       ±8.08% ±10.65% ±13.67%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                          -0.40 %       ±8.81% ±11.61% ±14.90%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                             0.33 %       ±9.16% ±12.07% ±15.49%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                  0.25 %       ±8.19% ±10.79% ±13.85%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                           0.27 %       ±9.00% ±11.86% ±15.22%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                            -0.25 %       ±8.92% ±11.76% ±15.09%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                  0.40 %       ±8.02% ±10.57% ±13.56%
util/text-decoder.js n=1000 len=131072 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                          -0.51 %       ±8.96% ±11.82% ±15.16%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                         0.32 %       ±7.92% ±10.44% ±13.40%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                             -1.78 %       ±2.23%  ±2.94%  ±3.78%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                       0.22 %       ±7.60% ±10.02% ±12.85%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                         0.05 %       ±7.96% ±10.49% ±13.47%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                             -1.28 %       ±2.31%  ±3.04%  ±3.90%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                      -0.83 %       ±7.58%  ±9.99% ±12.82%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                        -0.01 %       ±8.33% ±10.99% ±14.10%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                             -1.91 %       ±7.16%  ±9.44% ±12.12%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                       0.96 %       ±7.65% ±10.08% ±12.94%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                        -1.28 %       ±8.37% ±11.04% ±14.16%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                             -2.05 %       ±6.93%  ±9.14% ±11.72%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                      -1.41 %       ±7.36%  ±9.70% ±12.44%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                              0.07 %       ±7.88% ±10.39% ±13.33%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                  -1.18 %       ±2.23%  ±2.94%  ±3.77%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                           -1.07 %       ±7.57%  ±9.97% ±12.80%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                              1.07 %       ±7.99% ±10.53% ±13.51%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                  -0.75 %       ±2.19%  ±2.89%  ±3.71%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                           -0.08 %       ±7.60% ±10.02% ±12.85%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                              0.02 %       ±8.40% ±11.07% ±14.20%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                  -2.74 %       ±7.16%  ±9.43% ±12.10%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                           -1.37 %       ±7.51%  ±9.90% ±12.71%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                             -0.70 %       ±8.54% ±11.25% ±14.44%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                   0.10 %       ±6.97%  ±9.19% ±11.79%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                           -1.69 %       ±7.48%  ±9.86% ±12.65%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                   0.56 %       ±4.97%  ±6.55%  ±8.40%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                       -1.24 %       ±2.14%  ±2.83%  ±3.63%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                 1.16 %       ±5.09%  ±6.72%  ±8.62%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                  -0.33 %       ±5.22%  ±6.88%  ±8.83%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                       -1.49 %       ±2.28%  ±3.01%  ±3.86%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                -0.05 %       ±4.85%  ±6.39%  ±8.20%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                   0.45 %       ±5.13%  ±6.76%  ±8.68%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                        0.01 %       ±7.04%  ±9.27% ±11.90%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                 1.12 %       ±4.87%  ±6.42%  ±8.24%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                   0.25 %       ±5.13%  ±6.77%  ±8.68%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                       -1.58 %       ±6.72%  ±8.86% ±11.37%
util/text-decoder.js n=1000 len=131072 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                 0.66 %       ±4.95%  ±6.53%  ±8.38%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                         0.67 %       ±7.70% ±10.15% ±13.02%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                             -1.00 %      ±11.91% ±15.70% ±20.15%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                      -0.35 %       ±7.71% ±10.16% ±13.04%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                        -0.26 %       ±7.63% ±10.06% ±12.91%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                             -0.22 %      ±11.97% ±15.78% ±20.24%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                      -0.05 %       ±7.90% ±10.42% ±13.37%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                         0.11 %       ±7.75% ±10.21% ±13.11%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                             -0.77 %       ±7.47%  ±9.85% ±12.64%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                       1.00 %       ±7.81% ±10.29% ±13.21%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                        -0.93 %       ±7.67% ±10.11% ±12.97%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                             -0.58 %       ±7.44%  ±9.80% ±12.58%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                      -0.61 %       ±7.73% ±10.19% ±13.08%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                             -0.71 %       ±7.52%  ±9.92% ±12.72%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                  -1.95 %      ±11.64% ±15.34% ±19.68%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                           -0.57 %       ±7.84% ±10.33% ±13.25%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                              0.32 %       ±7.71% ±10.16% ±13.04%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                  -1.20 %      ±11.78% ±15.53% ±19.93%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                           -0.85 %       ±7.86% ±10.37% ±13.30%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                              0.24 %       ±7.73% ±10.19% ±13.08%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                  -0.66 %       ±7.47%  ±9.85% ±12.64%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                            0.81 %       ±7.83% ±10.32% ±13.24%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                             -0.10 %       ±7.75% ±10.22% ±13.11%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                   0.20 %       ±7.31%  ±9.64% ±12.37%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                           -1.54 %       ±7.84% ±10.34% ±13.26%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                  -0.28 %       ±4.97%  ±6.55%  ±8.41%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                       -0.64 %      ±11.50% ±15.16% ±19.45%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                 0.09 %       ±4.98%  ±6.57%  ±8.43%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                  -0.15 %       ±5.16%  ±6.80%  ±8.73%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                       -1.24 %      ±11.57% ±15.25% ±19.57%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                -0.67 %       ±4.91%  ±6.48%  ±8.31%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                  -0.24 %       ±5.05%  ±6.66%  ±8.54%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                       -0.36 %       ±7.27%  ±9.59% ±12.30%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                 0.53 %       ±4.89%  ±6.44%  ±8.27%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                  -0.53 %       ±5.23%  ±6.89%  ±8.84%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                       -0.16 %       ±7.06%  ±9.31% ±11.94%
util/text-decoder.js n=1000 len=131072 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                -1.50 %       ±4.91%  ±6.47%  ±8.31%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                    1.87 %      ±11.27% ±14.85% ±19.05%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                        -0.87 %      ±12.01% ±15.83% ±20.31%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                 -0.34 %      ±11.36% ±14.97% ±19.21%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                   -0.47 %      ±11.34% ±14.94% ±19.17%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                        -0.29 %      ±12.16% ±16.03% ±20.57%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                  0.33 %      ±11.46% ±15.11% ±19.39%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                    0.58 %      ±11.64% ±15.34% ±19.69%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                        -0.91 %      ±12.09% ±15.94% ±20.45%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                  0.45 %      ±11.24% ±14.81% ±19.01%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                   -0.98 %      ±11.73% ±15.46% ±19.83%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                         3.38 %      ±12.22% ±16.11% ±20.68%
util/text-decoder.js n=1000 len=16384 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                 -0.88 %      ±11.28% ±14.87% ±19.07%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                         3.13 %      ±11.57% ±15.25% ±19.57%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                              1.18 %      ±11.96% ±15.76% ±20.23%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                       2.85 %      ±11.42% ±15.06% ±19.32%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                         1.98 %      ±11.57% ±15.25% ±19.57%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                              2.54 %      ±12.07% ±15.91% ±20.42%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                       0.71 %      ±11.22% ±14.78% ±18.97%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                         1.48 %      ±11.49% ±15.14% ±19.43%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                              0.86 %      ±11.77% ±15.51% ±19.91%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                      -2.37 %      ±11.01% ±14.51% ±18.62%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                         0.08 %      ±11.78% ±15.53% ±19.93%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                              0.99 %      ±12.01% ±15.82% ±20.31%
util/text-decoder.js n=1000 len=16384 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                      -1.44 %      ±11.06% ±14.58% ±18.71%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                             -1.05 %      ±11.44% ±15.08% ±19.35%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                   0.70 %      ±11.75% ±15.49% ±19.87%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                           -0.14 %      ±11.07% ±14.59% ±18.72%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                             -2.10 %      ±11.40% ±15.03% ±19.29%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                   1.56 %      ±12.00% ±15.81% ±20.29%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                           -0.04 %      ±11.43% ±15.07% ±19.34%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                             -0.23 %      ±11.27% ±14.85% ±19.06%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                  -1.27 %      ±11.67% ±15.39% ±19.75%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                            1.80 %      ±11.23% ±14.80% ±18.99%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                              0.33 %      ±11.53% ±15.19% ±19.50%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                   3.41 %      ±11.95% ±15.75% ±20.21%
util/text-decoder.js n=1000 len=16384 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                           -1.08 %      ±11.23% ±14.80% ±18.99%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                          1.25 %       ±8.55% ±11.27% ±14.47%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                              -1.43 %       ±2.94%  ±3.87%  ±4.97%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                       -0.41 %       ±8.04% ±10.60% ±13.60%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                         -0.27 %       ±8.54% ±11.26% ±14.45%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                              -1.06 %       ±2.90%  ±3.83%  ±4.91%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                       -0.14 %       ±7.93% ±10.45% ±13.41%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                         -1.06 %       ±8.97% ±11.82% ±15.17%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                              -0.92 %       ±8.39% ±11.06% ±14.19%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                        0.84 %       ±8.06% ±10.63% ±13.63%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                         -0.78 %       ±9.34% ±12.31% ±15.80%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                              -1.54 %       ±8.12% ±10.70% ±13.73%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                        1.49 %       ±7.99% ±10.53% ±13.51%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                              -0.23 %       ±8.62% ±11.36% ±14.57%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                   -1.63 %       ±2.76%  ±3.64%  ±4.68%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                             0.30 %       ±8.13% ±10.72% ±13.76%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                               1.20 %       ±8.78% ±11.57% ±14.84%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                   -0.45 %       ±2.91%  ±3.84%  ±4.92%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                             0.81 %       ±7.98% ±10.51% ±13.49%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                               1.77 %       ±9.31% ±12.27% ±15.74%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                   -0.62 %       ±8.54% ±11.26% ±14.44%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                            -0.00 %       ±7.85% ±10.35% ±13.28%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                              -0.17 %       ±9.22% ±12.15% ±15.59%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                   -3.69 %       ±7.94% ±10.47% ±13.43%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                            -0.88 %       ±8.23% ±10.84% ±13.91%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                    0.05 %       ±5.07%  ±6.68%  ±8.58%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                        -2.29 %       ±2.89%  ±3.81%  ±4.89%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                 -0.31 %       ±5.15%  ±6.79%  ±8.71%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                   -0.34 %       ±5.27%  ±6.95%  ±8.92%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                        -1.82 %       ±2.87%  ±3.78%  ±4.85%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                 -1.67 %       ±5.17%  ±6.82%  ±8.75%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                    0.45 %       ±6.20%  ±8.17% ±10.48%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                        -0.71 %       ±8.43% ±11.11% ±14.26%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                  1.16 %       ±5.25%  ±6.92%  ±8.88%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                   -0.06 %       ±6.17%  ±8.13% ±10.43%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                        -2.47 %       ±8.25% ±10.87% ±13.95%
util/text-decoder.js n=1000 len=16384 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                 -0.10 %       ±5.10%  ±6.72%  ±8.62%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                          0.76 %       ±8.57% ±11.29% ±14.49%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                               1.98 %       ±9.45% ±12.46% ±15.98%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                        1.57 %       ±8.55% ±11.27% ±14.46%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                         -0.73 %       ±8.35% ±11.01% ±14.12%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                              -0.79 %       ±9.05% ±11.93% ±15.31%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                        0.64 %       ±8.45% ±11.14% ±14.29%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                          0.04 %       ±8.41% ±11.09% ±14.23%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                              -1.10 %       ±9.09% ±11.98% ±15.37%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                        1.73 %       ±8.48% ±11.17% ±14.34%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                         -3.19 %       ±8.27% ±10.90% ±13.98%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                               0.04 %       ±8.69% ±11.45% ±14.69%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                       -0.45 %       ±8.49% ±11.20% ±14.37%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                              -1.11 %       ±8.44% ±11.12% ±14.27%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                   -3.40 %       ±8.86% ±11.68% ±14.98%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                            -1.29 %       ±8.45% ±11.14% ±14.30%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                              -0.30 %       ±8.48% ±11.18% ±14.34%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                    1.67 %       ±9.32% ±12.28% ±15.76%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                             0.31 %       ±8.56% ±11.28% ±14.47%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                               0.92 %       ±8.55% ±11.27% ±14.46%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                   -1.91 %       ±8.95% ±11.80% ±15.14%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                            -1.09 %       ±8.40% ±11.07% ±14.20%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                               0.26 %       ±8.55% ±11.27% ±14.47%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                   -1.09 %       ±8.57% ±11.29% ±14.49%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                            -0.64 %       ±8.60% ±11.34% ±14.55%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                   -0.45 %       ±4.93%  ±6.50%  ±8.34%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                        -2.12 %       ±8.91% ±11.74% ±15.07%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                  0.54 %       ±5.37%  ±7.08%  ±9.08%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                    1.11 %       ±5.27%  ±6.95%  ±8.92%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                         0.61 %       ±9.32% ±12.28% ±15.76%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                  0.07 %       ±4.99%  ±6.58%  ±8.45%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                   -0.34 %       ±5.23%  ±6.89%  ±8.84%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                         2.05 %       ±9.15% ±12.07% ±15.48%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                  1.20 %       ±5.30%  ±6.98%  ±8.96%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                   -0.86 %       ±5.34%  ±7.04%  ±9.04%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                        -1.49 %       ±8.62% ±11.37% ±14.59%
util/text-decoder.js n=1000 len=16384 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                 -1.57 %       ±5.19%  ±6.83%  ±8.77%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                     -1.31 %      ±13.40% ±17.67% ±22.67%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                          -0.21 %      ±14.13% ±18.63% ±23.90%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                   -0.24 %      ±13.56% ±17.88% ±22.94%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                      2.06 %      ±13.85% ±18.26% ±23.43%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                          -0.63 %      ±14.10% ±18.59% ±23.85%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                   -0.53 %      ±13.53% ±17.83% ±22.88%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                     -1.61 %      ±13.45% ±17.74% ±22.76%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                          -1.06 %      ±13.91% ±18.34% ±23.53%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                   -0.42 %      ±12.91% ±17.01% ±21.83%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                     -0.50 %      ±13.79% ±18.17% ±23.32%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                           2.99 %      ±13.85% ±18.25% ±23.42%
util/text-decoder.js n=1000 len=256 content='ascii' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                   -2.29 %      ±13.42% ±17.69% ±22.70%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                           2.35 %      ±13.46% ±17.74% ±22.76%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                               -1.76 %      ±13.55% ±17.86% ±22.91%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                                         0.10 %      ±13.28% ±17.50% ±22.46%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                          -0.06 %      ±13.52% ±17.81% ±22.86%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                               -0.20 %      ±14.13% ±18.63% ±23.90%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                                        -2.45 %      ±13.02% ±17.16% ±22.02%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                           0.24 %      ±13.39% ±17.64% ±22.64%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                                2.64 %      ±14.05% ±18.51% ±23.76%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                                        -1.11 %      ±12.90% ±17.01% ±21.82%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                           1.16 %      ±13.47% ±17.76% ±22.78%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                                0.77 %      ±13.62% ±17.95% ±23.03%
util/text-decoder.js n=1000 len=256 content='ascii' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                                        -1.61 %      ±13.04% ±17.18% ±22.05%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                               -0.20 %      ±13.69% ±18.04% ±23.15%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                    -1.00 %      ±14.34% ±18.91% ±24.26%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                             -0.88 %      ±13.28% ±17.51% ±22.47%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                               -0.36 %      ±13.66% ±18.00% ±23.10%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                    -0.80 %      ±14.13% ±18.63% ±23.90%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                              0.92 %      ±13.79% ±18.17% ±23.32%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                1.44 %      ±13.48% ±17.77% ±22.80%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                    -2.92 %      ±13.47% ±17.75% ±22.78%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                              1.17 %      ±13.50% ±17.80% ±22.84%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                               -0.34 %      ±13.59% ±17.91% ±22.98%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                     0.02 %      ±13.68% ±18.03% ±23.14%
util/text-decoder.js n=1000 len=256 content='ascii' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                             -2.34 %      ±13.33% ±17.57% ±22.54%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                            1.08 %      ±11.29% ±14.89% ±19.10%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                -4.10 %       ±9.50% ±12.52% ±16.06%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                          0.16 %      ±11.03% ±14.53% ±18.65%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                           -0.78 %      ±11.46% ±15.11% ±19.38%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                -0.43 %       ±9.89% ±13.03% ±16.73%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                         -0.13 %      ±11.06% ±14.57% ±18.70%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                           -0.14 %      ±10.52% ±13.87% ±17.80%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                -2.93 %      ±12.89% ±16.98% ±21.79%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                         -0.05 %      ±11.18% ±14.74% ±18.91%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                           -2.78 %      ±10.43% ±13.75% ±17.65%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                 0.93 %      ±12.82% ±16.90% ±21.69%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                         -7.16 %      ±10.56% ±13.92% ±17.86%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                 0.81 %      ±10.87% ±14.33% ±18.38%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                     -3.48 %       ±9.73% ±12.82% ±16.45%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                              -1.53 %      ±11.12% ±14.66% ±18.81%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                 0.60 %      ±11.32% ±14.92% ±19.15%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                     -2.01 %       ±9.75% ±12.85% ±16.49%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                              -0.89 %      ±10.83% ±14.27% ±18.31%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                 0.03 %      ±10.78% ±14.21% ±18.24%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                     -0.12 %      ±12.79% ±16.86% ±21.64%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                               0.09 %      ±11.00% ±14.50% ±18.61%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                 0.27 %      ±10.83% ±14.27% ±18.32%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                     -0.06 %      ±12.33% ±16.25% ±20.86%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                               0.66 %      ±11.40% ±15.02% ±19.27%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                     -1.66 %      ±10.66% ±14.05% ±18.02%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                           2.15 %      ±10.49% ±13.83% ±17.75%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                   -1.81 %      ±10.77% ±14.20% ±18.22%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                     -2.76 %      ±10.47% ±13.80% ±17.71%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                          -0.48 %      ±10.57% ±13.94% ±17.88%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                   -0.79 %      ±10.74% ±14.16% ±18.17%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                      1.23 %      ±10.56% ±13.91% ±17.85%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                          -0.47 %      ±12.76% ±16.82% ±21.58%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                   -4.00 %      ±10.56% ±13.93% ±17.87%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                     -1.13 %      ±10.37% ±13.67% ±17.54%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                          -0.54 %      ±12.44% ±16.40% ±21.05%
util/text-decoder.js n=1000 len=256 content='one-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                   -1.95 %      ±10.75% ±14.17% ±18.18%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                            2.75 %      ±11.58% ±15.26% ±19.58%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                 4.57 %      ±13.13% ±17.31% ±22.21%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                         -1.71 %      ±11.02% ±14.52% ±18.63%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                           -1.87 %      ±11.49% ±15.15% ±19.43%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                 0.92 %      ±12.84% ±16.93% ±21.72%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                         -1.69 %      ±10.99% ±14.49% ±18.59%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                            2.09 %      ±11.42% ±15.05% ±19.31%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                -1.06 %      ±13.54% ±17.85% ±22.90%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                         -0.16 %      ±11.11% ±14.64% ±18.79%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                           -3.49 %      ±11.21% ±14.78% ±18.96%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                -2.10 %      ±13.16% ±17.35% ±22.26%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='ArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                         -2.86 %      ±11.00% ±14.49% ±18.60%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                                 0.25 %      ±10.89% ±14.35% ±18.41%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='utf-8'                                      0.38 %      ±12.43% ±16.39% ±21.03%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                               2.05 %      ±11.25% ±14.83% ±19.03%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                                -1.22 %      ±10.93% ±14.41% ±18.49%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='utf-8'                                      3.19 %      ±12.84% ±16.93% ±21.72%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                               2.03 %      ±11.31% ±14.91% ±19.13%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                                 0.42 %      ±11.52% ±15.18% ±19.48%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='utf-8'                                      0.17 %      ±13.32% ±17.56% ±22.54%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                               0.03 %      ±11.02% ±14.52% ±18.64%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                                -0.44 %      ±11.34% ±14.95% ±19.18%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='utf-8'                                      0.17 %      ±13.50% ±17.80% ±22.84%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='Buffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                              -3.41 %      ±10.93% ±14.41% ±18.49%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='iso-8859-3'                      1.18 %      ±10.87% ±14.32% ±18.38%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='utf-8'                          -3.13 %      ±12.38% ±16.32% ±20.94%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=0 encoding='windows-1252'                   -0.90 %      ±10.64% ±14.03% ±18.00%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='iso-8859-3'                      1.12 %      ±11.04% ±14.55% ±18.67%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='utf-8'                           0.79 %      ±12.85% ±16.94% ±21.73%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=0 ignoreBOM=1 encoding='windows-1252'                   -1.67 %      ±10.57% ±13.93% ±17.87%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='iso-8859-3'                     -0.94 %      ±10.89% ±14.35% ±18.42%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='utf-8'                           2.17 %      ±13.67% ±18.01% ±23.11%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=0 encoding='windows-1252'                   -0.43 %      ±10.38% ±13.68% ±17.55%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='iso-8859-3'                      1.05 %      ±10.73% ±14.14% ±18.14%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='utf-8'                          -3.42 %      ±12.75% ±16.81% ±21.56%
util/text-decoder.js n=1000 len=256 content='two-byte-string' type='SharedArrayBuffer' fatal=1 ignoreBOM=1 encoding='windows-1252'                   -1.89 %      ±10.59% ±13.96% ±17.92%

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

[!WARNING]
Do not take GHA benchmark results as face value, always confirm them
using a dedicated machine, e.g. Jenkins CI.

@codecov

codecov Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.05%. Comparing base (7b0de5e) to head (953b4f5).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #65634   +/-   ##
=======================================
  Coverage   90.05%   90.05%           
=======================================
  Files         754      754           
  Lines      255722   255720    -2     
  Branches    48314    48318    +4     
=======================================
+ Hits       230281   230289    +8     
- Misses      16555    16557    +2     
+ Partials     8886     8874   -12     
Files with missing lines Coverage Δ
src/node_i18n.cc 78.43% <100.00%> (+0.15%) ⬆️

... and 35 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@MikeMcC399

Copy link
Copy Markdown
Contributor

Unfortunately there was an issue in the main branch causing tests to fail. Please follow the instructions to rebase your branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Issues and PRs that require attention from people who are familiar with C++. i18n-api Issues and PRs related to Node.js internationalization support. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TextDecoder: ERR_ENCODING_INVALID_ENCODED_DATA on very long array buffer

3 participants