chakra-core / chakra-core/ChakraCore
Fix OwnPropertyKeys order for String objects
- Dominant language
- JavaScript
- Stars
- 9.3k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
See https://github.com/tc39/ecma262/pull/1243.
This specification change achieved consensus at the September 2018 TC39 meeting. Chakra is the only engine that does not implement the modified property order.
```sh
$ eshost -e 'x = new String(); x[2**32-2] = 1; x[2**32-1] = 1; x[2**53-1] = 1; x[2**53] = 1; Reflect.ownKeys(x)'
#### Chakra
4294967294,4294967295,9007199254740991,9007199254740992,length
#### JavaScriptCore
4294967294,length,4294967295,9007199254740991,9007199254740992
#### V8 --harmony
4294967294,length,4294967295,9007199254740991,9007199254740992
#### V8
4294967294,length,4294967295,9007199254740991,9007199254740992
#### SpiderMonkey
4294967294,length,4294967295,9007199254740991,9007199254740992
```
Contributor guide
Research direction
Start with the eshost reproduction using Reflect.ownKeys on a String object, and read the linked ECMA-262 PR 1243 for the required ordering. Trace the Chakra implementation of Reflect.ownKeys and compare its result with the other engines shown; done means the listed keys follow the specification order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100