chakra-core / chakra-core/ChakraCore

Fix OwnPropertyKeys order for String objects

Open
#5,738 0 comments 0 reactions 0 assignees View on GitHub
Bug ES Spec Changed Severity: 3
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.