mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
## Summary - Upgrades WebKit from `c4d4cae03ece` to `ea1bfb85d259` - Merges upstream WebKit changes into oven-sh/webkit fork ## WebKit Upgrade Summary (JavaScriptCore Changes) ### JSType Enum Changes **No breaking changes to JSType enum from upstream.** The diff showing `InternalFieldTupleType` removal is actually showing Bun's custom addition - upstream WebKit does not have this type. The Bun fork maintains `InternalFieldTupleType` after `DerivedStringObjectType`, which is preserved during the upgrade. ### Notable Performance Improvements #### ARM64 Conditional Compare Chain (ccmp/ccmn) - **Commit:** `2cd6a734ed6c` - Implements ARM64 `ccmp`/`ccmn` instruction chaining for compound boolean expressions - Converts patterns like `if (x0 == 0 && x1 == 1)` into efficient conditional compare sequences - Reduces branch prediction misses and code size - Introduces new Air opcodes: `CompareOnFlags`, `CompareConditionallyOnFlags`, `BranchOnFlags` #### Extended Constant Materialization for Float16/Float/Double/V128 - **Commit:** `0521cc7f331a` - Enhanced ARM64 constant materialization using `movi`, `mvni`, and vector `fmov` - Avoids memory loads for Float constants (32-bit values can now be materialized directly) - Adds `FPImm128` and `Move128ToVector` Air instructions #### DFG/FTL Storage Pointer Improvements - **Commits:** `00c0add58ec3`, `7051d3ac1f34` - FTL Phis now properly support storage (butterfly) pointers - Introduces `KnownStorageUse` for all storage operands in DFG/FTL - Fixes issues with Array allocation sinking when creating storage Phis - Improves GC safety by ensuring butterfly pointers are properly tracked ### Bug Fixes #### Thread Termination Race Condition - **Commit:** `23922a766f07` - Fixes race condition in `VM::m_hasTerminationRequest` between main thread and worker threads - Moves `setHasTerminationRequest()` call into `VMTraps::handleTraps()` to eliminate race #### ThrowScope Exception Clearing - **Commit:** `67abaaa35c4d` - ThrowScopes can no longer accidentally clear termination exceptions - Introduces `tryClearException()` which fails on termination exceptions - Affects iterator operations, promises, and WebCore stream handling #### Bytecode Cache JIT Threshold - **Commit:** `e0644034f46e` - Functions loaded from bytecode cache now correctly set JIT threshold - Previously, cached functions would JIT immediately on first execution #### Wasm Fixes - **Commit:** `8579516f4b61` - Fix JIT-less Wasm-to-JS i31ref marshalling for i31 values in double format - **Commit:** `22b6a610f6ff` - Fix nullability for wasm js-string builtins return types (`cast`, `fromCharCode`, `fromCodePoint`, `concat`, `substring`) - **Commit:** `5ad2efd177db` - Optimize Wasm BlockSignature to avoid lock contention during parsing #### 32-bit ARM (Armv7) Fix - **Commit:** `9cc23c0e75b7` - Fixes tail call shuffler register allocation on 32-bit ARM - Prevents assertion failures when JSValue can load via FPR but GPRs are exhausted ### New Features #### Temporal PlainYearMonth Support - **Commit:** `d865004780e6` - Enables all PlainYearMonth test262 tests - Fixes several bugs in month code handling and rounding modes #### Wasm IPInt Execution Tracing - **Commit:** `634156af4114` - Adds `--traceWasmIPIntExecution` option for debugging WebAssembly interpreter execution ### Code Quality Improvements - **Commit:** `31bc5e6778d4` - `JSRegExpStringIterator` reduced from 56 to 40 bytes by merging boolean fields into bitfield - **Commit:** `cda948675446` - Fix fragile include dependency in `JSC::getCallDataInline` - **Commit:** `bd87f5db107e` - Fix unretained local variable warnings in JavaScriptCore/API ## Merge Conflicts Resolved Fixed 4 merge conflicts related to Bun-specific patches: 1. `Source/JavaScriptCore/API/JSVirtualMachine.mm` - Removed JSLockHolder as per Bun's patch 2. `Source/JavaScriptCore/runtime/JSBoundFunction.h` - Used relative includes instead of framework includes 3. `Source/JavaScriptCore/runtime/JSObjectInlines.h` - Used relative includes and updated `JSFunction.h` to `JSFunctionInlines.h` 4. `Source/WTF/wtf/text/WTFString.h` - Preserved ExternalStringImpl support ## Test plan - [x] WebKit builds successfully (`bun build.ts debug`) - [x] JSType enum values verified to be compatible - [ ] CI builds and tests pass 🤖 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: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> Co-authored-by: vadim-anthropic <vadim@anthropic.com> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
40 KiB
Executable File
40 KiB
Executable File