-
Notifications
You must be signed in to change notification settings - Fork 7.1k
fix: reduce when we use object with 'length' attribute #5874
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ith` to other methods.
One example now shows that specifying a padding length of less than the length of the string returns the entire original string.
Since `function flow(funcs)` changed to `function flow(...funcs)` this ternary became unnecessary, since funcs will always have a length now.
The return type should be `boolean` instead of `number`
Remove the unused param `hash` from the jsdoc of `Hash#delete`
…dash#4681) --save is a command-line option and it should be monospaced Co-authored-by: utkarsh-kukreti <[email protected]>
The `opt-cli` pre-push functionality was removed from lodash just a few days after it was added (see lodash@2cd12c3), but the documentation encouraging contributors to use it still remains. Remove to avoid confusion for new contributors.
The master branch has been in flux for a pretty long time, so leaving the broken npm scripts and messages in CONTRIBUTING.md doesn't make sense and has been confusing to contributors. This commit removes broken npm scripts and removes all unnecessary dependencies for now.
I've commented out a test for `_.merge` and will re-look it as I gradually cleanup the codebase.
`npm cit` is short for `npm ci` and `npm test`
Signed-off-by: tison <[email protected]>
* test: fix throttle.spec.js Signed-off-by: tison <[email protected]> * test: fix pickBy.spec.js Signed-off-by: tison <[email protected]> * test: fix isBuffer.spec.js Signed-off-by: tison <[email protected]> * test: partially fix attempt.spec.js Signed-off-by: tison <[email protected]> * test: partially fix dropRightWhile.spec.js Signed-off-by: tison <[email protected]> * test: fix defer.spec.js and rest.spec.js Signed-off-by: tison <[email protected]> * test: fix invoke.spec.js Signed-off-by: tison <[email protected]> * test: fix isArray.spec.js Signed-off-by: tison <[email protected]> * test: partially fix iteration-methods.spec.js Signed-off-by: tison <[email protected]> * test: fix xor-methods.spec.js Signed-off-by: tison <[email protected]> * test: fix property.spec.js Signed-off-by: tison <[email protected]> * test: fix ary.spec.js Signed-off-by: tison <[email protected]> * test: fix omit-methods.spec.js Signed-off-by: tison <[email protected]> * test: fix debounce-and-throttle.spec.js Signed-off-by: tison <[email protected]> * test: fix unzip-and-zip.spec.js Signed-off-by: tison <[email protected]> * test: fix toPairs-methods.spec.js Signed-off-by: tison <[email protected]> * test: fix exit-early.spec.js Signed-off-by: tison <[email protected]> * test: temporarily comment out takeWhile and dropWhile tests Signed-off-by: tison <[email protected]> * test: partially fix union*.spec.js Signed-off-by: tison <[email protected]> * test: fix startsWith-and-endsWith.spec.js Signed-off-by: tison <[email protected]> * test: fix isNil.spec.js Signed-off-by: tison <[email protected]> * test: fix some of syntax errors Signed-off-by: tison <[email protected]> --------- Signed-off-by: tison <[email protected]>
Signed-off-by: tison <[email protected]>
@@ -13,7 +13,7 @@ function baseEach(collection, iteratee) { | |||
if (collection == null) { | |||
return collection | |||
} | |||
if (!isArrayLike(collection)) { | |||
if (!isArrayLike(collection) || collection.constructor?.name === 'Object') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To me, this looks like a breaking change.
The current implementation works well for JS classes like this:
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
_.reduce(new Rectangle(100, 100), function(result, value, key) {
result[key] = value;
return result;
}, {});
However, this change is now checking the constructor name, and collection.constructor?.name === 'Object'
would return false
to Rectangle
, so it would probably break there.
Disclaimer: I'm not associated with lodash, and I don't have commit rights to this repo. But decided to review since this PR was aiming to fix the bug I reported.
#5870
This PR is for fixing the related issue