Skip to content

fix(path): align lexical and win32 edge cases#3501

Open
andrewtdiz wants to merge 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-path-lexical-win32
Open

fix(path): align lexical and win32 edge cases#3501
andrewtdiz wants to merge 1 commit into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-path-lexical-win32

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Closes #2986
Closes #2994
Closes #2995
Closes #2997
Closes #2998
Closes #2999

Summary

  • keep path.resolve() lexical for existing symlinked paths instead of canonicalizing through the filesystem
  • handle full-path suffix stripping for POSIX and win32 basename() while preserving explicit undefined as an omitted suffix
  • validate compiled path.relative() / path.win32.relative() arguments and match win32 drive-relative resolve/relative behavior
  • treat win32 .. basenames as extensionless in extname() and parse()

Verification

  • PATH=/home/github-runner/actions-runner/externals/node24/bin:$PATH ./run_parity_tests.sh --suite node-suite --module path -> 90 pass, 0 fail, 0 compile fail (test-parity/reports/parity_report_20260531_012533.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 --check && git diff --cached --check -> passed

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