Browse Source

buffer: fix backwards incompatibility

4a86803f6 introduced a backwards incompatibility by accident
and was not caught due to an existing test that wasn't strict enough.

This commit fixes both the backwards incompatibility and the test.

PR-URL: https://github.com/nodejs/node/pull/12439
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
v6
Brian White 8 years ago
committed by James M Snell
parent
commit
7cd0d4f644
  1. 5
      lib/buffer.js
  2. 3
      test/parallel/test-buffer-alloc.js

5
lib/buffer.js

@ -456,10 +456,7 @@ function byteLength(string, encoding) {
return len >>> 1;
break;
}
if (mustMatch)
throw new TypeError('Unknown encoding: ' + encoding);
else
return binding.byteLengthUtf8(string);
return (mustMatch ? -1 : binding.byteLengthUtf8(string));
}
Buffer.byteLength = byteLength;

3
test/parallel/test-buffer-alloc.js

@ -885,7 +885,8 @@ assert.throws(() => Buffer.allocUnsafe(8).writeFloatLE(0.0, -1), RangeError);
}
// Regression test for #5482: should throw but not assert in C++ land.
assert.throws(() => Buffer.from('', 'buffer'), TypeError);
assert.throws(() => Buffer.from('', 'buffer'),
/^TypeError: "encoding" must be a valid string encoding$/);
// Regression test for #6111. Constructing a buffer from another buffer
// should a) work, and b) not corrupt the source buffer.

Loading…
Cancel
Save