fix: implement setters, descriptors and more Proxy traps #684
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The implementation of #622 only implemented a
get
Proxy trap. This worked fine for the simple use-case of invoking the methods, but failed when users tried to mock functions with Jest or Sinon. It also did not list all functions anymore, when pressing tab-tab in a REPL.This commit implements further Proxy traps which are required for those use-cases and it uses the cache object for mutating operations.
Fixes: #683
Resolves #683
Before the change?
get
Proxy trap, which was insufficient for mocking functions with Jest or Sinon, and for listing all functions using tab-tab in a REPLAfter the change?
Pull request checklist
Does this introduce a breaking change?
Please see our docs on breaking changes to help!