Conversation
This upgrade brings WebKit from df8aa4c4d01 to c8833d7b362 (250+ commits). Major improvements include: - Enhanced WASM SIMD support in IPInt interpreter - Async stack traces with new debugging features - Set.prototype.isSupersetOf implementation - Memory management optimizations - String and regex performance improvements - Updated CSS color mixing and form field handling - Accessibility performance optimizations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Updated 5:50 PM PT - Sep 8th, 2025
❌ @Jarred-Sumner, your commit 2c5b9ad has 2 failures in
🧪 To try this PR locally: bunx bun-pr 22499That installs a local version of the PR into your bun-22499 --bun |
WalkthroughDefault WEBKIT_VERSION hash changed when not supplied, which updates the derived WEBKIT_VERSION_PREFIX, the download URL, and the default cache directory name; no other logic, conditionals, or build steps were modified. Changes
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Flag potential breaking changes that are not documented:
1. Identify changes to public APIs/exports, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints (including removed/renamed items and changes to types, required params, return values, defaults, or behavior).
2. Ignore purely internal/private changes (e.g., code not exported from package entry points or marked internal).
3. Verify documentation exists: a "Breaking Change" section in the PR description and updates to CHANGELOG.md.📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
Pre-merge checks (2 passed, 1 warning)❌ Failed Checks (1 warning)
✅ Passed Checks (2 passed)
✨ Finishing Touches
🧪 Generate unit tests
Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
cmake/tools/SetupWebKit.cmake (1)
81-84: Publish missing GitHub release and assets for tag autobuild-c8833d7b3629c9472a7c51199e594672ea736ef3GitHub API returned 404 for release “autobuild-c8833d7b3629c9472a7c51199e594672ea736ef3” and no assets were found; please publish the release with the appropriate bun-webkit--.tar.gz before merging.
🧹 Nitpick comments (2)
cmake/tools/SetupWebKit.cmake (2)
93-96: Harden download step with timeout/status (and optional hash) to fail fast on flaky networksPrevents silent partial downloads and makes CI failures clearer.
Apply:
-file(DOWNLOAD ${WEBKIT_DOWNLOAD_URL} ${CACHE_PATH}/${WEBKIT_FILENAME} SHOW_PROGRESS) +if(DEFINED WEBKIT_EXPECTED_SHA256) + file(DOWNLOAD ${WEBKIT_DOWNLOAD_URL} ${CACHE_PATH}/${WEBKIT_FILENAME} + SHOW_PROGRESS + TIMEOUT 1200 + INACTIVITY_TIMEOUT 300 + TLS_VERIFY ON + EXPECTED_HASH SHA256=${WEBKIT_EXPECTED_SHA256} + STATUS WEBKIT_DOWNLOAD_STATUS + ) +else() + file(DOWNLOAD ${WEBKIT_DOWNLOAD_URL} ${CACHE_PATH}/${WEBKIT_FILENAME} + SHOW_PROGRESS + TIMEOUT 1200 + INACTIVITY_TIMEOUT 300 + TLS_VERIFY ON + STATUS WEBKIT_DOWNLOAD_STATUS + ) +endif() +list(GET WEBKIT_DOWNLOAD_STATUS 0 WEBKIT_DOWNLOAD_CODE) +if(NOT WEBKIT_DOWNLOAD_CODE EQUAL 0) + message(FATAL_ERROR "Failed to download ${WEBKIT_DOWNLOAD_URL}: ${WEBKIT_DOWNLOAD_STATUS}") +endif()
13-14: Avoid cache/variant collisions across DEBUG/LTO/ASAN by incorporating variant into WEBKIT_PATHCurrent cache path omits OS/arch/suffix; the early-return only checks version, so switching variants for the same hash can reuse stale artifacts.
Consider appending OS/arch/suffix to the non-local default path after those values are computed. Minimal additive change (no reordering needed):
@@ -else() - set(DEFAULT_WEBKIT_PATH ${CACHE_PATH}/webkit-${WEBKIT_VERSION_PREFIX}) -endif() +else() + set(DEFAULT_WEBKIT_PATH ${CACHE_PATH}/webkit-${WEBKIT_VERSION_PREFIX}) +endif() @@ if(ENABLE_ASAN) @@ endif() + +# Refine non-local default path to include OS/arch/suffix (prevents variant collisions) +if(NOT WEBKIT_LOCAL) + set(DEFAULT_WEBKIT_PATH ${CACHE_PATH}/webkit-${WEBKIT_VERSION_PREFIX}-${WEBKIT_OS}-${WEBKIT_ARCH}${WEBKIT_SUFFIX}) + if(NOT WEBKIT_PATH OR WEBKIT_PATH STREQUAL "") + set(WEBKIT_PATH ${DEFAULT_WEBKIT_PATH}) + endif() + # Recompute include/lib paths in case WEBKIT_PATH changed + set(WEBKIT_INCLUDE_PATH ${WEBKIT_PATH}/include) + set(WEBKIT_LIB_PATH ${WEBKIT_PATH}/lib) +endif()If changing the path is undesirable, alternatively tighten the early-return check to also validate the expected variant (e.g., store and compare
${WEBKIT_OS},${WEBKIT_ARCH}, and${WEBKIT_SUFFIX}in package.json or a sidecar file).Also applies to: 85-91
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
cmake/tools/SetupWebKit.cmake(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Format
🔇 Additional comments (1)
cmake/tools/SetupWebKit.cmake (1)
5-5: Default WebKit hash bump to c8833d7b — LGTMPrefix derivation and downstream path/url composition will update as expected.
|
Failing tests seems to be flaky so this PR is ready for review! Regarding to async stack trace, I'm going to enable in follow up PRs. |
Summary
Upgraded Bun's WebKit fork from
df8aa4c4d01toc8833d7b362(250+ commits, September 8, 2025).Key JavaScriptCore Changes
WASM Improvements
--useWasmIPIntSIMDfor controlling SIMD featuresAsync Stack Traces
--async-stack-traces)asyncprefix for async function framesSet API Extensions
Set.prototype.isSupersetOfin native C++String and RegEx Optimizations
Memory Management
Developer Experience
WebCore & Platform Changes
CSS and Rendering
Accessibility
Web APIs
Build and Platform Updates
Testing Infrastructure
Impact on Bun
This upgrade brings significant improvements to:
All changes have been tested and integrated while preserving Bun's custom WebKit modifications for optimal compatibility with Bun's runtime architecture.
Test plan
🤖 Generated with Claude Code