diff --git a/lodash.js b/lodash.js index 33938375e..663c577bd 100644 --- a/lodash.js +++ b/lodash.js @@ -10173,8 +10173,8 @@ /** * Checks if `value` is an empty object or collection. A value is considered - * empty if it's an `arguments` object, array, string, or jQuery-like collection - * with a length of `0` or has no own enumerable string keyed properties. + * empty if it's an `arguments` object, array, buffer, string, or jQuery-like + * collection with a length of `0` or has no own enumerable string keyed properties. * * @static * @memberOf _ @@ -10201,8 +10201,8 @@ */ function isEmpty(value) { if (isArrayLike(value) && - (isArray(value) || isString(value) || - isFunction(value.splice) || isArguments(value))) { + (isArray(value) || isString(value) || isFunction(value.splice) || + isArguments(value) || isBuffer(value))) { return !value.length; } for (var key in value) { diff --git a/test/test.js b/test/test.js index 0a6bf1f92..3185c08a6 100644 --- a/test/test.js +++ b/test/test.js @@ -8658,7 +8658,7 @@ var args = arguments; QUnit.test('should return `true` for empty values', function(assert) { - assert.expect(8); + assert.expect(10); var expected = lodashStable.map(empties, alwaysTrue), actual = lodashStable.map(empties, _.isEmpty); @@ -8672,6 +8672,14 @@ assert.strictEqual(_.isEmpty(/x/), true); assert.strictEqual(_.isEmpty(symbol), true); assert.strictEqual(_.isEmpty(), true); + + if (Buffer) { + assert.strictEqual(_.isEmpty(new Buffer(0)), true); + assert.strictEqual(_.isEmpty(new Buffer(1)), false); + } + else { + skipAssert(assert, 2); + } }); QUnit.test('should return `false` for non-empty values', function(assert) {