mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-13 04:17:49 +00:00
Ensure _.omit doesn’t mutate object with deep paths. [closes #2912]
This commit is contained in:
@@ -5632,8 +5632,8 @@
|
||||
* @param {string} key The key of the property to inspect.
|
||||
* @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
|
||||
*/
|
||||
function customOmitClone(value, key) {
|
||||
return (key !== undefined && isPlainObject(value)) ? undefined : value;
|
||||
function customOmitClone(value) {
|
||||
return isPlainObject(value) ? undefined : value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
10
test/test.js
10
test/test.js
@@ -16450,6 +16450,16 @@
|
||||
|
||||
assert.deepEqual(_.omit(object, args), { 'b': 2, 'd': 4 });
|
||||
});
|
||||
|
||||
QUnit.test('should not mutate `object`', function(assert) {
|
||||
assert.expect(4);
|
||||
|
||||
lodashStable.each(['a', ['a'], 'a.b', ['a.b']], function(path) {
|
||||
var object = { 'a': { 'b': 2 } };
|
||||
_.omit(object, path);
|
||||
assert.deepEqual(object, { 'a': { 'b': 2 } });
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
Reference in New Issue
Block a user