Skip to content

Fix \u{X…XXXXXX} description: a hexadecimal value, not "1 to 6 bytes" - #3975

Open
1t1sCooL wants to merge 2 commits into
javascript-tutorial:masterfrom
1t1sCooL:fix-unicode-hex-digits
Open

Fix \u{X…XXXXXX} description: a hexadecimal value, not "1 to 6 bytes"#3975
1t1sCooL wants to merge 2 commits into
javascript-tutorial:masterfrom
1t1sCooL:fix-unicode-hex-digits

Conversation

@1t1sCooL

@1t1sCooL 1t1sCooL commented Jul 2, 2026

Copy link
Copy Markdown

The \u{X…XXXXXX} escape takes hexadecimal digits, not bytes: the maximum code point 10FFFF is 6 hex digits, which is 3 bytes.

Following the review feedback, the digit-count limit is now dropped as well. The spec does not cap the number of hex digits inside \u{…} — it only requires the resulting value to be at most 0x10FFFF. For instance "\u{0000001}" has seven digits and is perfectly valid, so "1 to 6 digits" would have been inaccurate in its own way. The value range alone conveys everything that matters.

Spotted via the Russian translation (javascript-tutorial/ru.javascript.info#2124), where the same wording was faithfully translated along with the mistake. The Russian side is updated in javascript-tutorial/ru.javascript.info#2175.

@javascript-translate-bot javascript-translate-bot added review needed Review needed, please approve or request changes labels Jul 2, 2026
@javascript-translate-bot
javascript-translate-bot requested review from a team July 2, 2026 17:57
@CLAassistant

CLAassistant commented Jul 2, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@smith558

Copy link
Copy Markdown
Member

@codex review

@smith558 smith558 self-assigned this Jul 25, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 81024abeaf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread 1-js/99-js-misc/06-unicode/article.md Outdated
- `\u{X…XXXXXX}`

`X…XXXXXX` must be a hexadecimal value of 1 to 6 bytes between `0` and `10FFFF` (the highest code point defined by Unicode). This notation allows us to easily represent all existing Unicode characters.
`X…XXXXXX` must be a hexadecimal value of 1 to 6 hex digits between `0` and `10FFFF` (the highest code point defined by Unicode). This notation allows us to easily represent all existing Unicode characters.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Allow leading zeroes beyond six hex digits

ECMAScript does not impose a six-character limit on the contents of a braced Unicode escape; it only requires the resulting numeric value to be at most 0x10FFFF. For example, "\u{0000001}" is valid and produces code point 1, so this wording incorrectly rejects valid escapes containing more than six digits due to leading zeroes. Describe the value as having at most six significant hex digits, or omit the digit-count limit.

Useful? React with 👍 / 👎.

@1t1sCooL

Copy link
Copy Markdown
Author

Good catch, thanks — fixed in 17ba8ad.

The spec doesn't cap the number of hex digits inside \u{…}; it only requires the resulting value to be at most 0x10FFFF. So "\u{0000001}" is valid and yields code point 1, which the "1 to 6" wording wrongly rejected.

I dropped the digit-count clause altogether rather than saying "at most six significant digits" — the value range already carries all the information that matters:

X…XXXXXX must be a hexadecimal value between 0 and 10FFFF (the highest code point defined by Unicode).

Note the original text was inaccurate on a second count as well: it said "1 to 6 bytes", where the escape actually takes hex digits. That was the reason for this PR in the first place.

The same sentence in the Russian translation is updated in javascript-tutorial/ru.javascript.info#2175 to keep the two in sync.

@1t1sCooL 1t1sCooL changed the title Fix "1 to 6 bytes" to "1 to 6 hex digits" in \u{X…XXXXXX} description Fix \u{X…XXXXXX} description: a hexadecimal value, not "1 to 6 bytes" Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review needed Review needed, please approve or request changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants