Add pinned WPT and isolated Node test tooling - #167
Merged
Conversation
dperini
self-requested a review
August 28, 2026 00:59
This was referenced Sep 4, 2026
jdalton
force-pushed
the
selectors4-modernization
branch
from
September 4, 2026 02:47
1c8049f to
9ed7c37
Compare
This was referenced Sep 4, 2026
jdalton
force-pushed
the
selectors4-modernization
branch
from
September 4, 2026 17:00
9ed7c37 to
863101b
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
5 times, most recently
from
September 5, 2026 03:19
c4a84d5 to
f7a7b73
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
2 times, most recently
from
September 5, 2026 15:20
ca721b6 to
c7d62c7
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
2 times, most recently
from
September 5, 2026 15:29
298dade to
bc70456
Compare
This was referenced Sep 5, 2026
This was referenced Sep 5, 2026
jdalton
force-pushed
the
selectors4-modernization
branch
from
September 5, 2026 19:14
bc70456 to
ff9a27e
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
4 times, most recently
from
September 5, 2026 19:38
d5f12b7 to
81f395a
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
from
September 5, 2026 23:59
81f395a to
4246e28
Compare
jdalton
force-pushed
the
selectors4-modernization
branch
from
September 6, 2026 01:24
4246e28 to
abcbecf
Compare
This was referenced Sep 6, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Narrow this PR to development tooling.
src/nwsapi.jsis unchanged from master; selector fixes, legacy handling, optimizations, benchmarks and cross-feature regressions now have separate destinations.Includes pinned WPT setup, a 41-page Chromium runner, independent Node tests, lint, minification and CI. Uses npm with a lockfile. Development guidance is Node.js ≥ 22 at a patch level supported by the dependencies; library runtime support is unchanged.
One commit, 22 changed files instead of 52, and 3,692 additions instead of 12,857. Of those additions, 1,625 are the npm lockfile.
Preservation
The exact previous head,
bc704565c1bd14f1f22c285cc76d4e507687acaa, remains on archive/pr167-before-split. This is a split, not a reversal of the engine work.:has()anchoringThe focused PRs also carry their own regression tests. Media approximations, relational syntax/isolation gaps and legacy integration dependencies remain documented review work. #209 retains assertions that fail on master. Newer #195, #196 and #198 fixes were not in the archived aggregate and remain independent.
Historical browser-share/differential research, one-off extraction scripts and personal generated state remain in the exact archive; they are not build/test dependencies. The archived pnpm files are replaced here by the npm lock, not presented as runtime changes. No SVG charts or benchmark claims remain in this PR.
Validation
CI runs lint, Node tests, the build and WPT in one Node.js 26 job, with one dependency install and no version matrix. The tooling uses no Node APIs newer than 22; the prior Node 22 run passed. Development guidance and runtime support are unchanged.
The checkout and setup-node actions are pinned to verified full commit SHAs, with release-version and date comments.
Refreshed after #211 merged. On master
62d45eb, all 24 Node tests, lint, minification and checkout verification pass. All 41 WPT pages pass with the existing baseline unchanged. The Node suite now includes the 11 adapter tests. The source remains identical to master.CI passes on
4246e28: one Node.js 26 job successfully runs lint, all 24 Node tests, minification, checkout verification and WPT using the SHA-pinned actions.On tooling head
ff9a27e: 13 Node tests, lint, minification, cleanup and checkout verification pass. All 41 selected WPT pages pass against the measured master baseline of 352 expected failures. That is 16 more than the archived aggregate's baseline; those cases belong to pending relative-:has()work in #201, not dropped regressions.The checkout helper rejects paths resolving outside the repository and dirty checkouts before changing sparse patterns. Eight tests verify the safety guards with disposable repositories. The WPT validation used a fresh real checkout, not a symlink to another worktree.
All original factory-level declarations were accounted for against the successors, including deliberate corrections found during extraction. The four global adaptive-filter arrays/counters were replaced by resolver-owned state in #189. Separate integration validation is recorded below; it does not change this PR's source or baseline.
The reproducible integration checkpoint records inputs, conflict recipes and remaining gaps. Its original 64 Node tests, 27 runtime/matcher/reproduction checks, 81 focused checks, four Chromium agreement tests and five live-state browser scenarios pass, along with 16 additional cross-PR probes. It recorded nine TODOs; #198 now fixes the four escaped line-continuation cases with passing regressions. This is an audit branch, not another aggregate product PR; the other recorded gaps still need review.