Skip to content

Commit

Permalink
buffer: optimize byteLength for common encodings
Browse files Browse the repository at this point in the history
PR-URL: #54342
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
  • Loading branch information
ronag authored Aug 14, 2024
1 parent 4e6befd commit 38ad892
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions lib/buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -782,13 +782,22 @@ function byteLength(string, encoding) {
if (len === 0)
return 0;

if (encoding) {
const ops = getEncodingOps(encoding);
if (ops) {
return ops.byteLength(string);
}
if (!encoding || encoding === 'utf8') {
return byteLengthUtf8(string);
}

if (encoding === 'ascii') {
return len;
}
return byteLengthUtf8(string);

const ops = getEncodingOps(encoding);
if (ops === undefined) {
// TODO (ronag): Makes more sense to throw here.
// throw new ERR_UNKNOWN_ENCODING(encoding);
return byteLengthUtf8(string);
}

return ops.byteLength(string);
}

Buffer.byteLength = byteLength;
Expand Down

0 comments on commit 38ad892

Please sign in to comment.