buffer: don't compare same buffers
PR-URL: https://github.com/iojs/io.js/pull/742 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
parent
847b9d212a
commit
1cd1d7a182
@ -139,6 +139,9 @@ Buffer.compare = function compare(a, b) {
|
||||
!(b instanceof Buffer))
|
||||
throw new TypeError('Arguments must be Buffers');
|
||||
|
||||
if (a === b)
|
||||
return 0;
|
||||
|
||||
return internal.compare(a, b);
|
||||
};
|
||||
|
||||
@ -268,6 +271,9 @@ Buffer.prototype.equals = function equals(b) {
|
||||
if (!(b instanceof Buffer))
|
||||
throw new TypeError('Argument must be a Buffer');
|
||||
|
||||
if (this === b)
|
||||
return true;
|
||||
|
||||
return internal.compare(this, b) === 0;
|
||||
};
|
||||
|
||||
@ -289,6 +295,9 @@ Buffer.prototype.compare = function compare(b) {
|
||||
if (!(b instanceof Buffer))
|
||||
throw new TypeError('Argument must be a Buffer');
|
||||
|
||||
if (this === b)
|
||||
return 0;
|
||||
|
||||
return internal.compare(this, b);
|
||||
};
|
||||
|
||||
|
@ -1128,11 +1128,14 @@ assert.equal(b.compare(c), -1);
|
||||
assert.equal(c.compare(d), 1);
|
||||
assert.equal(d.compare(b), 1);
|
||||
assert.equal(b.compare(d), -1);
|
||||
assert.equal(b.compare(b), 0);
|
||||
|
||||
assert.equal(Buffer.compare(b, c), -1);
|
||||
assert.equal(Buffer.compare(c, d), 1);
|
||||
assert.equal(Buffer.compare(d, b), 1);
|
||||
assert.equal(Buffer.compare(b, d), -1);
|
||||
assert.equal(Buffer.compare(c, c), 0);
|
||||
|
||||
|
||||
assert.throws(function() {
|
||||
var b = new Buffer(1);
|
||||
@ -1158,6 +1161,7 @@ var e = new Buffer(6).fill('abcdef');
|
||||
assert.ok(b.equals(c));
|
||||
assert.ok(!c.equals(d));
|
||||
assert.ok(!d.equals(e));
|
||||
assert.ok(d.equals(d));
|
||||
|
||||
assert.throws(function() {
|
||||
var b = new Buffer(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user