Repository navigation
CallTracker wrapper function to have original function length #40484
Description
Activity
- addedassertIssues and PRs related to the assert subsystem.Issues and PRs related to the assert subsystem.feature requestIssues requesting new Node.js features.Issues requesting new Node.js features.good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.and removedgood first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.
on Oct 16, 2021 @primeare Would you like to work on this?
@Mesteery, yes, I do want to work on this feature implementation. Is there anything important or particular I should know prior to starting working on the implementation except accepting the Code of Conduct and reading the Contribution Guidelines?
Is there anything important or particular I should know
Hopefully documentation (such as in
doc/guides) should contain all the info you need, but don't hesitate to ask questions if you get stuck. Don't forget to runmake lint-js-fixbefore committing, and to add a test that fails with the currentmasterand passes with the fix.Reacted by Vladyslav DukhinThere has been no activity on this feature request for 5 months and it is unlikely to be implemented. It will be closed 6 months after the last non-automated comment.
For more information on how the project manages feature requests, please consult the feature request management document.
- addedstaleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.
on Apr 15, 2022 can I work on this?
Sure, go for it :)
- removedstaleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.
on Apr 29, 2022 - added a commit that references this issue
on May 6, 2022 - added a commit that references this issue
on May 10, 2022 - added a commit that references this issue
on May 31, 2022 - added a commit that references this issue
on Jun 27, 2022 - added a commit that references this issue
on Jul 12, 2022 - added a commit that references this issue
on Jul 31, 2022 - added a commit that references this issue
on Oct 10, 2022
Is your feature request related to a problem?
Some frameworks and libraries (ex. Express.js middleware execution) rely on the function length and use it to decide the appropriate behaviour.
Currently, the
CallTrackerNode.js API does not proxy the original function length. Thus, its application may be limited in certain circumstances.Such widely popular test automation frameworks as Jest have built-in functionality to match the arity of a function when it is mocked. And they also consider the original function length as a source of truth.
So here, it is proposed to change the
CallTracker.callswrapper function to match the arity of the original function.I would be glad to work on this feature and create my first code contribution to the Node.js codebase! 😃
Describe the solution you'd like
To achieve the goal of this feature request, it is proposed to change the
CallTracker.callswrapper function, and, for instance, redefine the length property of this function with:Moreover, the wrapper function may also be refactored to use rest parameters instead of the arguments object.
Describe alternatives you've considered
It is an open question whether it is required to proxy
call,applyandbindmethods calls to the original function, as well as to detect if the wrapper function is called as a constructor.