Skip to content

fixes for newer v8#1752

Open
icambron wants to merge 2 commits intomoment:masterfrom
icambron:fix-for-newer-node
Open

fixes for newer v8#1752
icambron wants to merge 2 commits intomoment:masterfrom
icambron:fix-for-newer-node

Conversation

@icambron
Copy link
Contributor

@icambron icambron commented Jan 13, 2026

The latest v8 (current Chrome and Node 25) introduces a few nasty changes:

  1. more alternative whitespace characters used in formatting by v8. This time it's not just nbsp; there's also now U+202F ("narrow non-breaking space"). This affects Luxon in two ways: a) the fromFormat parsing code will now expect those new kinds of spaces, and b) the test code that makes assertions on the the output of toFormat should ignore different-kind-of-whitespace differences.

2. There's a bug in v8 (or maybe the ICU data) that affects the coptic calendar. It seems to provide "AM" and "PM" as era values. That's weird and I didn't debug it further, since it's easy to reproduce directly in intl. Instead, I switched the tests that use coptic to instead use buddhist I misunderstood the output here. I undid the changes related to this.

  1. The th locale (Thai) no longer produces a localized meridiem string. I've simply removed the uses of it from the tests.

You'll notice there's only one "real" code change: item 1a. Before we handled the NBSP character by replacing any whitespace literals in the token regexes with a character class that included both a regular space and the nbsp character (i.e. [ ${nbsp}]). I've switched it to replace anything matching whitespace character in the regex with the whitespace character class, so for example, /foo bar/ will become /foo\sbar/. I think this is the correct fix, and likely what we should have done all along.

The other changes are all test-related

@diesieben07
Copy link
Collaborator

Hi and thanks for this!
I am currently in the process of working on V4 (which I have honestly been procrastinating on, which is a shame), which is why it took so long for me to look at this.
I think I already have something similar in my V4 branch, but this looks cleaner. I will revisit this once V4 is in a state where the code is actually useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants