Skip to content

[pull] master from nodeca:master#18

Merged
pull[bot] merged 2 commits into
threatcode:masterfrom
nodeca:master
Jun 26, 2026
Merged

[pull] master from nodeca:master#18
pull[bot] merged 2 commits into
threatcode:masterfrom
nodeca:master

Conversation

@pull

@pull pull Bot commented Jun 26, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

spokodev and others added 2 commits June 26, 2026 18:30
Integers at or above 1e21 (and Number.MAX_VALUE) stringify via
Number.prototype.toString(10) in exponential notation, e.g. 1e21 -> "1e+21".
The int tags identified these numbers (1e21 % 1 === 0) and represented them
with that exponential text, producing output like `!!int '1e+21'`. That text
matches no `!!int` resolution pattern, so loading the library's own dump output
threw "cannot resolve a node with !<tag:yaml.org,2002:int> explicit tag".

Per YAML 1.2.2 the Core (10.3) and JSON (10.2) `!!int` resolution accepts only
[-+]?[0-9]+ (plus 0o/0x forms); exponential text is a float, not an int.

Make the int tags reject numbers whose decimal stringification contains an
exponent, and let the float tags claim them instead. The float `represent`
already emits a valid float form (1.e+21) for such values, so they now
round-trip. Restores the "numbers survive round-trip" invariant (#737) for
large integers across the default, Core, JSON and YAML 1.1 schemas.
@pull pull Bot locked and limited conversation to collaborators Jun 26, 2026
@pull pull Bot added the ⤵️ pull label Jun 26, 2026
@pull pull Bot merged commit 39d00d6 into threatcode:master Jun 26, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants