Hyperscript: focus command, diagnostic test output, blur keyword

Parser/compiler/runtime for focus command. Tokenizer: focus, blur,
precedes, follows, ignoring, case keywords. Test spec: per-test
failure output for diagnosis.

374/831 (45%)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-12 12:38:05 +00:00
parent 1783f4805a
commit f60d22e86e
12 changed files with 277 additions and 190 deletions

View File

@@ -322,11 +322,16 @@ test.describe('Hyperscript behavioral tests', () => {
for (const [e, info] of Object.entries(uniqueErrors).sort((a,b) => b[1].count - a[1].count).slice(0, 25)) {
console.log(` [${info.count}x] ${e}`);
}
// Show samples of "bar" error specifically
const barSamples = results.filter(r => !r.p && (r.e||'').includes('Expected , got')).slice(0, 15);
if (barSamples.length > 0) {
console.log(` Expected-got failures (${barSamples.length}):`);
for (const s of barSamples) console.log(` ${s.s}/${s.n}`);
// Show ALL failing tests with errors (for diagnosis)
const failsByCategory = {};
for (const r of results.filter(r => !r.p)) {
if (!failsByCategory[r.s]) failsByCategory[r.s] = [];
failsByCategory[r.s].push(r);
}
for (const [cat, fails] of Object.entries(failsByCategory).sort((a,b) => a[0].localeCompare(b[0]))) {
for (const f of fails.slice(0, 5)) {
console.log(` FAIL ${f.s}/${f.n}: ${(f.e||'').slice(0, 100)}`);
}
}
expect(results.length).toBeGreaterThanOrEqual(830);