Repository navigation
Upgrade WebKit to ea1bfb85d259 - #26161
Merged
Merged
Conversation
Updates WebKit from c4d4cae03ece to ea1bfb85d259. Notable JSC changes: - ARM64 ccmp/ccmn instruction chaining for better branch prediction - Extended constant materialization for Float16/Float/Double/V128 - DFG/FTL storage pointer improvements - Thread termination race condition fix - ThrowScope exception clearing changes (tryClearException replaces clearException) - Various Wasm and Temporal fixes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Collaborator
Author
|
Updated 7:03 PM PT - Jan 16th, 2026
❌ Your commit
🧪 To try this PR locally: bunx bun-pr 26161That installs a local version of the PR into your bun-26161 --bun |
Contributor
WalkthroughThis PR changes many exception-clearing calls from Changes
Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
- Replace clearException() with tryClearException() for ThrowScope/CatchScope - Fix dangling pointer issues with utf8().data() by keeping CString alive - Update SetupWebKit.cmake to use release 5ae5f07f29059c183a8db2eef2c9aabd474ec73c Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ile not found" (#26126) ## Summary - When running `bun <file>` on a file with an unsupported type (e.g., `.css`, `.yaml`, `.toml`), Bun now shows a helpful error message instead of the misleading "File not found" - Tracks when a file is resolved but has a loader that can't be run directly - Shows the actual file path and file type in the error message **Before:** ``` error: File not found "test.css" ``` **After:** ``` error: Cannot run "/path/to/test.css" note: Bun cannot run css files directly ``` ## Test plan - [x] Added regression test in `test/regression/issue/1365.test.ts` - [x] Test verifies unsupported files show "Cannot run" error - [x] Test verifies nonexistent files still show "File not found" - [x] Test fails with `USE_SYSTEM_BUN=1` and passes with debug build Fixes #1365 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
…led (#26175) The signature size adjustment was being applied unconditionally, but it should only happen when building for ARM64 and codesigning is enabled. This prevents incorrect offset calculations on non-ARM64 platforms. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…ogs (#26177) ## Summary - Fetches complete logs from BuildKite's public API (no token required) - Saves logs to `/tmp/bun-build-{number}-{platform}-{step}.log` - Shows log file path in output for each failed job - Displays brief error summary (unique errors, max 5) - Adds help text with usage examples (`--help`) - Groups failures by type (build/test/other) - Shows annotation counts with link to view full annotations - Documents usage in CLAUDE.md ## Test plan - [x] Tested with build #35051 (9 failed jobs) - [x] Verified logs saved to `/tmp/bun-build-35051-*.log` - [x] Verified error extraction and deduplication works - [x] Verified `--help` flag shows usage 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
The previous code was assigning a pointer to temporary data that would be destroyed at the end of the expression. Use a static CString to keep the string alive for the lifetime of the process. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The script wasn't recognizing the 'started' build state, which caused it to incorrectly report builds as having no failures when they were still running. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two fixes for node:vm module after the WebKit upgrade: 1. NodeVMModule.cpp: Use DECLARE_CATCH_SCOPE(vm).clearException() instead of scope.tryClearException() when handling termination exceptions. The tryClearException() method now returns false without clearing termination exceptions, causing assertion failures later. 2. NodeVM.cpp: Add extra safety check for ProxyObject handler value to ensure it's an object before casting with jsCast<JSObject*>. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This was referenced Jan 18, 2026
Merged
This was referenced Mar 18, 2026
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.
Summary
c4d4cae03ecetoea1bfb85d259WebKit Upgrade Summary (JavaScriptCore Changes)
JSType Enum Changes
No breaking changes to JSType enum from upstream. The diff showing
InternalFieldTupleTyperemoval is actually showing Bun's custom addition - upstream WebKit does not have this type. The Bun fork maintainsInternalFieldTupleTypeafterDerivedStringObjectType, which is preserved during the upgrade.Notable Performance Improvements
ARM64 Conditional Compare Chain (ccmp/ccmn)
2cd6a734ed6cccmp/ccmninstruction chaining for compound boolean expressionsif (x0 == 0 && x1 == 1)into efficient conditional compare sequencesCompareOnFlags,CompareConditionallyOnFlags,BranchOnFlagsExtended Constant Materialization for Float16/Float/Double/V128
0521cc7f331amovi,mvni, and vectorfmovFPImm128andMove128ToVectorAir instructionsDFG/FTL Storage Pointer Improvements
00c0add58ec3,7051d3ac1f34KnownStorageUsefor all storage operands in DFG/FTLBug Fixes
Thread Termination Race Condition
23922a766f07VM::m_hasTerminationRequestbetween main thread and worker threadssetHasTerminationRequest()call intoVMTraps::handleTraps()to eliminate raceThrowScope Exception Clearing
67abaaa35c4dtryClearException()which fails on termination exceptionsBytecode Cache JIT Threshold
e0644034f46eWasm Fixes
8579516f4b61- Fix JIT-less Wasm-to-JS i31ref marshalling for i31 values in double format22b6a610f6ff- Fix nullability for wasm js-string builtins return types (cast,fromCharCode,fromCodePoint,concat,substring)5ad2efd177db- Optimize Wasm BlockSignature to avoid lock contention during parsing32-bit ARM (Armv7) Fix
9cc23c0e75b7New Features
Temporal PlainYearMonth Support
d865004780e6Wasm IPInt Execution Tracing
634156af4114--traceWasmIPIntExecutionoption for debugging WebAssembly interpreter executionCode Quality Improvements
31bc5e6778d4-JSRegExpStringIteratorreduced from 56 to 40 bytes by merging boolean fields into bitfieldcda948675446- Fix fragile include dependency inJSC::getCallDataInlinebd87f5db107e- Fix unretained local variable warnings in JavaScriptCore/APIMerge Conflicts Resolved
Fixed 4 merge conflicts related to Bun-specific patches:
Source/JavaScriptCore/API/JSVirtualMachine.mm- Removed JSLockHolder as per Bun's patchSource/JavaScriptCore/runtime/JSBoundFunction.h- Used relative includes instead of framework includesSource/JavaScriptCore/runtime/JSObjectInlines.h- Used relative includes and updatedJSFunction.htoJSFunctionInlines.hSource/WTF/wtf/text/WTFString.h- Preserved ExternalStringImpl supportTest plan
bun build.ts debug)🤖 Generated with Claude Code