Skip to content

Commit 41dfd4b

Browse files
authored
Merge pull request #24 from meeber/fix-old-buffer
fix: handle buffers in Node v0.10
2 parents f88bcf8 + 0f1ac5f commit 41dfd4b

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,13 @@ function keysEqual(leftHandOperand, rightHandOperand, keys, options) {
405405
*/
406406

407407
function objectEqual(leftHandOperand, rightHandOperand, options) {
408+
// This block can be removed once support for Node v0.10 is dropped because
409+
// buffers are properly detected as iterables in later versions.
410+
if (typeof Buffer === 'function' &&
411+
typeof Buffer.isBuffer === 'function' &&
412+
Buffer.isBuffer(leftHandOperand)) {
413+
return iterableEqual(leftHandOperand, rightHandOperand, options);
414+
}
408415
var leftHandKeys = getEnumerableKeys(leftHandOperand);
409416
var rightHandKeys = getEnumerableKeys(rightHandOperand);
410417
if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) {

test/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
var assert = require('simple-assert');
33
var eql = require('..');
44
var MemoizeMap = require('..').MemoizeMap;
5+
function describeIf(condition) {
6+
return condition ? describe : describe.skip;
7+
}
58
describe('Generic', function () {
69

710
describe('strings', function () {
@@ -364,6 +367,24 @@ describe('Generic', function () {
364367

365368
});
366369

370+
describe('Node Specific', function () {
371+
372+
describeIf(typeof Buffer === 'function')('buffers', function () {
373+
374+
it('returns true for same buffers', function () {
375+
assert(eql(new Buffer([ 1 ]), new Buffer([ 1 ])) === true,
376+
'eql(new Buffer([ 1 ]), new Buffer([ 1 ])) === true');
377+
});
378+
379+
it('returns false for different buffers', function () {
380+
assert(eql(new Buffer([ 1 ]), new Buffer([ 2 ])) === false,
381+
'eql(new Buffer([ 1 ]), new Buffer([ 2 ])) === false');
382+
});
383+
384+
});
385+
386+
});
387+
367388
describe('Memoize', function () {
368389

369390
it('returns true if MemoizeMap says so', function () {

0 commit comments

Comments
 (0)