Beispiel
Enforce strict whitespace token separation for CSS attribute selector [attr~="val"] and prevent hyphenated substring matching in happy-dom
sha256:143a1a028249dbbfdb1ae521d43e57375365a008d96dcb4792fc0427df76731e
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Enforce strict whitespace token separation for CSS attribute selector [attr~="val"] and prevent hyphenated substring matching in happy-dom HOW
- Pakete
- happy-dom 20.11.2
- Umgebung
- node
- Erstellt
- 2026-08-17T01:51:52Z
Häufige Annahme
The CSS attribute selector [attr~="val"] treats hyphens as word boundaries and matches substrings in hyphenated attribute values.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- child.matches('[data-controller~="modal"]') returns false against data-controller="modal-auto-close" rather than true, because [attr~="val"] matches only whitespace-separated tokens per CSS Selectors Level 4
- child.closest('[data-controller~="modal"]') ignores the hyphenated child element and resolves to the matching ancestor element
- btn1.matches('[class~="btn"]') returns false on class="btn-primary"
- btn2.matches('[class~="btn"]') returns true on whitespace-delimited class="btn btn-primary"
Dateien
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9