]> zoso.dev Git - buffer.git/commitdiff
don't compare same buffers
authorFeross Aboukhadijeh <feross@feross.org>
Tue, 10 Feb 2015 02:21:08 +0000 (18:21 -0800)
committerFeross Aboukhadijeh <feross@feross.org>
Tue, 10 Feb 2015 02:21:08 +0000 (18:21 -0800)
Copied from iojs: https://github.com/iojs/io.js/pull/742

index.js

index 78f74f25074fbdb50d92b8467a935e44a793ceaa..21c8a09a5aee2ca0003bc46c4b00c75f4a0cd1f0 100644 (file)
--- a/index.js
+++ b/index.js
@@ -149,6 +149,8 @@ Buffer.compare = function (a, b) {
   if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b))
     throw new TypeError('Arguments must be Buffers')
 
+  if (a === b) return 0
+
   var x = a.length
   var y = b.length
   for (var i = 0, len = Math.min(x, y); i < len && a[i] === b[i]; i++) {}
@@ -289,6 +291,7 @@ Buffer.prototype.toString = function (encoding, start, end) {
 
 Buffer.prototype.equals = function (b) {
   if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
+  if (this === b) return true
   return Buffer.compare(this, b) === 0
 }
 
@@ -305,6 +308,7 @@ Buffer.prototype.inspect = function () {
 
 Buffer.prototype.compare = function (b) {
   if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
+  if (this === b) return 0
   return Buffer.compare(this, b)
 }