Revisit Fast APIs implementations & New implementations
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 399
- Forks
- 11
- Avg merge
- 29m
- Merged PRs (30d)
- 1
Description
Since #23, there have been many implementations in Node using fast APIs, and I want to open this issue to encourage to revisit them and probably take a look at other places where we could implement the latest changes.
Since https://github.com/nodejs/node/pull/54077, we have now support to throw errors inside fast apis, this was not possible before and we the "options.fallback" was the only way to throw errors.
We also had some limitations around int64 and bigints, and now I think those limitations was solved since I found some tests on v8 returning bigints:
- c++ ref: https://github.com/nodejs/node/blob/main/deps/v8/src/d8/d8-test.cc#L1245-L1297
- js ref: https://github.com/nodejs/node/blob/main/deps/v8/test/mjsunit/compiler/fast-api-calls-64-bit-integer-values.js#L182
I'm still trying to figure out all the limitations around these new changes, so any hints around these new changes are very welcome.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing implementations from #23, then compare their fast API usage with Node PR #54077. Read the referenced deps/v8/src/d8/d8-test.cc sections and the fast-api-calls-64-bit-integer-values.js test to identify which limitations have changed; done means updating applicable implementations and covering the changes with tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, javascript, node.js
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100