buffer: allow encoding param to collapse
Currently the signature is indexOf(val[, byteOffset[, encoding]]) Instead allow indexOf(val[, byteOffset][, encoding]) so that byteOffset does not need to be passed. PR-URL: https://github.com/nodejs/node/pull/4803 Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
6712a1faa5
commit
7240ad4441
@ -477,10 +477,14 @@ function slowIndexOf(buffer, val, byteOffset, encoding) {
|
||||
}
|
||||
|
||||
Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {
|
||||
if (byteOffset > 0x7fffffff)
|
||||
if (typeof byteOffset === 'string') {
|
||||
encoding = byteOffset;
|
||||
byteOffset = 0;
|
||||
} else if (byteOffset > 0x7fffffff) {
|
||||
byteOffset = 0x7fffffff;
|
||||
else if (byteOffset < -0x80000000)
|
||||
} else if (byteOffset < -0x80000000) {
|
||||
byteOffset = -0x80000000;
|
||||
}
|
||||
byteOffset >>= 0;
|
||||
|
||||
if (typeof val === 'string') {
|
||||
|
@ -111,6 +111,11 @@ assert.equal(
|
||||
.indexOf(Buffer('d', 'binary'), 0, 'binary'), 3);
|
||||
|
||||
|
||||
// test optional offset with passed encoding
|
||||
assert.equal(new Buffer('aaaa0').indexOf('30', 'hex'), 4);
|
||||
assert.equal(new Buffer('aaaa00a').indexOf('3030', 'hex'), 4);
|
||||
|
||||
|
||||
// test usc2 encoding
|
||||
var twoByteString = new Buffer('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2');
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user