Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
425 commits
Select commit Hold shift + click to select a range
4d1b8f9
[JSC] Add StringSubstr DFG node
Constellation May 18, 2026
6c8a710
Correct URL parsing for sendBeacon() and the Media Session API
annevk May 18, 2026
e0704d3
[JSC] Shrink sizeof(JSGenerator)
Constellation May 18, 2026
3092a9c
[WGSL] shader,validation,parse,identifiers:* is failing
tadeuzagallo May 18, 2026
1e4e943
[Tools] generate-bundle must re-exec under the /sdk/webkit mount name…
nikolaszimmermann May 18, 2026
818599c
[GStreamer] Auto-detect USAC support via GStreamer registry
ntrrgc May 18, 2026
7b846fe
[Skia] Optimize SkiaCompositingLayer repaint counter drawing
nikolaszimmermann May 18, 2026
f077817
[Skia] Port on-screen FPS counter drawing to Skia compositor
nikolaszimmermann May 18, 2026
0862297
[GTK][WPE] Skia Compositor: use SkCanvas::drawImageRect instead of Sk…
carlosgcampos May 18, 2026
2459de3
[CMake] Swift compiler wrapper accidentally invalidates the CMake cac…
geoffreygaren May 18, 2026
efac8b4
SkiaCompositingLayer: Wrongly culculated damage rect if paintSelf() i…
fujii May 18, 2026
57e44bb
(313296@main) ASSERTION FAILED: m_samples.decodeOrder().findSampleWit…
jyavenard May 18, 2026
1a68aba
[submitproject] Use includes rather than excludes
JonWBedard May 18, 2026
0ea009b
Audio issues observed when joining Cisco Meeting Server meetings usin…
youennf May 18, 2026
3cef609
Unreviewed, reverting 313345@main (3ab6c7c73f9a)
JonWBedard May 18, 2026
b302083
Add logging for unfilled frames during scrolling on iOS
connorpobrien May 18, 2026
5d14ddb
[submitproject] Use .submitproject-append instead of .submitproject-t…
JonWBedard May 18, 2026
a31f7b2
[Swift GTK] Reland: Cease to need to declare header dependencies
adetaylor May 18, 2026
7a310ee
http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html is f…
youennf May 18, 2026
9850353
Move GPU process's temp directory to container
pvollan May 18, 2026
073bf48
[Site Isolation] Handle RemoteFrames in AuthenticatorCoordinator::sco…
atar13 May 18, 2026
6f9d8e4
TestWebKitAPI.WebAuthenticationPanel.LAGetAssertionMultipleOrder is a…
pascoej May 18, 2026
0d9e605
media/modern-media-controls/tracks-support/text-track-selected-via-me…
danae404 May 18, 2026
f3b6d2a
AX: VoiceOver generally does not automatically move into dialogs, des…
twilco May 18, 2026
3b611fc
Versioning. WebKit-7625.1.19
May 18, 2026
113cf2c
Check m_closed in NetworkStorageManager::donePrepareForEviction
szewai May 18, 2026
5a55efc
[import-w3c-tests] Avoid needlessly rewriting tests on import
gsnedders May 18, 2026
f97ce68
[WebKitGTK] apply-build-revision-to-files.py should support "Canonica…
gsnedders May 18, 2026
656a320
"Open [Image/Video] in New Tab" contextual menu item caused double pe…
aproskuryakov May 18, 2026
9569916
[GLIB] Unreviewed gardening
csaavedra May 18, 2026
55bfadc
[EvaluationTimeZoom] Text with cap unit font-size not zoomed properly
vitorroriz May 18, 2026
6e87d66
Unreviewed, reverting 313395@main.
revert-bot May 18, 2026
04c87ca
[CMake][Mac] Build WebBackForwardList.swift and pass TestWebKitAPI ba…
sheeparegreat May 18, 2026
b366c2b
Remove redundant availability macros on WKContentWorldConfiguration p…
achristensen07 May 18, 2026
97338b5
[TestWebKitAPI] Fix gtest linking for Production builds
May 18, 2026
93c88fd
Add webkit-opensource-integration to contributors
robert-jenner May 18, 2026
bac6277
[Gardening]: REGRESSION(313153@main): [macOS] imported/w3c/web-platfo…
martadarbinyan May 18, 2026
92f8e44
[Media Testing] Add Audio+Video synthetic webm + mp4 media-source tests
jernoble May 18, 2026
756f5f9
DiagnosticLoggingClient.h: add missing StringHash.h include
sheeparegreat May 18, 2026
73a1aa3
Sync `css/css-viewport/animations` from WPT Upstream
Ahmad-S792 May 18, 2026
a0ebaaa
[Gardening]: REGRESSION(313302@main): [macOS]: 2 tests in imported/w3…
martadarbinyan May 18, 2026
64be669
Sync `intersection-observer` from WPT Upstream
Ahmad-S792 May 18, 2026
958ef3d
Occasional crash in CollectionIndexCache::~CollectionIndexCache while…
rniwa May 18, 2026
ec7c608
fix run-api-tests for iOS after webkitexpectationspy
Smackteo May 18, 2026
e5d77bd
[macOS iOS] imported/w3c/web-platform-tests/dom/events/Event-timestam…
diegodelatoba May 19, 2026
d271949
[Media] timeupdate event can dispatch ahead of 'seeking' under stress
jyavenard May 19, 2026
97bbefa
Use newly introduced `WTF::toArray()` instead of `std::to_array()` in…
iidmsa May 19, 2026
0a6b5cd
[Site Isolation] Route popup menu value-changed IPC to the originatin…
zakariaridouh May 19, 2026
78e0a50
Log when ParentalControlsURLFilter is enabled on Mac platforms
jelee53 May 19, 2026
953bc03
[JSC] Add missing ExitOK after constant folding `then`
syg May 19, 2026
6c76663
[threaded-animations] Disable "Threaded Time-based Animations" for ca…
Ahmad-S792 May 19, 2026
dfe5dc6
[JSC] Implement ArrayShift DFG node
Constellation May 19, 2026
645b6c4
InlineMap RefPtr tests should drain the RefLogger buffer
ast-hugger May 19, 2026
478a3cd
Follow-up to "[Build perf] Add harness script for running build comma…
emw-apple May 19, 2026
0b4487a
Implement support for the [[associatedProperty]] internal slot for CS…
weinig May 19, 2026
f6769c8
Exempt origins with push subscriptions from time-based website data e…
bnham May 19, 2026
0916582
Pahawh Hmong text is misrendered because it takes the simple text path
vitorroriz May 19, 2026
48fd62d
Retire decidePolicyForSpeechRecognitionPermissionRequest WKPageUIClie…
zakariaridouh May 19, 2026
9da1138
[CMake] Avoid unnecessary rebuilds after CMake preset reconfigure
zakariaridouh May 19, 2026
615f601
Synchronize WPT wasm/serialization
annevk May 19, 2026
e6f4d3c
Adopt ReducedResolutionSeconds more widely
annevk May 19, 2026
a92cb2e
[GTK][WPE] Skia compositor: Remove unnecessary "m_replica->m_replicat…
fujii May 19, 2026
d4a73c2
[Swift GTK] Add dependency edge on log definitions
adetaylor May 19, 2026
94043d8
REGRESSION(313391@main): [WPE][GTK] Building with Clang-22 produces t…
aperezdc May 19, 2026
7f4974d
REGRESSION (310623@main): Style changes to <option> (or children) do …
annevk May 19, 2026
52b6ed6
[WGSL] shader,validation,expression,binary,short_circuiting_and_or:* …
tadeuzagallo May 19, 2026
6b68426
WebRTC Media capabilities do not report power efficient AV1 decode
youennf May 19, 2026
3f0252d
Remove guard on lib_TestingInterop
robert-jenner May 19, 2026
a02317c
2-parameter KeypressCommand constructor missing replacement range ini…
csaavedra May 19, 2026
b599a70
Unreviewed, reverting 313410@main.
revert-bot May 19, 2026
77a9f60
[Wasm] Add PGlite (PostgreSQL wasm) stress test
sosukesuzuki May 19, 2026
ccbb3ff
[GTK][WPE] Skia Compositor: do not change format when uploading pixels
carlosgcampos May 19, 2026
59a20dd
[JSC] Use scratch buffer for ObjectDefinePropertyFromFields
Constellation May 19, 2026
5965900
[JSC] Implement DFG / FTL ArrayUnshift
Constellation May 19, 2026
9b22053
[Skia] Add damage region visualization overlays
nikolaszimmermann May 19, 2026
d158677
[WebXR Layers] Enable texture array support for projection layer
svillar May 19, 2026
e9a9f1b
[GFC][Crash] Grid items with auto height triggering a crash in blockC…
yulunwu2 May 19, 2026
5e2525e
REGRESSION (312086@main): Crash in WebCore::PositionedLayoutConstrain…
alanbaradlay May 19, 2026
758dccb
Preferred width does not trim trailing whitespace before preserved ne…
alanbaradlay May 19, 2026
88cb551
[GLIB] Unreviewed test gardening
dpino May 19, 2026
e871a69
Align WebAssembly.Memory & .Module with SharedArrayBuffer
annevk May 19, 2026
761dfab
Remove BlockIOKitInWebContentSandbox preference
pvollan May 19, 2026
7800c7e
Set CMAKE_OSX_SYSROOT before ABI tests
adetaylor May 19, 2026
72272dc
[JSC] ScopedArgumentsTable ScopeOffset buffer should allocate from fa…
kmiller68 May 19, 2026
6acf180
[CMake][Mac] mac-tsan: set USE_SYSTEM_MALLOC=ON and guard TSan bindir…
sheeparegreat May 19, 2026
17c8e73
Fix the build for watchOS 26.4 public SDK
rr-codes May 19, 2026
38b4e10
CSS: weird interaction between img with max-width and other elements …
alanbaradlay May 19, 2026
c308b2c
[block-in-inline] Apply margin of preceding block content at line sta…
alanbaradlay May 19, 2026
cd11ac5
[Site Isolation] NetworkProcess::m_allowedFirstPartiesForCookies not …
szewai May 19, 2026
93c8445
[LBSE] Skip redundant clipToRect in RenderSVGRect::fillShape when cli…
nikolaszimmermann May 19, 2026
78b7a08
[Swift GTK] Find swiftc with xcrun
adetaylor May 19, 2026
7254a28
[Site Isolation] Handle RemoteFrames when deciding to dispatch before…
atar13 May 19, 2026
825d9df
StabilityTracer: Crash in IPC::MessageReceiverMap::invalidate()
RupinMittal May 19, 2026
73bbfe7
Scroll view background color doesn't adapt with rest of background on…
jesxilin May 19, 2026
ad0609b
Use logical selector order in compound traversal function names
anttijk May 19, 2026
5ea5ea5
[webgpu] fix a build failure on iOS due to 'MTLGPUFamilyMac2' depreca…
graouts May 19, 2026
c22b96f
Out of line CSS Calc Variant types
geoffreygaren May 19, 2026
79faca1
REGRESSION(313455@main): [webkitpy] test_clean_and_null_build, test_t…
diegodelatoba May 19, 2026
fb1bf8c
[WPE][cross-toolchain-helper] Add rpi5-64bits
aoikonomopoulos May 19, 2026
68d7c50
The script package-root should copy WebCore and WebKitLegacy
pvollan May 19, 2026
06ba90c
[block-in-inline] Broken layout with paragraph spacing on Apple Suppo…
alanbaradlay May 19, 2026
fa6448e
[css-grid] Nested CSS Subgrid with overflow:hidden clips content on s…
Ahmad-S792 May 19, 2026
26475c7
[AppKit Gestures] Disambiguate drag-and-drop from text selection duri…
aprotyas May 19, 2026
17707ea
[ews-app]: auto-generate queue trigger relationships from config.json
aj062 May 19, 2026
97721a8
Cross-origin XMLHttpRequest triggers additional extension permissions…
AriYoung00 May 19, 2026
cbe41ae
[Site Isolation] Fix http/tests/security/XFrameOptions/x-frame-option…
atar13 May 19, 2026
fff9c1a
[Site Isolation] http/tests/security/cross-origin-blob-transfer.html …
atar13 May 19, 2026
cef0f21
Recover IndexedDB connections in dedicated workers after network proc…
szewai May 19, 2026
ec2a243
[intersection-observer] Compute rootUsedZoom only when root/margin bo…
tuankiet65 May 19, 2026
0827c3a
[Gardening]: REGRESSION(313153@main): [macOS] imported/w3c/web-platfo…
martadarbinyan May 19, 2026
f49916b
IntersectionObserverEntry.boundingClientRect ignores GetBoundingClien…
Ahmad-S792 May 19, 2026
99ef902
swift.org shows a black region on its right when the Safari sidebar i…
smfr May 19, 2026
f0e5651
[EWS] Add support to skip testing specific branches
csaavedra May 19, 2026
2d98e3c
[WebGPU] Wrap deprecated Metal managed-storage and device-observer AP…
zakariaridouh May 19, 2026
b8c7728
backListCount()/forwardListCount() don't match the sizes of the backL…
beidson May 19, 2026
6557c69
[CMake] Add argv-translation shim for TestWebKitAPI on Mac
zakariaridouh May 19, 2026
4bbb482
[Gardening]: REGRESSION(313199@main?): [iOS]: 2 tests in TestWebKitAP…
martadarbinyan May 19, 2026
e3b3680
[CMake] Compile per-test plug-in classes into TestWebKitAPI.wkbundle
zakariaridouh May 19, 2026
01f1e56
[Swift GTK] Promote module cache to be cross-platform
adetaylor May 19, 2026
00d96a3
[Gardening]NEW-TEST: [iOS] imported/w3c/web-platform-tests/css/css-vi…
diegodelatoba May 19, 2026
5c9c778
[CMake] Teach run-api-tests to find CMake built binaries with --cmake
zakariaridouh May 19, 2026
d933a74
[Gardening]REGRESSION(313443@main): [iOS] imported/w3c/web-platform-t…
diegodelatoba May 19, 2026
14b1811
Fix flaky WebVTT WPT
danae404 May 19, 2026
917f5e2
Fix duplicate -webkit-user-select declarations in imported WPT tests
vitorroriz May 19, 2026
5502e61
[CMake] Restore WebKit_DerivedHeadersForSwift dependency wiring
zakariaridouh May 19, 2026
85a8efe
Fix run-minibrowser/run-swiftbrowser crash on argparse 'const' kwarg
zakariaridouh May 19, 2026
097a827
[Build Speed] Simplify WTF::Variant
geoffreygaren May 19, 2026
ab85063
[Tools] Share host PID namespace with ephemeral container by default
nikolaszimmermann May 19, 2026
aaa99ed
[Tools] linux_get_crash_log: Revamp crash log generation for Linux la…
clopez May 19, 2026
0eadba6
Animated GIF freezes when presentation attributes are changed on SVG …
nullhook May 20, 2026
912cfd1
[Win] `OSAllocator::tryProtect` fails when memory spans multiple rese…
sosukesuzuki May 20, 2026
d8fabf8
REGRESSION (iOS 26.4): Undo/Redo edit action names are unlocalized in…
hortont424 May 20, 2026
b654f6b
[GLib] Unreviewed layout test gardening
fujii May 20, 2026
8bf8866
Identical buttons drawn differently with font: -apple-system-short-body
hortont424 May 20, 2026
7009b52
Flex container's preferred widths become stale when its parent's heig…
sammygill May 20, 2026
537cc2c
ASSERTION FAILED: m_renderBlock.ptr() != subtreeScrollbarChangesState…
sammygill May 20, 2026
4adbd19
Occasional debug assert in `-_requestTextExtraction:completionHandler:`
whsieh May 20, 2026
d097970
Fix duplicate -webkit-box-decoration-break declarations in imported W…
vitorroriz May 20, 2026
0e486e3
Replace internals.settings.setStorageBlockingPolicy with WebKitTestRu…
szewai May 20, 2026
fffb816
Update ANGLE to 2026-05-11 (4a6d53434044d4d955731bed2a085155260c5911)
kkinnunen-apple May 20, 2026
c478340
Model attempts to download invalid USD files
mwyrzykowski May 20, 2026
c1f8682
[Swift in WebKit] Work towards supporting Swift in WTF (part 4)
rr-codes May 20, 2026
187c7e0
Unreviewed layout test gardening
fujii May 20, 2026
971b2f7
Fix the 32-bit watchOS 26.4 public SDK build
rr-codes May 20, 2026
5a25654
Fix the iOS simulator build for iOS 26.4 with the public SDK
rr-codes May 20, 2026
892f044
[iOS Text Autosizing] google.com search suggestion font size increase…
vitorroriz May 20, 2026
de4a430
[Swift GTK] Track header dependencies for Swift compilation
adetaylor May 20, 2026
575b7c2
(311867@main) PLT7 regressed for YouTube first page load
jyavenard May 20, 2026
9ba5d25
SVG <use> should work without specifying a fragment identifier
karlcow May 20, 2026
8b0c7d7
[threaded-animations] disable Threaded Time-based Animations on CNN.c…
graouts May 20, 2026
2ee2d9e
Re-enable 216 tests that are no longer flaky.
heycam May 20, 2026
2feb5ed
Validate identifiers when creating decoders and encoders in LibWebRTC…
youennf May 20, 2026
fca080f
[Build perf] Add incremental build benchmark to measure-build-time
emw-apple May 20, 2026
69d3008
[iOS] Possible WebPreferences null deref under PageClientImpl::didCom…
aprotyas May 20, 2026
918d694
[JSC] Fix / Update iterator return function call's arguments
Constellation May 20, 2026
67ab82b
Unreviewed, reverting 313543@main (c1f868200266)
emw-apple May 20, 2026
033b941
[Tools] Make run-mvt-tests honor the WebKit Container SDK auto-enter
nikolaszimmermann May 20, 2026
de81a9b
[GStreamer] Clang 22 reports unsafe buffer warnings in GStreamerWebRT…
aperezdc May 20, 2026
d56cbfb
SkiaCompositingLayer: backdrop filter shouldn't affect to subsequent …
fujii May 20, 2026
b15055c
Update/Fix Lock/Condition Performance Test Binaries
kmiller68 May 20, 2026
7bab86f
[GLIB] Unreviewed layout test gardening
dpino May 20, 2026
f4ce4a7
Opening or refreshing wasitai.com is extremely slow
shallawa May 20, 2026
3846246
Safer-CPP queue can go in infinite retry loop for branch PRs when sca…
aj062 May 20, 2026
192e1ec
Non-unified build fixes for May 20th, 2026
csaavedra May 20, 2026
e544a90
[LBSE] Improve test results
rwlbuis May 20, 2026
4c05676
[WPE][GTK] Rebaseline imported/w3c/web-platform-tests/encrypted-media…
philn May 20, 2026
f149c96
[GLIB] TestWebCore:ImageBufferTests.ImageBufferSubPixelDrawing is slow
csaavedra May 20, 2026
703a029
[GTK][WPE][Tools] container-sdk-autoenter doesn't forward DBUS_SESSIO…
clopez May 20, 2026
d0c317e
[GTK][WPE][Tools] Improve bind mount of AT-SPI socket for container-s…
clopez May 20, 2026
3a076b2
[LBSE] Prepare RenderSVGModelObject.cpp for non-layered SVG elements
rwlbuis May 20, 2026
3f1b910
REGRESSION(313309@main): [GTK][GStreamer] fast/mediastream/RTCPeerCon…
philn May 20, 2026
f774c2b
[iOS] RTL/position fixed element can lose its contents when the docum…
smfr May 20, 2026
b5b1da7
REGRESSION(310935@main?):[iOS] fast/scrolling/ios/iframe-scroll-into-…
brentfulgham May 20, 2026
7d11c41
[AutoFill Debugging] `scroll` should fall back to the largest overflo…
whsieh May 20, 2026
4ed24b8
[JSC] Skip intermediate promise allocation for non-thenable elements …
sosukesuzuki May 20, 2026
3da609a
Built-in media controls show subtitles option for <audio> elements ev…
May 20, 2026
d53865e
[JSC] Add new `DateNow` DFG node
sosukesuzuki May 20, 2026
7429d22
[JSC] Fix DFG CPS validation for inlined sort comparator
syg May 20, 2026
1b961c2
Re-import css/css-values WPTs
anttijk May 20, 2026
ebe7f58
CI fix for "[Build perf] Add incremental build benchmark to measure-b…
emw-apple May 20, 2026
57ddad1
REGRESSION (302333@main): The window.orientation property incorrectly…
jesxilin May 20, 2026
2275284
[JSC] Collect profile from Baseline JIT compiler when LLInt -> Baseline
Constellation May 20, 2026
83e73fd
Scrollbar changes in subtree are not properly handled for various shr…
sammygill May 20, 2026
b0ee12e
[Gardening]: REGRESSION(313507@main): [macOS Debug] ASSERTION FAILED:…
martadarbinyan May 20, 2026
1d39cc4
Justification expansion is not applied around CJK Unified Ideographs …
Ahmad-S792 May 20, 2026
1aeca69
DFG abstract interpreter misclassifies ArraySortCompact result as Spe…
asworkjsc May 20, 2026
64c272b
[CSS] Add strong CSS types for border-image/mask-border/box-reflect p…
weinig May 20, 2026
f6f36fc
Avoid O(n^2) traversal under RenderLayer::insertOnlyThisLayer
anttijk May 20, 2026
c415e39
[JSC] Introduce private tmp mechanism to DFG ByteCodeParser
Constellation May 20, 2026
774fe6b
Unreviewed, reverting 312738@main.
revert-bot May 20, 2026
62fb864
[Site Isolation] Ensure FrameInfoData.documentID is populated when po…
szewai May 20, 2026
b4e7e8b
Align with disallowing <url> type in attr()
anttijk May 20, 2026
e45cd06
Follow up to "[Build perf] Add incremental build benchmark to measure…
emw-apple May 20, 2026
1e91c9b
Fix duplicate -webkit-text-fill-color declarations in imported WPT tests
vitorroriz May 20, 2026
32267a4
IntersectionObserver reports incorrect bounds for SVG element targets
Ahmad-S792 May 20, 2026
3fa93f6
[GTK][WPE] Bump SDK version from 2.53-v4-95ead24 -> 2.53-v5-3bdf4b8
clopez May 20, 2026
f05c6af
WebCore::availableScreenRect(NSScreen *) is not defined or called
aprotyas May 20, 2026
66231fe
Clearing the Console tab search field does not dismiss the Clear Filt…
AnujPanta1 May 20, 2026
f31bec0
Re-land [Swift in WebKit] Work towards supporting Swift in WTF (part 4)
rr-codes May 20, 2026
87e4f95
[webkitcorepy] Lazy load unittest.mock
JonWBedard May 20, 2026
cc28449
Fix use-after-move crash in TransferString::release() with GCC
mcrha May 20, 2026
84a08d4
NetworkConnectionToWebProcess::createSocketChannel should reject requ…
kmonsen May 20, 2026
e558364
[AutoFill Debugging] Fix an occasional web content process crash unde…
whsieh May 20, 2026
4d9e0c4
Update expectations for imported/w3c/web-platform-tests/dom/events/Ev…
annevk May 20, 2026
6cfb796
[CMake] touching a WTF .cpp file should not spend 11s doing LLInt stuff
geoffreygaren May 20, 2026
297742c
[Gardening]: REGRESSION(310285@main): [macOS] imported/w3c/web-platfo…
karlrackler May 20, 2026
97b275e
Revert 312799@main: broke some flex sizing
alanbaradlay May 20, 2026
c0c2784
[iOS] Use temp directories per App for extensions
pvollan May 20, 2026
3f8ceeb
AX: Add mechanism to opt-out of using WebKit's custom rotor implement…
twilco May 20, 2026
c943a0d
moveBefore() needs to enqueue mutation records
lukewarlow May 20, 2026
f2001e5
Use protect() instead of RefPtr { } in style code
ruthvikkonda May 20, 2026
99d4fc5
[Gardening]: [Tahoe x86_64] fast/forms/select/mac-wk2/inactive-appear…
karlrackler May 21, 2026
fb8bfea
[JSC] incorrect side-effect modeling for Spread(SetObjectUse) in DFG …
heimskr May 21, 2026
9fe2252
[Gardening]: [Tahoe x86_64] http/tests/resourceLoadStatistics/website…
karlrackler May 21, 2026
02e76c6
Fix crashes in RealtimeIncoming*Source destructors by ensuring sink r…
May 21, 2026
9a19d07
Align ContentSecurityPolicySource::pathMatches() with CSP3 spec path …
roberto-apple May 21, 2026
8b9b746
[webkitscmpy] Git.fetch() should update remote tracking refs
gsnedders May 21, 2026
14ef33d
[Site Isolation] [iOS] File picker selection is dropped when <input t…
zakariaridouh May 21, 2026
e5c4d1b
[Site Isolation] Don't seed new RemoteFrame with the dying LocalFrame…
zakariaridouh May 21, 2026
2bfe8ae
[Site Isolation] Web Inspector: deterministic Network IDs, event rout…
burg May 21, 2026
b958a24
Use order files for WebCore and JavaScriptCore on macOS
Andrew-Fryer May 21, 2026
870d286
Drop WPTChangeExport from `webkit-patch`
gsnedders May 21, 2026
33a1cda
[AppKit Gestures] Gesture-driven drag-and-drop does not recognize <im…
aprotyas May 21, 2026
b776e22
[BFCache] Drive WebBackForwardCacheEntry lifecycle via explicit IPCs
basuke May 21, 2026
267af1c
[JSC] Add test for MultiGetByOffset interaction with ValueRepReduction
syg May 21, 2026
b08930b
Rename BANNER_VIEW_OVERLAYS to TOP_BANNER_VIEW_OVERLAYS
lilyspiniolas May 21, 2026
e0215b8
Compile JSDOMWindow.cpp outside its unified bundle
sheeparegreat May 21, 2026
62cd2f0
[CMake] Forward --cmake from run-minibrowser/run-swiftbrowser to unde…
zakariaridouh May 21, 2026
ed04ff4
Don't call document->removeAudioProducer during Document destruction
atar13 May 21, 2026
a1c451b
[Tools] linux_get_crash_log: add a simplified backtrace report.
clopez May 21, 2026
505ef3a
claude.ai: Quirk to work around chat stuck in infinite reload loop af…
cdumez May 21, 2026
9ed47b4
Rewrite http/tests/security/cross-origin-indexeddb.html to actually v…
szewai May 21, 2026
2e2ba43
Fix InspectorIdentifierRegistry.h private framework header includes
burg May 21, 2026
3bce213
SWServer::topLevelServiceWorkerClientFromPageIdentifier() crashes whe…
May 21, 2026
b07dca9
[JSC] GetByStatus::computeFor should not walk proto chain for direct …
vigneshrao-apple May 21, 2026
d6c7e00
Block third-party cookies for requests from about:blank popups
charliewolfe May 21, 2026
fc1ef83
Haptic feedback for <input type=checkbox switch> can be triggered wit…
pxlcoder May 21, 2026
53c3a3a
vp9_scale_references: fail if no free buffer is available (Potential …
youennf May 21, 2026
4193d2c
REGRESSION (301011@main): Crash in MediaPlayerPrivateMediaSourceAVFOb…
May 21, 2026
9b473b0
StyleOriginatedTimelinesController::documentDidResolveStyle: Use remo…
squelart May 21, 2026
0f602ce
REGRESSION(313580@main) [GLIB] Update some glib-specific css-values b…
lauromoura May 21, 2026
cf126fb
[GLIB] compositing/debug-borders-dynamic.html is frequently image fai…
lauromoura May 21, 2026
f537618
REGRESSION(312211@main) Re-introduce URL protocol check for WebKitGTK
dpino May 21, 2026
a97f1e5
[CMake] Fix build after 313638@main by using canonical include path f…
zakariaridouh May 21, 2026
f7fae6e
fixed-z-index-blend.html: scrollBy before the requestAnimationFrame c…
vitorroriz May 21, 2026
f345454
[threaded-animations] stuttery animation on bmwusa.com configurator p…
graouts May 21, 2026
39d4ce1
Remove 'WebXR Augmented Reality Module' option on visionOS
djg May 21, 2026
99c9042
Merge remote-tracking branch 'upstream/main' into bun/upgrade-to-39d4…
sosukesuzuki May 21, 2026
e54e803
Fix Bun-side fork code for upstream API changes
sosukesuzuki May 21, 2026
d0bc4ac
JSPromise: route inline microtask reactions through synchronous modul…
sosukesuzuki May 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 12 additions & 12 deletions .submitproject
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
[submitproject "filter"]
includedSubdirectoryPatterns = .sourcefilters
includedSubdirectoryPatterns = Configurations/
includedSubdirectoryPatterns = Source/
includedSubdirectoryPatterns = WebKitLibraries/SDKs/*.internal-additions.sdk/
includedSubdirectoryPatterns = Source/bmalloc/
includedSubdirectoryPatterns = Source/JavaScriptCore/
includedSubdirectoryPatterns = Source/WebCore/
includedSubdirectoryPatterns = Source/WebDriver/
includedSubdirectoryPatterns = Source/WebGPU/
includedSubdirectoryPatterns = Source/WebInspectorUI/
includedSubdirectoryPatterns = Source/WebKit/
includedSubdirectoryPatterns = Source/WebKitLegacy/
includedSubdirectoryPatterns = Source/WTF/
includedSubdirectoryPatterns = Source/ThirdParty/ANGLE/
includedSubdirectoryPatterns = Source/ThirdParty/libwebrtc/
excludedSubdirectoryPatterns = Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src/util
excludedSubdirectoryPatterns = Source/ThirdParty/libwebrtc/Source/webrtc/examples
excludedSubdirectoryPatterns = Source/ThirdParty/capstone
excludedSubdirectoryPatterns = Source/ThirdParty/d3flamegraphjs
excludedSubdirectoryPatterns = Source/ThirdParty/d3js
excludedSubdirectoryPatterns = Source/ThirdParty/gmock
excludedSubdirectoryPatterns = Source/ThirdParty/gtest
excludedSubdirectoryPatterns = Source/ThirdParty/libsysprof-capture
excludedSubdirectoryPatterns = Source/ThirdParty/qunit
excludedSubdirectoryPatterns = Source/ThirdParty/skia
excludedSubdirectoryPatterns = Source/ThirdParty/unifdef
excludedSubdirectoryPatterns = Source/ThirdParty/xdgmime
excludedSubdirectoryPatterns = Source/*/SaferCPPExpectations/
includedSubdirectoryPatterns = WebKitLibraries/SDKs/*.internal-additions.sdk/
[submitproject "gitmodules"]
enabled = false
9 changes: 9 additions & 0 deletions .submitproject-append
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[submitproject "filter"]
includedSubdirectoryPatterns = Source/ThirdParty/gmock
includedSubdirectoryPatterns = Source/ThirdParty/gtest
includedSubdirectoryPatterns = Tools/DumpRenderTree
includedSubdirectoryPatterns = Tools/ImageDiff
includedSubdirectoryPatterns = Tools/MiniBrowser
includedSubdirectoryPatterns = Tools/TestRunnerShared
includedSubdirectoryPatterns = Tools/WebKitTestRunner
excludedSubdirectoryPatterns = Tools/WebKitTestRunner/gtk
2 changes: 1 addition & 1 deletion .wkdev-sdk-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.53-v2-2352e15
2.53-v5-3bdf4b8
41 changes: 31 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,26 @@ if (PORT STREQUAL "IOS")
endif ()
endif ()

if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_SYSTEM_NAME STREQUAL "iOS" AND NOT CMAKE_OSX_SYSROOT)
# Set CMAKE_OSX_SYSROOT before the project() call below. project() runs ABI
# detection tests whose results are cached; having the wrong sysroot there
# would cause those cached results to refer to a different SDK than actual
# builds use. OptionsMac.cmake (which sets this via WEBKIT_XCRUN) is loaded
# only after project() via include(WebKitCommon), so it is too late.
# WEBKIT_XCRUN is also unavailable here because WebKitXcrun.cmake is
# included by OptionsMac.cmake.
execute_process(COMMAND xcrun --sdk macosx --show-sdk-path
OUTPUT_VARIABLE _macos_sysroot
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE _xcrun_result
ERROR_QUIET)
if (_xcrun_result EQUAL 0 AND _macos_sysroot)
set(CMAKE_OSX_SYSROOT "${_macos_sysroot}" CACHE PATH "macOS SDK path" FORCE)
endif ()
unset(_macos_sysroot)
unset(_xcrun_result)
endif ()

project(WebKit LANGUAGES C CXX)

# -----------------------------------------------------------------------------
Expand Down Expand Up @@ -111,23 +131,24 @@ if (SWIFT_REQUIRED)
endif ()

# Override Swift compiler to a wrapper script to work around the
# fact pkg-config feeds CFLAGS even to swiftc.
# Guard against cache poisoning: if CMAKE_Swift_COMPILER already IS the
# wrapper (from a previous configure), find the real compiler via 'which'.
# fact CMake feeds incorrect flags to swiftc.
set(_swift_wrapper "${CMAKE_SOURCE_DIR}/Tools/Scripts/swift/swiftc-wrapper.sh")
if (CMAKE_Swift_COMPILER STREQUAL _swift_wrapper)
execute_process(COMMAND which swiftc RESULT_VARIABLE _which_retcode OUTPUT_VARIABLE _real_swiftc OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT _which_retcode EQUAL 0)
message(FATAL_ERROR "swiftc not found in PATH")
if (NOT ORIGINAL_Swift_COMPILER)
find_program(ORIGINAL_Swift_COMPILER NAMES swiftc REQUIRED)
endif ()
else ()
set(_real_swiftc "${CMAKE_Swift_COMPILER}")
set(ORIGINAL_Swift_COMPILER "${CMAKE_Swift_COMPILER}" CACHE FILEPATH "Original Swift compiler" FORCE)
endif ()
set(ORIGINAL_Swift_COMPILER "${_real_swiftc}" CACHE FILEPATH "Original Swift compiler" FORCE)
set(CMAKE_Swift_COMPILER "${_swift_wrapper}" CACHE FILEPATH "Swift compiler wrapper" FORCE)
set(CMAKE_Swift_COMPILER "${_swift_wrapper}")
add_compile_options($<$<COMPILE_LANGUAGE:Swift>:--original-swift-compiler=${ORIGINAL_Swift_COMPILER}>)
add_link_options($<$<LINK_LANGUAGE:Swift>:--original-swift-compiler=${ORIGINAL_Swift_COMPILER}>)
# The static archive rule (<CMAKE_Swift_CREATE_STATIC_LIBRARY>) uses neither
# <FLAGS> nor link options, so inject the flag directly into the template.
string(REPLACE "<CMAKE_Swift_COMPILER>"
"<CMAKE_Swift_COMPILER> --original-swift-compiler=${ORIGINAL_Swift_COMPILER}"
CMAKE_Swift_CREATE_STATIC_LIBRARY "${CMAKE_Swift_CREATE_STATIC_LIBRARY}")
unset(_swift_wrapper)
unset(_real_swiftc)
endif ()

# -----------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,10 @@
"type": "STRING",
"value": "thread"
},
"USE_SYSTEM_MALLOC": {
"type": "BOOL",
"value": "ON"
},
"ENABLE_EXPERIMENTAL_FEATURES": {
"type": "BOOL",
"value": "OFF"
Expand Down
12 changes: 9 additions & 3 deletions Configurations/CommonBase.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

WK_ENABLE_SLOW_BUILD_VERIFICATION = $(WK_ENABLE_SLOW_BUILD_VERIFICATION_$(CONFIGURATION));
WK_ENABLE_SLOW_BUILD_VERIFICATION_Production = YES;
__ALLOW_EXCLUDED_USER_SCRIPT_SANDBOXING_PHASE_NAMES = YES;

// Prefix Definitions
//
Expand All @@ -47,10 +48,15 @@ WK_GCC_OPTIMIZATION_LEVEL_SANITIZER_OVERRIDE_NO = $(WK_DEFAULT_GCC_OPTIMIZATION_
WK_GCC_OPTIMIZATION_LEVEL_SANITIZER_OVERRIDE_YES = $(WK_SANITIZER_GCC_OPTIMIZATION_LEVEL);

WK_OS_UNFAIR_LOCK_INLINE_CFLAGS = $(WK_OS_UNFAIR_LOCK_INLINE_CFLAGS_$(USE_INTERNAL_SDK));
WK_OS_UNFAIR_LOCK_INLINE_CFLAGS_YES = OS_UNFAIR_LOCK_INLINE=1
WK_OS_UNFAIR_LOCK_INLINE_CFLAGS_YES = OS_UNFAIR_LOCK_INLINE=1;

WK_GCC_PREPROCESSOR_DEFINITIONS = $(WK_GCC_PREPROCESSOR_DEFINITIONS_$(USE_INTERNAL_SDK));
WK_GCC_PREPROCESSOR_DEFINITIONS_YES = $(WK_OS_UNFAIR_LOCK_INLINE_CFLAGS) __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
WK_ENGINEERING_BUILD = $(WK_ENGINEERING_BUILD_$(CONFIGURATION));
WK_ENGINEERING_BUILD_Debug = 1;
WK_ENGINEERING_BUILD_Release = 1;
WK_ENGINEERING_BUILD_Production = 0;

WK_GCC_PREPROCESSOR_DEFINITIONS = $(WK_GCC_PREPROCESSOR_DEFINITIONS_$(USE_INTERNAL_SDK)) ENGINEERING_BUILD=$(WK_ENGINEERING_BUILD);
WK_GCC_PREPROCESSOR_DEFINITIONS_YES = $(WK_OS_UNFAIR_LOCK_INLINE_CFLAGS) __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0;
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(WK_GCC_PREPROCESSOR_DEFINITIONS);

WK_COMMON_OTHER_CFLAGS = $(WK_SANITIZER_OTHER_CFLAGS) $(WK_COMMON_OTHER_CFLAGS_PGO_$(WK_OR_$(WK_ENABLE_PGO_USE)_$(ENABLE_LLVM_PROFILE_GENERATION)));
Expand Down
2 changes: 1 addition & 1 deletion Configurations/Version.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

MAJOR_VERSION = 625;
MINOR_VERSION = 1;
TINY_VERSION = 18;
TINY_VERSION = 19;
MICRO_VERSION = 0;
NANO_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
Expand Down
6 changes: 6 additions & 0 deletions Configurations/WebKitProjectPaths.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ UMBRELLA_FRAMEWORKS_DIR_OVERRIDE_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(BUILT_PRODUCTS_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)/WebKitAdditions;
WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH[config=Production] = $(SDK_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)/WebKitAdditions;

WK_WEBKITADDITIONS_POSTPROCESS_SCRIPTS_INPUT = $(WK_WEBKITADDITIONS_POSTPROCESS_SCRIPTS_INPUT_$(USE_INTERNAL_SDK)_$(WK_IS_INSTALLHDRS));
WK_WEBKITADDITIONS_POSTPROCESS_SCRIPTS_INPUT_YES_NO = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Scripts/postprocess-framework-headers-definitions;

WK_WEBKITADDITIONS_BRANCH_CONFIG_INPUT = $(WK_WEBKITADDITIONS_BRANCH_CONFIG_INPUT_$(USE_INTERNAL_SDK)_$(WK_IS_INSTALLHDRS));
WK_WEBKITADDITIONS_BRANCH_CONFIG_INPUT_YES_NO = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Scripts/branch_config.json;

// The root directory of the workspace / WebKit repo is determined by how many directories up "Source" or "Tools" is from the SRCROOT.
WK_WORKSPACE_DIR = $(WK_WORKSPACE_DIR_1_$(SRCROOT:dir:standardizepath:file):standardizepath:default=$(WK_WORKSPACE_DIR_2_$(SRCROOT:dir:standardizepath:dir:standardizepath:file):standardizepath:default=$(WK_WORKSPACE_DIR_3_$(SRCROOT:dir:standardizepath:dir:standardizepath:dir:standardizepath:file):standardizepath:default=$(WK_WORKSPACE_DIR_4_$(SRCROOT:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:file):standardizepath:default=$(WK_WORKSPACE_DIR_5_$(SRCROOT:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:file):standardizepath:default=$(WK_WORKSPACE_DIR_6_$(SRCROOT:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:dir:standardizepath:file):standardizepath))))));
WK_WORKSPACE_DIR_1_Source = $(SRCROOT)/../..;
Expand Down
23 changes: 23 additions & 0 deletions JSTests/microbenchmarks/array-includes-string-8bit-long.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function makeString(len, ch) {
let s = "";
for (let i = 0; i < len; ++i)
s += ch;
return s;
}

function test(arr, key) {
return arr.includes(key);
}
noInline(test);

let arr = [];
for (let i = 0; i < 64; ++i)
arr.push(String.fromCharCode(65 + (i % 26)) + makeString(63, "x"));

let key = "@" + makeString(63, "x");
let result = 0;
for (let i = 0; i < 5e4; ++i)
result += test(arr, key) ? 1 : 0;

if (result !== 0)
throw new Error("bad result: " + result);
23 changes: 23 additions & 0 deletions JSTests/microbenchmarks/array-indexof-string-8bit-long.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function makeString(len, ch) {
let s = "";
for (let i = 0; i < len; ++i)
s += ch;
return s;
}

function test(arr, key) {
return arr.indexOf(key);
}
noInline(test);

let arr = [];
for (let i = 0; i < 64; ++i)
arr.push(String.fromCharCode(65 + (i % 26)) + makeString(63, "x"));

let key = "@" + makeString(63, "x");
let result = 0;
for (let i = 0; i < 5e4; ++i)
result += test(arr, key);

if (result !== -5e4)
throw new Error("bad result: " + result);
23 changes: 23 additions & 0 deletions JSTests/microbenchmarks/array-indexof-string-8bit-short.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function makeString(len, ch) {
let s = "";
for (let i = 0; i < len; ++i)
s += ch;
return s;
}

function test(arr, key) {
return arr.indexOf(key);
}
noInline(test);

let arr = [];
for (let i = 0; i < 64; ++i)
arr.push(String.fromCharCode(65 + (i % 26)) + makeString(3, "x"));

let key = "@" + makeString(3, "x");
let result = 0;
for (let i = 0; i < 5e4; ++i)
result += test(arr, key);

if (result !== -5e4)
throw new Error("bad result: " + result);
14 changes: 14 additions & 0 deletions JSTests/microbenchmarks/await-object-literal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Stresses isDefinitelyNonThenable() through `await object`, the dominant pattern
// in async functions returning plain objects.

async function run() {
let acc = 0;
for (let i = 0; i < 1e6; i++) {
const o = await { a: i, b: i + 1, c: i + 2 };
acc += o.a;
}
return acc;
}

run();
drainMicrotasks();
7 changes: 7 additions & 0 deletions JSTests/microbenchmarks/date-now-elapsed.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
var sum = 0;
var start = Date.now();
for (var i = 0; i < 1e6; ++i) {
var diff = Date.now() - start;
if (diff >= 0 && diff < 1e9)
sum += diff;
}
3 changes: 3 additions & 0 deletions JSTests/microbenchmarks/date-now.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var sum = 0;
for (var i = 0; i < 1e6; ++i)
sum += Date.now();
8 changes: 8 additions & 0 deletions JSTests/microbenchmarks/promise-all-non-thenable-object.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const array = [];
for (let i = 0; i < 12; i++)
array.push({ value: i });

for (var i = 0; i < 1e4; ++i)
Promise.all(array);

drainMicrotasks();
8 changes: 8 additions & 0 deletions JSTests/microbenchmarks/promise-all-non-thenable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const array = [];
for (let i = 0; i < 12; i++)
array.push(i);

for (var i = 0; i < 1e4; ++i)
Promise.all(array);

drainMicrotasks();
8 changes: 8 additions & 0 deletions JSTests/microbenchmarks/promise-all-settled-non-thenable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const array = [];
for (let i = 0; i < 12; i++)
array.push(i);

for (var i = 0; i < 1e4; ++i)
Promise.allSettled(array);

drainMicrotasks();
8 changes: 8 additions & 0 deletions JSTests/microbenchmarks/promise-race-non-thenable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const array = [];
for (let i = 0; i < 12; i++)
array.push(i);

for (var i = 0; i < 1e4; ++i)
Promise.race(array);

drainMicrotasks();
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
for (var i = 0; i < 1e6; ++i)
Promise.resolve({ a: i, b: i + 1, c: i + 2 });
6 changes: 6 additions & 0 deletions JSTests/microbenchmarks/promise-resolve-object-literal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Stresses isDefinitelyNonThenable() through Promise.resolve(object). Resolving a
// plain object literal must check whether it is a thenable, which walks the
// prototype chain unless cached on the Structure.

for (var i = 0; i < 1e6; ++i)
Promise.resolve({ a: i, b: i + 1, c: i + 2 });
8 changes: 8 additions & 0 deletions JSTests/microbenchmarks/promise-then-chain-object-literal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// Stresses isDefinitelyNonThenable() through a `.then()` handler chain that returns
// plain object literals — every link must check whether the returned object is a
// thenable.

let p = Promise.resolve({ a: 1, b: 2, c: 3 });
for (let i = 0; i < 1e6; i++)
p = p.then((x) => ({ a: x.a + 1, b: x.b + 1, c: x.c + 1 }));
drainMicrotasks();
14 changes: 14 additions & 0 deletions JSTests/microbenchmarks/regexp-match-digit-cached.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Hot-path microbenchmark for String.prototype.match with a cached primordial
// RegExp argument. The DFG StringMatch node is converted to RegExpMatchFast in
// fixup, guarded by a CheckStructure on the primordial RegExp structure.

function match(string, regexp)
{
return string.match(regexp);
}
noInline(match);

var string = "abc1def2ghi3jkl4mno5";
var regexp = /[0-9]/g;
for (var i = 0; i < 1e6; ++i)
match(string, regexp);
13 changes: 13 additions & 0 deletions JSTests/microbenchmarks/regexp-match-digit-literal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Hot-path microbenchmark for String.prototype.match with a RegExp literal
// allocated on every call. Stresses the primordial-RegExp fast path together
// with regex allocation.

function match(string)
{
return string.match(/[0-9]/g);
}
noInline(match);

var string = "abc1def2ghi3jkl4mno5";
for (var i = 0; i < 1e6; ++i)
match(string);
14 changes: 14 additions & 0 deletions JSTests/microbenchmarks/string-match-digit-short.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Hot-path microbenchmark for String.prototype.match with a short literal
// string regexp source. This exercises the DFG StringMatch fast path for the
// common case where the regexp arg is a string and gets coerced via
// RegExp construction.

function match(string, regexp)
{
return string.match(regexp);
}
noInline(match);

var string = "abc1def2ghi3jkl4mno5";
for (var i = 0; i < 1e7; ++i)
match(string, "[0-9]");
12 changes: 12 additions & 0 deletions JSTests/microbenchmarks/string-match-letter-short.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Hot-path microbenchmark for String.prototype.match with a single-char
// literal pattern. Targets the simple non-global match fast path.

function match(string, regexp)
{
return string.match(regexp);
}
noInline(match);

var string = "alpha bravo charlie delta echo foxtrot golf";
for (var i = 0; i < 1e7; ++i)
match(string, "a");
Loading
Loading