Skip to content

chore(deps): update dependency @swc-next/parser to ^0.5.0 - #133

Merged
fi3ework merged 3 commits into
mainfrom
renovate/swc-monorepo
Nov 9, 2026
Merged

fi3ework merged 3 commits into
mainfrom
renovate/swc-monorepo

Conversation

@renovate

@renovate renovate Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@swc-next/parser (source) ^0.4.1 → ^0.5.0 age confidence

Release Notes

swc-project/swc-next (@​swc-next/parser)

v0.5.0

Compare Source

🚀 Features
  • (parser) [breaking] Add error recovery option (#​1247)
  • (minifier) Fold constant expressions in the compression pass (#​1353)
🐛 Bug Fixes
  • (parser,semantic) [breaking] Resolve cover grammar from expression nodes (#​1150)
  • (allocator) Preserve ZST iterator pointer validity (#​1224)
  • (allocator) Reject overflowing drain bounds and ZST lengths (#​1225)
  • (allocator) Correct WTF-8 prefix checks and UTF-16 size hints (#​1226)
  • (allocator) [breaking] Correct collection and splice auto traits (#​1227)
  • (parser) Repair diagnostic assertions in lexer recovery test (#​1240)
  • (allocator) Check aggregate slice lengths before copying (#​1243)
  • (ast) Initialize big-endian extra data through allocation pointer (#​1245)
  • (allocator) Preserve drain filter invariants after panic (#​1244)
  • (type-strip) Erase abstract method modifiers (#​1283)
  • (type-strip) Preserve question marks in parameter initializers (#​1282)
  • (parser) Accept commas after class index signatures (#​1285)
  • (parser) Correct diagnostic spans and escape descriptions (#​1351)
  • (parser) Keep comparisons when a reserved type argument can start an expression (#​1284)
  • (ci) Compare JavaScript benchmarks against PR merge (#​1382)
  • (allocator) Encode WTF-8 code points without referencing uninitialized capacity (#​1388)
  • (parser) Correct diagnostic spans (#​1405)
  • (parser) Improve diagnostic messages and numeric separator spans (#​1406)
  • (codegen) Improve minified output (#​1260)
🚜 Refactor
  • (minifier) Move compression to TraverseMut hooks (#​1317)
📚 Documentation
  • Clarify upstream code provenance (#​1237)
  • Add dry-run approval and reference policy to pr-creator skill (#​1248)
  • (skills) Rename optimization skill and use paired wall time (#​1397)
⚡ Performance
  • (parser) Avoid temporary allocations for parenthesized expressions (#​1160)
  • (parser) Avoid temporary allocations for arrow parameters (#​1161)
  • (parser) Skip redundant line break checks in block comments (#​1163)
  • (parser) Reuse the escaped string decoding buffer (#​1162)
  • (parser) Reuse export specifier tag storage (#​1168)
  • (parser) Reserve scratch buffer growth in larger batches (#​1169)
  • (parser) Avoid temporary allocations for async call covers (#​1189)
  • (parser) Reserve capacity when removing numeric separators (#​1190)
  • (parser) Consume { before mapped-type lookahead (#​1179)
  • (parser) Give string decoding scratch space room to grow (#​1236)
  • (parser) Avoid rescanning identifier-led tuple elements (#​1174)
  • (parser) Reuse the return type identifier prefix (#​1177)
  • (bindings) Use mimalloc for core and parser (#​1182)
  • (allocator) Streamline ArenaVec truncate and push (#​1239)
  • (allocator) Reuse checked length in ArenaVec push (#​1241)
  • (parser) Strip numeric separators at the byte level (#​1246)
  • (parser) Skip lookahead for ordinary statement starts (#​1261)
  • (parser) Reuse fast token scanning during lookahead (#​1262)
  • (lexer) Share fast token scanning after line breaks (#​1266)
  • (lexer) Handle common character escapes without slow scanning (#​1269)
  • (parser) Decode ASCII identity escapes without Unicode checks (#​1270)
  • (parser) Dispatch common primary expressions directly (#​1271)
  • (parser) Fast-path ordinary object property names (#​1272)
  • (parser) Bypass scratch storage for single variable declarations (#​1280)
  • (parser) Convert single-digit decimal literals directly (#​1278)
  • (parser) Defer destructuring checks until needed (#​1281)
  • (parser) Specialize postfix parsing for grammar contexts (#​1279)
  • (parser) Inline call expression parsing (#​1275)
  • (parser) Inline semicolon consumption (#​1276)
  • (parser) Inline expected token consumption (#​1277)
  • (parser) Avoid repeated const enum lookahead (#​1274)
  • (parser) Keep fast-path token flags out of lexer state (#​1302)
  • (parser) Scan JSX tag tokens with the shared fast scanners (#​1303)
  • (parser) Classify the identifier end byte during the ASCII scan (#​1304)
  • (parser) Derive comment line breaks from the token flag (#​1311)
  • (parser) Tail-call identifier and operator scans from try_next_token (#​1312)
  • (parser) Store the token tag in the low bits of the packed token (#​1313)
  • (parser) Bound identifier batches by their end position (#​1344)
  • (parser) Read the previous token tag from the lexer target (#​1346)
  • (parser) Scan ordinary comments in the inline trivia loop (#​1347)
  • (parser) Skip lookahead peeks at JSX element starts (#​1348)
  • (parser) Check type continuations before entering their parsers (#​1349)
  • (parser) Test identifier bytes in pairs during the ASCII scan (#​1355)
  • (parser) Scan strings without escapes on the token fast path (#​1357)
  • (parser) End the Pratt loop before line-terminator checks (#​1358)
  • (parser) Inline statement dispatch into its callers (#​1359)
  • (parser) Read closing-tag slashes on the JSX tag fast path (#​1360)
  • (ast) Mark rare TraverseMut paths cold (#​1334)
  • (ast) Dispatch TraverseMut unions without checks (#​1336)
  • (ast) Pass untyped walk results through TraverseMut dispatch (#​1342)
  • (ast) Pass TraverseMut child results through continuing exit hooks (#​1370)
  • (parser) Emit single-byte operators from the fast token path (#​1373)
  • (transformer) Skip statement injector lookups when nothing is queued (#​1375)
  • (parser) Fold the lexer mode check into the fast-path bounds check (#​1341)
  • (parser) Look up keywords in a perfect hash table (#​1402)
⚙️ Miscellaneous Tasks
  • Release v0.4.1 (#​1157)
  • Prepare Anthropic OSS Scanner audits (#​1233)
  • (parser) Add file corpus profiling example (#​1273)
  • Expose repository skills to Claude Code (#​1354)
  • (skills) Stack only dependent gungraun-optimize PRs (#​1368)
  • (bench) Add paired wall-time benchmarks on x86_64 (#​1383)
  • (bench) Alternate the base/head run order in paired wall-time rounds (#​1396)
  • (bench) Merge Gungraun and paired wall-time into one workflow (#​1400)
  • (bench) Run Gungraun and wall time in separate jobs (#​1401)
  • Gate crate publishing on successful builds (#​1408)
  • Use Clang for GNU cross builds (#​1409)
◀️ Revert
  • (parser) Test identifier bytes in pairs during the ASCII scan (#​1389)
  • (codegen) Inline identifier printing and skip duplicate separator check (#​1390)
  • (parser) Fold the lexer mode check into the fast-path bounds check (#​1398)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate Bot and others added 2 commits November 9, 2026 00:48
0.5.0 added an errorRecovery option (swc-project/swc-next#1247) whose
default now throws the first diagnostic as a plain object instead of
returning diagnostics in the parse result. parseTestFile relied on the
recovery behavior, so its SyntaxError check no longer fired and the
"should reject invalid syntax" unit test failed. Pass errorRecovery:
true to keep the 0.4.x behavior, and throw SyntaxError from the
returned error diagnostic as before.

Cover-grammar resolution from expression nodes (#1150) does not change
any AST shape the test walk relies on (diffed 0.4.1 vs 0.5.0 program
trees on representative test-file patterns; unit suite green).
@fi3ework
fi3ework enabled auto-merge (squash) November 9, 2026 07:33
macOS E2E flaker: e2e/rstest/suite/progress.test.ts saw
failedMessages[2] be "after suite" instead of the inline-snapshot
failure, with all 5 messages present (failedMessages.length === 5).

Root cause an upstream core gap, not a race in our code. @rstest/core's
worker-side sink (k~0.js onTestCaseResult in 0.12.6) hands our reporter
each case result only after the previous delivery's extension-host
response, and suite results bypass that chain entirely: they fan out as
soon as the runner hook returns, right after afterAll — while a case
emitted before the hook may still be queued inside core, not yet handed
to us. With the extension host slow to answer, the suite hook failure
then posts past still-pending failing case results of the same file,
and the editor publishes run.failed in arrival order. Because core
cannot tell us what is still queued, no post-time ordering we can
derive stays faithful: any "wait for what we have seen" gate misses the
unseen case (the false green of the first attempt's chain).

Fix in ProgressReporter (stacks/test/worker/reporter.ts): defer suite
results into a per-testPath queue at delivery time and flush them (in
emission order) just before the file result posts. Core fans the file
result out only after its case chain drained, so the flush point is the
one moment every preceding case result is known-delivered, and the
master always sees [cases..., suites..., file]. onTestRunEnd flushes
leftovers so a torn-down attempt loses nothing queued; a new attempt's
onTestFileStart/onTestFileReady (core re-runs a file only after a
worker SIGKILL retry) drops the previous attempt's queue. Suite results
no longer acknowledge the extension host at delivery time, so the
ported upstream unit test drops that assertion (documented with a
comment); it keeps the case/file-result assertions verbatim, and three
new unit tests pin the order under core's pacing, the run-end flush
and the attempt-boundary drop — the order test fails against the
arrival-order delivery (reproduced) and passes here.

Upstream fixed this at the sink level for 1.0 by joining all
file-scoped deliveries before onTestFileResult (#1875);
runnerEventSink joins case deliveries only in our pinned 0.12, so the
deferral is ours. Documented as ahead-of-upstream bug fix (7) in
packages/vscode/AGENTS.md to offer back when syncing.
@fi3ework
fi3ework merged commit e295d06 into main Nov 9, 2026
3 checks passed
@fi3ework
fi3ework deleted the renovate/swc-monorepo branch November 9, 2026 09:09
fi3ework added a commit that referenced this pull request Nov 9, 2026
* chore(deps): update dependency @swc-next/parser to ^0.5.0

* fix(vscode): adapt to @swc-next/parser 0.5.0

0.5.0 added an errorRecovery option (swc-project/swc-next#1247) whose
default now throws the first diagnostic as a plain object instead of
returning diagnostics in the parse result. parseTestFile relied on the
recovery behavior, so its SyntaxError check no longer fired and the
"should reject invalid syntax" unit test failed. Pass errorRecovery:
true to keep the 0.4.x behavior, and throw SyntaxError from the
returned error diagnostic as before.

Cover-grammar resolution from expression nodes (#1150) does not change
any AST shape the test walk relies on (diffed 0.4.1 vs 0.5.0 program
trees on representative test-file patterns; unit suite green).

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: fi3ework <fi3ework@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant