diff --git a/lodash.js b/lodash.js index bd1ae94ef..1717bf41e 100644 --- a/lodash.js +++ b/lodash.js @@ -2252,7 +2252,7 @@ isFunc = tag == funcTag || tag == genTag; if (isBuffer(value)) { - return cloneBuffer(value); + return cloneBuffer(value, isDeep); } if (tag == objectTag || tag == argsTag || (isFunc && !object)) { if (isHostObject(value)) { @@ -3719,7 +3719,7 @@ * @returns {Buffer} Returns the cloned buffer. */ function cloneBuffer(buffer, isDeep) { - if (!isDeep) { + if (isDeep) { return buffer.slice(); } var Ctor = buffer.constructor, diff --git a/test/test.js b/test/test.js index 21618ab39..91212a1be 100644 --- a/test/test.js +++ b/test/test.js @@ -2540,7 +2540,7 @@ }); QUnit.test('`_.' + methodName + '` should clone buffers', function(assert) { - assert.expect(3); + assert.expect(4); if (Buffer) { var buffer = new Buffer([1, 2]), @@ -2549,9 +2549,12 @@ assert.strictEqual(actual.byteLength, buffer.byteLength); assert.strictEqual(actual.inspect(), buffer.inspect()); assert.notStrictEqual(actual, buffer); + + buffer[0] = 2; + assert.strictEqual(actual[0], isDeep ? 2 : 1); } else { - skipTest(assert, 3); + skipTest(assert, 4); } });