Skip to content

fix: JSON.stringify integers, implement number array join, add NaN/Infinity#248

Merged
cs01 merged 4 commits intomainfrom
fix/json-stringify-integers
Mar 11, 2026
Merged

fix: JSON.stringify integers, implement number array join, add NaN/Infinity#248
cs01 merged 4 commits intomainfrom
fix/json-stringify-integers

Conversation

@cs01
Copy link
Copy Markdown
Owner

@cs01 cs01 commented Mar 11, 2026

Summary

  • JSON.stringify integers: JSON.stringify({count: 42}) now outputs 42 instead of 42.0, matching JavaScript behavior. Fixed in yyjson bridge by detecting integer-valued doubles.
  • Number array join: [1,2,3].join(", ") was returning empty string — the numeric join was a stub. Implemented proper loop with snprintf and integer detection.
  • NaN and Infinity globals: NaN and Infinity are now recognized as global constants, enabling Number.isNaN(NaN), Number.isFinite(Infinity), etc.

Test plan

  • builtins/json-stringify-integers.ts — JSON integer and float formatting
  • arrays/number-array-join.ts — number array join with commas, floats, empty, single
  • builtins/nan-infinity.ts — NaN/Infinity with Number.isNaN/isFinite/isInteger
  • Updated json-stringify-class.ts and context-json-array.ts for correct integer format
  • npm run verify:quick passes (tests + Stage 1 self-hosting)

🤖 Generated with Claude Code

@cs01 cs01 changed the title fix: JSON.stringify outputs integers without trailing .0 fix: JSON.stringify integers, implement number array join, add NaN/Infinity Mar 11, 2026
@cs01 cs01 merged commit 17834b2 into main Mar 11, 2026
12 checks passed
@cs01 cs01 deleted the fix/json-stringify-integers branch March 12, 2026 05:35
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.

1 participant