structuredClone shortens sparse arrays with trailing holes
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
Description
The React Native structuredClone polyfill initializes an array clone as [] and only assigns enumerable keys. If a sparse array's highest populated index precedes its declared length, the trailing holes are lost and the clone is silently shortened. For example, new Array(3) with only index 1 populated becomes length 2.
Expected behavior
The clone should preserve the source array's declared length and holes. Node's native structuredClone follows this behavior.
React Native Version
0.87.1 and current main
Affected Platforms
JavaScript runtime - All
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 locating the React Native structuredClone polyfill and reproduce the issue with a sparse array such as new Array(3) with only index 1 populated. Verify that the clone preserves the source length and trailing holes, matching Node's native structuredClone behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100