Skip to content

fix(url): coerce WHATWG string arguments#3512

Merged
proggeramlug merged 2 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-url-coercion
May 31, 2026
Merged

fix(url): coerce WHATWG string arguments#3512
proggeramlug merged 2 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-url-coercion

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Summary

Why Batched
These issues share the same WHATWG URL string-conversion boundary. Fixing them together keeps runtime FFI, codegen lowering, dynamic URL property assignment, and parity coverage consistent.

Verification

  • Pre-fix focused parity reproduced all three gaps: PATH=/home/github-runner/actions-runner/externals/node24/bin:$PATH ./run_parity_tests.sh --suite node-suite --module url --filter coercion failed 0/3. Report: test-parity/reports/parity_report_20260531_025714.json
  • Rebased full URL parity passed: PATH=/home/github-runner/actions-runner/externals/node24/bin:$PATH ./run_parity_tests.sh --suite node-suite --module url passed 61/61, 0 fail, 0 compile fail. Report: test-parity/reports/parity_report_20260531_032208.json
  • RUSTC_WRAPPER= cargo check -p perry-runtime -p perry-codegen -p perry-hir -p perry-api-manifest -p perry passed with existing warnings.
  • cargo fmt --all -- --check passed.
  • ./scripts/check_file_size.sh passed.
  • jq empty test-parity/known_failures.json passed.
  • git diff HEAD~1..HEAD --check passed.

Known Limitations / Non-goals

  • No broad WHATWG URL parser or IDNA algorithm rewrite beyond the coercion and adjacent setter validation covered here.
  • No changes to legacy url.parse(), url.format(), or file URL path conversion behavior.

# Conflicts:
#	crates/perry-codegen/src/expr/url_main.rs
@proggeramlug proggeramlug merged commit ac9ac1a into PerryTS:main May 31, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants