Skip to content

Conversation

@Jarred-Sumner
Copy link
Collaborator

Summary

  • Add performPromiseThenWithContext for passing extra context to promise handlers
  • Fix PromiseReactionJob to check isEmpty() || isUndefinedOrNull() before passing context argument (empty JSValue is different from undefined)
  • Add @then property to JSInternalPromisePrototype via addOwnInternalSlots
  • Make addOwnInternalSlots protected in JSPromisePrototype for subclass access
  • Add missing BunPerformMicrotaskJob and BunInvokeJobWithArguments cases in switch statement

Test plan

  • test/js/bun/plugin/plugins.test.ts passes
  • test/js/node/test/parallel/test-readable-from.js passes
  • test/js/node/test/parallel/test-stream-duplex-from.js passes
  • test/js/web/streams/streams.test.js ReadableStream for Blob test passes
  • Various regression tests pass

🤖 Generated with Claude Code

jernoble and others added 30 commits January 6, 2026 13:34
rdar://165519880
https://bugs.webkit.org/show_bug.cgi?id=304990

Reviewed by Eric Carlson.

303486@main exposed a pre-existing issue, where a client of VideoMediaSampleRenderer
which called stopRequestingMediaData() from callback would have its lambda destroyed
while that lambda was still executing. To protect against this kind of re-entrancy,
clear the m_readyForMoreMediaDataFunction ivar from stopRequestingMediaData(), but
only destroy the function itself during the next run-loop.

* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
(WebCore::VideoMediaSampleRenderer::stopRequestingMediaData):

Canonical link: https://commits.webkit.org/305174@main
…configurations

https://bugs.webkit.org/show_bug.cgi?id=304937
rdar://167548897

Reviewed by Mike Wyrzykowski.

Now that the reasons for disablement no longer apply, enable these modules in more macOS configurations.

* Source/WTF/Configurations/WTF.xcconfig:
* Source/bmalloc/Configurations/bmalloc.xcconfig:

Canonical link: https://commits.webkit.org/305175@main
…-task-message-crash.html is a constant timeout

https://bugs.webkit.org/show_bug.cgi?id=304079
rdar://166396326

Reviewed by Charlie Wolfe.

This is like the fix in 303953@main but for additional serialization changes in 304259@main and 304905@main.

* LayoutTests/http/tests/ipc/ipc-fetch-task-message-crash.html:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/305176@main
…ht and overlaps with the rightContainerButtons

https://bugs.webkit.org/show_bug.cgi?id=304993
rdar://167634241

This patch restores the expected positioning by ensuring the scrubber does not inherit a fixed left
offset from the shared controls.

Reviewed by Andy Estes.

* LayoutTests/media/modern-media-controls/macos-inline-media-controls/mac-inline-controls-time-control-no-overlap-expected.txt: Added.
* LayoutTests/media/modern-media-controls/macos-inline-media-controls/mac-inline-controls-time-control-no-overlap.html: Added.
* Source/WebCore/rendering/cocoa/RenderThemeCocoa.mm:
(WebCore::macOSInlineMediaControlsStyleSheet):

Canonical link: https://commits.webkit.org/305177@main
…ompatibilitySpan.dylib"

https://bugs.webkit.org/show_bug.cgi?id=304649
rdar://166804178

Reviewed by Richard Robinson and Alexey Proskuryakov.

In relocatable builds, we rely on the DYLD_LIBRARY_PATH baked into
WebKit's XPC services to load dylibs. In STP, this load command is set
up so that the install paths for ANGLE (@loader_path/../../../libANGLE-shared.dylib)
and webrtc (@loader_path/../../../libwebrtc.dylib) can be resolved.

The Swift runtime compatibility libraries that our build copies from the
toolchain are linked against with an rpath-based install path
(@rpath/libswiftCompatibilitySpan.dylib). So, the DYLD_LIBRARY_PATH we
have doesn't work. It needs to be combined with the relative path
from the service bundle to the shallow bundle (../../..).

Adding new search paths to DYLD_LIBRARY_PATH is risky, since we would
need to carefully consider every path WebKit.framework can be installed
at, to ensure it is never possible to load untrusted code from outside
the bundle. Instead, add `@loader_path/../../../` to the XPC service's
rpath list, so that rpath resolution uses the same semantics as our own
two dylibs.

* Source/WebKit/Configurations/BaseXPCService.xcconfig:

Canonical link: https://commits.webkit.org/305178@main
https://bugs.webkit.org/show_bug.cgi?id=304964

Reviewed by Darin Adler.

Simplify CSSSelectorList::componentCount() & CSSSelectorList::listSize()
now that the selectors are stored in a FixedVector and we know the size.

In a follow-up, we should be able to get rid of the `m_isLastInSelectorList`
flag on CSSSelector but the CSSSelectorList iterator will need updating
first (which will require performance A/B testing).

This change also reduces the use of WTF_ALLOW_UNSAFE_BUFFER_USAGE and
thus improves code safety.

* Source/WebCore/css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::listSize const):
(WebCore::CSSSelectorList::componentCount const):
* Source/WebCore/css/CSSSelectorList.h:
(WebCore::CSSSelectorList::componentCount const):

Canonical link: https://commits.webkit.org/305179@main
https://bugs.webkit.org/show_bug.cgi?id=304991
rdar://167632286

Reviewed by Vitor Roriz.

We currently need a deviceScaleFactor in order to create a ZoomFactor,
but we never end up using it anywhere. We previously used it for
LineWidth but unfortunately that is no longer the case as of
301536@main. We can remove it from this struct for now and add it back
in once we need it. This ends up removing some unnecessary calls into
InheritedRareData that end up occurring because we need it to create the ZoomFactor.

Canonical link: https://commits.webkit.org/305180@main
…aracterType> b)`

https://bugs.webkit.org/show_bug.cgi?id=304919

Reviewed by Yusuke Suzuki.

Micro-optimize `WTF::equal(const CharacterType* a, std::span<const CharacterType> b)`
as recommended by Claude AI.

Here are micro-benchmark results:

Length      Original (ns) Optimized (ns)     Speedup      Improvement
----------------------------------------------------------------------
2                    1.80           1.58       1.141x            +12.3%
3                    1.60           1.58       1.008x            +0.8%
4                    1.59           1.58       1.004x            +0.4%
5                    1.58           1.58       0.999x            -0.1%
6                    1.58           1.57       1.006x            +0.6%
7                    1.57           1.57       1.001x            +0.1%
8                    1.57           1.57       1.001x            +0.1%
9                    1.65           1.62       1.018x            +1.7%
12                   1.57           1.58       0.997x            -0.3%
16                   1.57           1.57       1.001x            +0.1%
17                   1.56           1.57       0.990x            -1.0%
20                   1.57           1.58       0.993x            -0.7%
24                   1.58           1.57       1.007x            +0.7%
32                   1.59           1.57       1.013x            +1.3%
33                   1.66           1.62       1.022x            +2.1%
40                   1.67           1.64       1.019x            +1.9%
48                   1.70           1.61       1.054x            +5.2%
64                   1.83           1.63       1.123x            +10.9%
65                   1.83           1.70       1.074x            +6.9%
80                   2.11           1.72       1.225x            +18.3%
100                  2.36           2.20       1.072x            +6.8%
128                  2.96           2.53       1.173x            +14.7%
256                  5.37           4.79       1.122x            +10.8%
512                  9.67           8.79       1.100x            +9.1%
1024                18.93          16.69       1.134x            +11.8%
2048                46.76          37.97       1.231x            +18.8%
4096                86.65          76.17       1.138x            +12.1%

----------------------------------------------------------------------
Average speedup: 1.136x
Total improvement: 12.0%

* Source/WTF/wtf/text/StringCommon.h:
(WTF::equal):

Canonical link: https://commits.webkit.org/305181@main
…t> b)`

https://bugs.webkit.org/show_bug.cgi?id=304921

Reviewed by Yusuke Suzuki.

Micro-optimize `WTF::equal(const char16_t* a, std::span<const char16_t> b)`
as recommended by Claude AI:

Micro benchmark results:

Length           Bytes  Original (ns) Optimized (ns)     Speedup    Improvement   Status
----------------------------------------------------------------------------------------
2                    4           1.82           1.58       1.153x          +13.3%       OK
3                    6           1.59           1.58       1.003x          +0.3%        OK
4                    8           1.58           1.59       0.997x          -0.3%        OK
5                   10           1.58           1.56       1.010x          +1.0%        OK
6                   12           1.56           1.68       0.930x          -7.5%        OK
7                   14           1.59           1.57       1.012x          +1.2%        OK
8                   16           1.57           1.56       1.005x          +0.5%        OK
9                   18           1.58           1.60       0.986x          -1.4%        OK
10                  20           1.59           1.59       0.998x          -0.2%        OK
12                  24           1.59           1.59       1.000x          +0.0%        OK
14                  28           1.60           1.60       1.003x          +0.3%        OK
16                  32           1.59           1.61       0.989x          -1.1%        OK
17                  34           1.71           1.68       1.018x          +1.8%        OK
20                  40           1.71           1.66       1.031x          +3.0%        OK
24                  48           1.75           1.68       1.043x          +4.1%        OK
28                  56           1.74           1.66       1.053x          +5.0%        OK
32                  64           1.85           1.67       1.105x          +9.5%        OK
33                  66           1.84           1.74       1.056x          +5.3%        OK
40                  80           2.23           1.74       1.285x          +22.2%       OK
48                  96           2.46           1.99       1.237x          +19.1%       OK
64                 128           3.01           2.37       1.270x          +21.3%       OK
80                 160           3.55           2.96       1.200x          +16.6%       OK
100                200           4.16           3.81       1.094x          +8.6%        OK
128                256           5.47           4.70       1.163x          +14.0%       OK
256                512          10.28           9.10       1.130x          +11.5%       OK
512               1024          19.34          16.76       1.154x          +13.3%       OK
1024              2048          49.12          40.56       1.211x          +17.4%       OK
2048              4096          89.04          79.29       1.123x          +11.0%       OK

----------------------------------------------------------------------------------------
Average speedup: 1.135x
Total improvement: 11.9%

Key Findings
1. Small Strings (2-16 elements, 4-32 bytes): Minimal Impact

Noise-level differences (±1-2%)
Already well-optimized, dominated by branch prediction

2. Case 5 - NEW OPTIMIZATION (17-32 elements, 34-64 bytes): Good Gains

32 elements: +9.5% - the new 4-SIMD-load path is working!
24 elements: +4.1%
28 elements: +5.0%
Progressive improvement as length increases toward 32

3. Default Case (33+ elements, 66+ bytes): Strong Gains

Best improvements at 40-64 elements: +19-22% 🔥
40 elements: +22.2% - exceptional!
48 elements: +19.1%
64 elements: +21.3%
The fixed loop logic (starting at i=16 instead of i=length%8) really shines here

4. Large Strings (100+ elements): Solid 10-15% Gains

Consistent improvements throughout
1024 elements: +17.4% - very good for such a large string

* Source/WTF/wtf/text/StringCommon.h:
(WTF::equal):

Canonical link: https://commits.webkit.org/305182@main
…td::span<const double> sourceSpan)`

https://bugs.webkit.org/show_bug.cgi?id=304928

Reviewed by Yusuke Suzuki.

Micro-optimize the function as directed by Claude AI.

In particular, the following improvements were made:
1. Replaced simde_vld1q_f64_x4 with individual loads
- vld1q_f64_x4 is a structure load that loads into an interleaved structure, which may have overhead
- Individual vld1q_f64 loads are simpler and give the compiler more flexibility to schedule instructions
- On ARM64, the compiler can pipeline these loads better

2. Replaced simde_vst1q_f32_x2 with individual stores
- Similar to loads - structure stores have overhead
- Individual stores are simpler and more efficient
- Avoids creating the temporary simde_float32x4x2_t structure
- Better instruction scheduling

Micro-benchmarking results:

Length     Buggy (ns)      Fixed (ns)      Speedup      Improvement  Status
--------------------------------------------------------------------------------
1          1.46            1.22              1.197x       +19.7% OK
2          1.33            0.94              1.424x       +42.4% OK
3          1.23            1.33              0.924x        -7.6% OK
4          1.25            1.22              1.028x        +2.8% OK
5          1.45            1.46              0.998x        -0.2% OK
6          1.44            1.44              1.000x        -0.0% OK
7          1.65            1.63              1.012x        +1.2% OK
8          0.72            0.61              1.180x       +18.0% OK
9          0.97            0.93              1.046x        +4.6% OK
10         1.25            1.21              1.036x        +3.6% OK
12         1.47            1.31              1.121x       +12.1% OK
15         1.71            1.73              0.992x        -0.8% OK
16         1.22            0.92              1.334x       +33.4% OK
20         1.98            1.75              1.134x       +13.4% OK
24         1.73            1.22              1.415x       +41.5% OK
31         2.98            2.49              1.195x       +19.5% OK
32         2.21            1.57              1.410x       +41.0% OK
48         3.20            2.31              1.387x       +38.7% OK
64         4.20            3.02              1.389x       +38.9% OK
96         6.12            4.54              1.346x       +34.6% OK
128        8.18            6.07              1.348x       +34.8% OK
192        12.06           8.98              1.343x       +34.3% OK
256        15.86           12.02             1.319x       +31.9% OK
512        31.63           23.92             1.322x       +32.2% OK
1024       67.34           52.24             1.289x       +28.9% OK
2048       132.41          101.49            1.305x       +30.5% OK
4096       263.98          236.39            1.117x       +11.7% OK
8192       617.88          615.62            1.004x        +0.4% OK
16384      1006.77         774.89            1.299x       +29.9% OK

--------------------------------------------------------------------------------
Average speedup: 1.204x (20.4% improvement)

Test: Tools/TestWebKitAPI/Tests/WTF/StringCommon.cpp

* Source/WTF/wtf/text/StringCommon.h:
(WTF::copyElements):
* Tools/TestWebKitAPI/Tests/WTF/StringCommon.cpp:
(TestWebKitAPI::CopyElementsDoubleToFloatTest::testConversion):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, VerySmallSizes)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, ExactlySIMDWidth)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, JustAboveSIMDWidth)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, ExactlyTwoSIMDIterations)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, MediumSizes)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, LargeSizes)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, EdgeCasesAroundSIMDBoundaries)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, SpecialValues)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, PrecisionLoss)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, StressTestMultipleIterations)):
(TestWebKitAPI::TEST_F(CopyElementsDoubleToFloatTest, AlignmentVariations)):

Canonical link: https://commits.webkit.org/305183@main
…const_iterator

https://bugs.webkit.org/show_bug.cgi?id=304971

Reviewed by Darin Adler and Sam Weinig.

Stop relying on the `isLastInSelectorList` flag in CSSSelectorList's
const_iterator. This is in preparation for removing the `isLastInSelectorList`
flag now that the CSSSelectors are stored in a FixedVector.

* Source/WebCore/css/CSSSelectorList.h:
(WebCore::CSSSelectorList::const_iterator::operator++):

Canonical link: https://commits.webkit.org/305184@main
https://bugs.webkit.org/show_bug.cgi?id=305015
rdar://167653126

Reviewed by Marcus Plutowski.

Because its parent RedBlackTree<ScheduledTask, MonotonicTime>::ThreadSafeNode is TZONE_ALLOCATED.

The build is the test.  This fixes a compile time error.

* Source/WTF/wtf/generic/RunLoopGeneric.cpp:

Canonical link: https://commits.webkit.org/305185@main
https://bugs.webkit.org/show_bug.cgi?id=304978

Reviewed by Darin Adler and Sam Weinig.

Simplify CSSSelectorList::makeCopyingSimpleSelector() by passing the
CSSSelector to the FixedVector constructor directly.

* Source/WebCore/css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::makeCopyingSimpleSelector):

Canonical link: https://commits.webkit.org/305186@main
https://bugs.webkit.org/show_bug.cgi?id=304190

Reviewed by Yusuke Suzuki.

Getting the order-of-operations tests to pass required refactoring
extractDifferenceOptions(), which affects the since/until/round
methods for some of the other Temporal types.

* JSTests/stress/temporal-plainyearmonth.js:
(shouldBe):
* JSTests/test262/config.yaml:
* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/runtime/TemporalCalendar.cpp:
(JSC::TemporalCalendar::isoDateAdd):
(JSC::TemporalCalendar::balanceISOYearMonth):
(JSC::TemporalCalendar::calendarDateUntil):
(JSC::TemporalCalendar::differenceTemporalPlainYearMonth):
(JSC::TemporalCalendar::isoDateCompare):
(JSC::TemporalCalendar::equals):
* Source/JavaScriptCore/runtime/TemporalCalendar.h:
* Source/JavaScriptCore/runtime/TemporalCalendarPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/TemporalDuration.cpp:
(JSC::TemporalDuration::combineISODateAndTimeRecord):
(JSC::TemporalDuration::nudgeToCalendarUnit):
(JSC::TemporalDuration::bubbleRelativeDuration):
(JSC::TemporalDuration::round const):
(JSC::combineISODateAndTimeRecord): Deleted.
(JSC::nudgeToCalendarUnit): Deleted.
(JSC::bubbleRelativeDuration): Deleted.
* Source/JavaScriptCore/runtime/TemporalDuration.h:
* Source/JavaScriptCore/runtime/TemporalInstant.cpp:
* Source/JavaScriptCore/runtime/TemporalObject.cpp:
(JSC::getTemporalUnitValuedOption):
(JSC::validateTemporalUnitValue):
(JSC::validateTemporalRoundingIncrement):
(JSC::extractDifferenceOptions):
(JSC::secondsStringPrecision):
(JSC::maximumRoundingIncrement):
(JSC::temporalRoundingIncrement):
(JSC::temporalLargestUnit): Deleted.
(JSC::temporalSmallestUnit): Deleted.
* Source/JavaScriptCore/runtime/TemporalObject.h:
(JSC::isAbsentUnit):
* Source/JavaScriptCore/runtime/TemporalPlainDateTime.cpp:
(JSC::TemporalPlainDateTime::round):
* Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:
(JSC::TemporalPlainTime::round const):
(JSC::TemporalPlainTime::from):
* Source/JavaScriptCore/runtime/TemporalPlainYearMonth.cpp:
(JSC::TemporalPlainYearMonth::sinceOrUntil):
(JSC::TemporalPlainYearMonth::until):
(JSC::TemporalPlainYearMonth::since):
* Source/JavaScriptCore/runtime/TemporalPlainYearMonth.h:
* Source/JavaScriptCore/runtime/TemporalPlainYearMonthPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Canonical link: https://commits.webkit.org/305187@main
rdar://167656447

Broke the build.

Reverted change:

    Re-land [Swift in WebKit] Enable the bmalloc and WTF modules in more configurations
    https://bugs.webkit.org/show_bug.cgi?id=304937
    rdar://167548897
    305175@main (fc2b23a)

Canonical link: https://commits.webkit.org/305188@main
https://bugs.webkit.org/show_bug.cgi?id=304977

Reviewed by Darin Adler.

Optimize CSSSelectorList::operator==() now that we know the list size
after 305131@main. Early return if the list sizes are different and
avoid iterating over the list altogether in this case.

* Source/WebCore/css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::operator== const):

Canonical link: https://commits.webkit.org/305189@main
…row placement

https://bugs.webkit.org/show_bug.cgi?id=305009
rdar://167649436

Reviewed by Tim Nguyen.

In 303864@main we did a bit of a refactoring to move some logic that
checks the placement of grid items to some helper functions. In
particular, we added some functions to check it the -end placement is
one that we currently support. In that process I made a copy paste
mistake and ended up causing hasValidRowPlacement to return
GridItemHasUnsupportedColumnPlacement. Looking at the diff from that
patch we were previously returning GridItemHasUnsupportedColumnPlacement
which is more in line with what this function was intended to do.

Canonical link: https://commits.webkit.org/305190@main
rdar://166810468
https://bugs.webkit.org/show_bug.cgi?id=305010

Reviewed by Eric Carlson.

304297@main fixed a behavior issue by calling HTMLMediaElement::canProduceAudioChanged()
in more circumstances than previously, but this had the side effect of increasing the
CPU usage in audiomxd as a result of certain properties being changed more often.

Specifically, the excess CPU time was spent executing -setPreferredIOBufferDuration:.
Reduce the cost of calling this method by caching the set value and returing early if
the same value is passed into AudioSessionIOS::setPreferredBufferSize().

* Source/WebCore/platform/audio/ios/AudioSessionIOS.h:
* Source/WebCore/platform/audio/ios/AudioSessionIOS.mm:
(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper sessionMediaServicesWereReset:]):

Canonical link: https://commits.webkit.org/305191@main
… know about its internals

https://bugs.webkit.org/show_bug.cgi?id=304980

Reviewed by Darin Adler.

Add a new constructor to CSSSelectorList so StyleRule doesn't need to
know about its internals. This results in better encapsulation.

* Source/WebCore/css/CSSSelector.h:
(WebCore::CSSSelector::isLastInComplexSelector const):
(WebCore::CSSSelector::setLastInSelectorList):
* Source/WebCore/css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
* Source/WebCore/css/CSSSelectorList.h:
(WebCore::CSSSelectorList::CSSSelectorList):
* Source/WebCore/css/StyleRule.cpp:
(WebCore::StyleRule::createForSplitting):

Canonical link: https://commits.webkit.org/305192@main
…are flaky timeouts

https://bugs.webkit.org/show_bug.cgi?id=305008
rdar://167649319

Unreviewed test Gardening

Skipping API tests in macOS Sonoma due to flaky timeouts.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm:
(TEST(WebKit, MediaBufferingPolicy)):
(TEST(WebKit, MediaBufferingPolicyWhenSuspendedOrHidden)):

Canonical link: https://commits.webkit.org/305193@main
…ore: WebCore::Navigation::innerDispatchNavigateEvent

https://bugs.webkit.org/show_bug.cgi?id=305005
rdar://167449903

Reviewed by Chris Dumez.

The crash is on this line:
m_transition = NavigationTransition::create(navigationType, *fromNavigationHistoryEntry, DeferredPromise::create(domGlobalObject, DeferredPromise::Mode::RetainPromiseOnResolve).releaseNonNull());

It seems that fromNavigationHistoryEntry is null when dereferenced.

It's not clear why there is no currentEntry. For now the best fix we have is
to null check fromNavigationHistoryEntry and abort the event.

* Source/WebCore/page/Navigation.cpp:
(WebCore::Navigation::innerDispatchNavigateEvent):

Canonical link: https://commits.webkit.org/305194@main
…nterInteractionRegions is a constant failure

https://bugs.webkit.org/show_bug.cgi?id=304880

Reviewed by Wenson Hsieh.

This test case unintentionally relied on a continuation bug which was triggered by this slightly (slightly) malformed markup.

Now that the bug is fixed (304526@main), caret returns the proper size which makes the test case fail unexpectedly but only
because the caret (through the malformed markup) "encloses" the subsequent <div> (so essentially the caret is as tall as the 2 divs).

* Tools/TestWebKitAPI/Tests/WebKitCocoa/cursor-styles.html:

Canonical link: https://commits.webkit.org/305195@main
…lazy-image-load-in-iframes-scripting-disabled.html is a flaky crash

https://bugs.webkit.org/show_bug.cgi?id=305026
rdar://167665017

Unreviewed test gardening.

Add test expectation.

* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/305196@main
…cate ID

https://bugs.webkit.org/show_bug.cgi?id=305001
rdar://147015037

Reviewed by Simon Fraser.

When multiple SVG resource elements share the same ID, removing any
one breaks references for all elements using that ID, even though
other definitions remain in the DOM.

To fix this, we now verify the resource being removed matches the one
registered before removing.

Fixes the appearance of user avatar clipping in Slack i.e the
green activity ring. Slack uses multiple SVG clipPath definitions
with the same ID, and when elements are added/removed during virtual
scrolling, clip-path references would break.

Test: svg/clip-path-duplicate-id-removal.html

* LayoutTests/svg/clip-path-duplicate-id-removal-expected.html: Added.
* LayoutTests/svg/clip-path-duplicate-id-removal.html: Added.
* Source/WebCore/dom/TreeScope.cpp:
(WebCore::TreeScope::removeSVGResource):
* Source/WebCore/dom/TreeScope.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceContainer.cpp:
(WebCore::LegacyRenderSVGResourceContainer::willBeDestroyed):
(WebCore::LegacyRenderSVGResourceContainer::idChanged):

Canonical link: https://commits.webkit.org/305197@main
…ing images in non-remote subframes

https://bugs.webkit.org/show_bug.cgi?id=305012
rdar://165119210

Reviewed by Abrar Rahman Protyasha.

After the changes in 301306@main, dragging an image in a subframe fails in the case where either
site isolation is disabled, or site isolation is enabled but the image is in a same-origin frame.
This is due to multiple bugs, regarding how the drag image location is determined:

1.  The `rootFrameID` passed into `doSystemDrag` is currently the source `Frame` where the drag is
    initiated, as opposed to being the root frame of the drag initator.

2.  `dragLocationInWindowCoordinates` is being passed into `convertPointToMainFrameCoordinates`.
    The former is in window coordinates (which is incorrectly computed in the site isolation remote
    frame case), and the latter expects coordinates in the content coordinate space of the frame
    corresponding to the frame ID.

3.  `convertPointToMainFrameCoordinates` itself returns a point in different coordinate spaces,
    depending on whether site isolation is enabled or disabled. When disabled, the resulting
    coordinates are in main frame content coordinates. When enabled, the resulting coordinates
    appear to be in root view coordinates (relative to the mainframe). It's unclear in the first
    place whether "mainframe coordinates" here was intended to refer to content coordinates in the
    main frame, or root view coordinates in the main frame.

To limit risk for now, this patch only fixes (1), which is sufficient to ensure that the drag image
location is correct in the following 3 scenarios:

a. Site isolation disabled: dragging an image in any subframe.
b. Site isolation enabled: dragging an image in a remote subframe under the main frame.
c. Site isolation enabled: dragging an image in a local subframe under the main frame.

We leave (2) and (3) as FIXMEs for now.

Tests: DragAndDropTests.DragLocationForImageInScrolledSubframe

* Source/WebCore/page/DragController.cpp:
(WebCore::DragController::doImageDrag):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::convertPointToMainFrameCoordinates):
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::startDrag):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/image-in-scrolled-subframe.html: Added.
* Tools/TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(TEST(DragAndDropTests, DragLocationForImageInScrolledSubframe)):

Add a test to exercise this fix. The drag location is (incorrectly) far outside the bounds of the
view without these changes.

Canonical link: https://commits.webkit.org/305198@main
…DecodeOrderSampleMap::findSamplesBetweenDecodeKeys

https://bugs.webkit.org/show_bug.cgi?id=304975
rdar://161260966

Reviewed by Youenn Fablet.

A comparison with MediaTime::invalidTime could incorrectly yield true.
(Such as MediaTime::invalidTime() > MediaTime::zeroTime() or MediaTime::invalidTime() > MediaTime::positiveInfiniteTime())

MediaTime::invalidTime() should be treated as a NaN double. We change the spaceship operator to return a partial_ordering
instead of weak_ordering.
Otherwise, the comparison to determine if we are searching past the end key could fail and we would iterate over the table infinitely.

We amend code that didn't handle the case where the buffered range was empty or could use an invalidTime in their calculations.
For all those, an early exit was required but missing.

Tests: Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp
       Tools/TestWebKitAPI/Tests/WebCore/SampleMap.cpp
* Source/WTF/wtf/MediaTime.cpp:
(WTF::operator<=>):
* Source/WTF/wtf/MediaTime.h:
* Source/WebCore/Modules/mediasource/SampleMap.cpp: Add an extra safeguard to make sure we can never iterate past the end of the map.
(WebCore::DecodeOrderSampleMap::findSamplesBetweenDecodeKeys):
* Source/WebCore/platform/MediaSamplesBlock.h:
* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::computeEvictionData): Handle case where the buffered range is empty as we could have provided
an invalid iterator otherwise.
(WebCore::SourceBufferPrivate::maximumBufferedTime const): Do not
* Source/WebCore/platform/graphics/TrackBuffer.cpp:
(WebCore::TrackBuffer::maximumBufferedTime const): Return MediaTime::zeroTime() instead of invalidTime when buffered is empty.
MediaSource is by spec starting at 0.
(WebCore::TrackBuffer::removeCodedFrames): Fix exposed an existing issue if we attempted to remove samples in invalid interval (start past presentationOrder().end())
We now exit early if the iterator found is invalid.
(WebCore::TrackBuffer::codedFramesIntervalSize): same as above.
* Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST(WTF, MediaTime)):
* Tools/TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
(TestWebKitAPI::TEST_F(SampleMapTest, findSamplesBetweenDecodeKeys)):
(TestWebKitAPI::TEST_F(SampleMapTest, findSamplesBetweenDecodeKeysWithNaN)):

Canonical link: https://commits.webkit.org/305199@main
https://bugs.webkit.org/show_bug.cgi?id=305019
rdar://167658463

Reviewed by Mark Lam.

find64 is only handling 2 elements per iteration because SIMD vector
register size is 128. This patch adds several optimizations.

1. First do small loop not to start SIMD for small length.
2. Then, we do 4 vector registers per iteration, so partial unrolling.
3. Handle the remaining elements after this large loop.

* Source/WTF/wtf/text/StringCommon.h:
(WTF::find64):

Canonical link: https://commits.webkit.org/305200@main
…r used

https://bugs.webkit.org/show_bug.cgi?id=305022

Reviewed by Tim Nguyen.

* Source/WebCore/css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
* Source/WebCore/css/CSSSelector.h:
(WebCore::CSSSelector::isLastInSelectorList const): Deleted.
(WebCore::CSSSelector::setLastInSelectorList): Deleted.
* Source/WebCore/css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::makeCopyingSimpleSelector):
(WebCore::CSSSelectorList::makeCopyingComplexSelector):
(WebCore::CSSSelectorList::makeJoining):
* Source/WebCore/css/CSSSelectorList.h:

Canonical link: https://commits.webkit.org/305201@main
…ctorHeapAgent

https://bugs.webkit.org/show_bug.cgi?id=303962
rdar://166265245

Reviewed by BJ Burg and Devin Rousso.

InspectorConsoleAgent stored a raw pointer to InspectorHeapAgent that was manually wired in
WebHeapAgent::enable() and cleared in disable(). This could lead to use-after-free if the heap
agent was destroyed without calling disable() first. This patch removes the stored pointer entirely
by adopting the service locator pattern. For WebCore, InspectorInstrumentation now queries
InstrumentingAgents for the heap agent directly and coordinates the snapshot operation. The
console agent's takeHeapSnapshot() is replaced with reportHeapSnapshot() which only handles
frontend dispatch. For JSC, the heap agent pointer moves to JSGlobalObjectConsoleClient via
setPersistentHeapAgent(), following the same pattern used for InspectorScriptProfilerAgent. This
is safe because both the console client and heap agent are owned by
JSGlobalObjectInspectorController and share the same lifetime.

* Source/JavaScriptCore/SaferCPPExpectations/NoUncheckedPtrMemberCheckerExpectations:
* Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
* Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h:
* Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::createLazyAgents):
* Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::reportHeapSnapshot):
(Inspector::InspectorConsoleAgent::takeHeapSnapshot): Deleted.
* Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h:
* Source/WebCore/inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::takeHeapSnapshotImpl):
* Source/WebCore/inspector/agents/WebHeapAgent.cpp:
(WebCore::WebHeapAgent::disable):
(WebCore::WebHeapAgent::enable):
* Source/WebCore/inspector/agents/WebHeapAgent.h:

Canonical link: https://commits.webkit.org/305202@main
jelee53 and others added 27 commits January 9, 2026 18:36
https://bugs.webkit.org/show_bug.cgi?id=304617
rdar://167049077

Reviewed by Ryosuke Niwa.

Apply https://github.com/WebKit/WebKit/wiki/Safer-CPP-Guidelines.

No new tests needed.

* Source/WebCore/SaferCPPExpectations/UncheckedLocalVarsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedLambdaCapturesCheckerExpectations:
* Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
* Source/WebCore/page/ImageAnalysisQueue.cpp:
(WebCore::ImageAnalysisQueue::enqueueAllImagesRecursive):
(WebCore::ImageAnalysisQueue::resumeProcessing):

Canonical link: https://commits.webkit.org/305397@main
https://bugs.webkit.org/show_bug.cgi?id=240694

Reviewed by Darin Adler.

This avoids the complex and fragile parsing of the porcelain
`git-branch`, and when passed a `str` as the `remote` argument we no
longer have to iterate over every remote.

* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.branches_for):
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.__init__): Add mocks for for-each-ref
(Git.for_each_ref): The actual mock implementation

Canonical link: https://commits.webkit.org/305398@main
… pasting into mail compose in dark mode

https://bugs.webkit.org/show_bug.cgi?id=305232
rdar://165743699

Reviewed by Richard Robinson.

After the changes in rdar://81883755 (in iOS 26), the Mail compose body field no longer uses
`-apple-color-filter: apple-invert-lightness();`, but still honors dark mode via the meta tag
`color-scheme: light dark;` (and additionally punches out white backgrounds in dark mode using
`WKPreferences` SPI).

This means that when copying and pasting dark text on a white background in Safari into Mail
compose, we now end up with something like:

```
<span style="color: black; background-color: white;"></span>
```

While this _looks_ like it should be legible due to the white background color, the background color
effectively becomes transparent when painting due to `_punchOutWhiteBackgroundsInDarkMode`. The end
result is black text on a dark background, which is barely readable.

To fix this, we heuristically remove `color` and `caret-color` style properties when pasting dark
text into Mail compose in dark mode, and instead fall back on default styling (which should result
in white text against a dark background).

See below for more details.

Test: PasteHTML.PasteDarkTextOnWhiteBackgroundIntoDarkModeEditor

* Source/WebCore/editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::collectStylesToRemove):
(WebCore::ReplaceSelectionCommand::removeForegroundColorsInDarkModeIfNeeded):

Add a heuristic to remove inline `color` and `caret-color` styles from pasted elements that
otherwise have no background or a punched out background color, only for editable web views to limit
compat risk. We determine if the color or caret color are non-legible by comparing luminance against
the document's background color; if it's too close (with an arbitrary threshold of 0.1), we simply
remove those inline CSS properties and allow the color to fall back to default colors.

Note that I also first collect all the style properties to remove and elements to adjust up front
first, (prior to mutating any DOM state), to ensure that style invalidation doesn't trigger layout
or style recalc in the middle of iterating through the DOM.

* Source/WebCore/editing/ReplaceSelectionCommand.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
(TEST(PasteHTML, PasteDarkTextOnWhiteBackgroundIntoDarkModeEditor)):

Add an API test to exercise the change by copying light text in a white webpage and pasting into a
dark mode editable web view where white backgrounds are punched out (simulating Mail compose). The
resulting text (and caret) color should be white, instead of dark.

Canonical link: https://commits.webkit.org/305399@main
https://bugs.webkit.org/show_bug.cgi?id=305177

Reviewed by Justin Michaud.

This patch adds `getConstructDataInline`. Please see more details for
https://commits.webkit.org/301595@main.

* Source/JavaScriptCore/bytecode/RepatchInlines.h:
(JSC::handleHostCall):
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall):
* Source/JavaScriptCore/runtime/ConstructData.cpp:
(JSC::construct):
* Source/JavaScriptCore/runtime/JSBoundFunction.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/JSFunction.cpp:
(JSC::JSFunction::getConstructData):
* Source/JavaScriptCore/runtime/JSFunction.h:
* Source/JavaScriptCore/runtime/JSFunctionInlines.h:
(JSC::JSFunction::getConstructDataInline):
* Source/JavaScriptCore/runtime/JSObjectInlines.h:
(JSC::getConstructDataInline):
* Source/JavaScriptCore/runtime/ProxyObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/ReflectObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/RegExpPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Canonical link: https://commits.webkit.org/305403@main
…rames doesn’t load

https://bugs.webkit.org/show_bug.cgi?id=251595
rdar://148373033

Reviewed by Simon Fraser.

The issue was caused by isProhibitedSelfReference incorrectly determining about:blank inside
another about:blank as self referencing, which is not the case.

Test: fast/frames/nested-about-blanks.html

* LayoutTests/fast/frames/nested-about-blanks-expected.html: Added.
* LayoutTests/fast/frames/nested-about-blanks.html: Added.
* Source/WebCore/html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::isProhibitedSelfReference const):

Canonical link: https://commits.webkit.org/305404@main
https://bugs.webkit.org/show_bug.cgi?id=305061

Reviewed by Yusuke Suzuki.

According to the spec, the overflow option should be read after the fields
when calling `from` on a property bag. This change improves the result for
the test test/built-ins/Temporal/PlainTime/from/order-of-operations.js (it
now fails because ZonedDateTime is not implemented).

* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/runtime/TemporalObject.cpp:
(JSC::doubleNumberOption):
* Source/JavaScriptCore/runtime/TemporalPlainDatePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/TemporalPlainDateTimePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:
(JSC::TemporalPlainTime::from):
* Source/JavaScriptCore/runtime/TemporalPlainTime.h:
* Source/JavaScriptCore/runtime/TemporalPlainTimeConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/TemporalPlainTimePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Canonical link: https://commits.webkit.org/305405@main
…PlayingInfo' overrides a member function but is not marked 'override'

https://bugs.webkit.org/show_bug.cgi?id=305170

Unreviewed build fix for GTK&WPE Clang builds.

> MediaSessionManagerGLib.h:70:10: error: 'updateNowPlayingInfo' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]

Added `final`.

* Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.h:

Canonical link: https://commits.webkit.org/305406@main
https://bugs.webkit.org/show_bug.cgi?id=305084
rdar://167728315

Reviewed by Keith Miller.

This patch simplifies callMicrotask significantly to make it fast.
This is a function which is used for each microtask's JS function
invocation, thus this function is extremely hot. In this patch,

1. We introduce vmEntryToJavaScriptWith4Arguments up to 7. And
   vmEntryToJavaScriptMicrotaskWith0Arguments up to 6. This simplifies
   handling of arguments, avoding ProtoCallFrame and makes set up
   significantly efficient.
2. Some checks are hoisted from callMicrotask to MicrotaskQueue as it is
   repeatedly invoked while the condition should not change.
3. VMEntryScope is not necessary since MicrotaskQueue's already setting
   up.
4. vm.didEnterVM is set after MicrotaskQueue finishes.

* Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
* Source/JavaScriptCore/interpreter/CachedCall.cpp:
(JSC::CachedCall::CachedCall):
* Source/JavaScriptCore/interpreter/CachedCallInlines.h:
(JSC::CachedCall::callWithArguments):
* Source/JavaScriptCore/interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCallImpl):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::executeEval):
(JSC::Interpreter::executeModuleProgram):
(JSC::Interpreter::checkVMEntryPermission): Deleted.
* Source/JavaScriptCore/interpreter/Interpreter.h:
* Source/JavaScriptCore/interpreter/InterpreterInlines.h:
(JSC::Interpreter::tryCallWithArguments):
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_check_vm_entry_permission):
* Source/JavaScriptCore/llint/LLIntThunks.cpp:
* Source/JavaScriptCore/llint/LLIntThunks.h:
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
* Source/JavaScriptCore/offlineasm/arm64.rb:
* Source/JavaScriptCore/offlineasm/registers.rb:
* Source/JavaScriptCore/runtime/CallData.cpp:
(JSC::callMicrotask): Deleted.
* Source/JavaScriptCore/runtime/CallData.h:
* Source/JavaScriptCore/runtime/JSMicrotask.cpp:
(JSC::callMicrotask):
(JSC::promiseResolveThenableJob):
(JSC::asyncFromSyncIteratorContinueOrDone):
(JSC::asyncGeneratorBodyCall):
(JSC::promiseFinallyReactionJob):
(JSC::runInternalMicrotask):
* Source/JavaScriptCore/runtime/MicrotaskQueueInlines.h:
(JSC::MicrotaskQueue::performMicrotaskCheckpoint):
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::checkVMEntryPermission):
* Source/JavaScriptCore/runtime/VM.h:

Canonical link: https://commits.webkit.org/305407@main
https://bugs.webkit.org/show_bug.cgi?id=305184
rdar://166885849

Reviewed by Jer Noble.

The issue was happening because the media was not populating content
updates into the caption layer. For this to happen, the text track
representation needs to be setup, similarly to fullscreen and
picture-in-picture experiences.

* Source/WebKit/Platform/ios/VideoPresentationInterfaceLMK.mm:
(WebKit::VideoPresentationInterfaceLMK::exitExternalPlayback):
(WebKit::VideoPresentationInterfaceLMK::didSetVideoReceiverEndpoint):

Canonical link: https://commits.webkit.org/305408@main
https://bugs.webkit.org/show_bug.cgi?id=305254
rdar://167899413

Reviewed by Alan Baradlay.

It is unnecessarily large and multiple copies of it end up in stack.
Reducing it 10 -> 1 is perf neutral.

* Source/WebCore/layout/formattingContexts/inline/InlineLine.h:

Canonical link: https://commits.webkit.org/305409@main
https://bugs.webkit.org/show_bug.cgi?id=304918

Reviewed by Yusuke Suzuki.

The hand-rolled parser in BuiltinExecutables.cpp incorrectly calculated
functionKeywordStart for async functions. It was using:

    int functionKeywordStart = strlen("(") + asyncOffset;

For async functions, asyncOffset is 6 (strlen("async ")), so this
returned 7, pointing to the "function" keyword. However, the JSC parser
sets functionStart to 1, pointing to the "async" keyword.

This patch fixes the calculation to always use strlen("(") = 1, which
matches the JSC parser behavior.

Additionally, this patch:
- Adds m_functionStart comparison to FunctionMetadataNode::operator==
  so that mismatches are properly detected during validation.
- Extends $vm.createBuiltin to accept an optional visibility argument
  ("public", "private", "privateRecursive") for testing purposes.

* JSTests/stress/async-builtin-function-keyword-start-metadata.js: Added.
* Source/JavaScriptCore/builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
* Source/JavaScriptCore/parser/Nodes.cpp:
(JSC::FunctionMetadataNode::operator== const):
* Source/JavaScriptCore/tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Canonical link: https://commits.webkit.org/305410@main
https://bugs.webkit.org/show_bug.cgi?id=304970

Reviewed by Yusuke Suzuki.

This patch changes to look up character class table in Yarr interpreter as well as Yarr JIT.

The following bench results was measured with `useRegExpJIT=0`:

                                       TipOfTree                  Patched

yarr-interpreter-table-lookup      112.9213+-1.0854     ^    105.3390+-4.3467        ^ definitely 1.0720x faster

Test: JSTests/microbenchmarks/yarr-interpreter-table-lookup.js

* JSTests/microbenchmarks/yarr-interpreter-table-lookup.js: Added.
(benchWordChar):
(benchNonWordChar):
(benchSpaces):
(benchNonSpaces):
* JSTests/stress/yarr-interpreter-table-lookup.js: Added.
(testWordChar):
(testNonWordChar):
(testSpaces):
(testNonSpaces):
(testDigit):
(testNonDigit):
(testTableBoundary):
(testUnicodeSpaces):
* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::testCharacterClass):
* Source/JavaScriptCore/yarr/YarrPattern.h:
* Source/JavaScriptCore/yarr/create_regex_tables:

Canonical link: https://commits.webkit.org/305411@main
https://bugs.webkit.org/show_bug.cgi?id=303687

Reviewed by Nikolas Zimmermann.

Apply the PQ tone-mapping shader only on platforms where highp fragment shader precision is
supported. The shader was triggering banding artifacts on platforms where only mediump is
available.

* Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::STRINGIFY):
(WebCore::TextureMapperShaderProgram::create):

Canonical link: https://commits.webkit.org/305412@main
rdar://105812206

Broke the build.

Reverted change:

    [Xcode] Set MACOSX_DEPLOYMENT_TARGET to match the system version
    https://bugs.webkit.org/show_bug.cgi?id=252783
    rdar://105812206
    305389@main (8fec86d)

Canonical link: https://commits.webkit.org/305413@main
https://bugs.webkit.org/show_bug.cgi?id=305204
rdar://167557269

Reviewed by Richard Robinson.

Swift attempts to test for the presence of copy constructors on C++ types to
determine whether they're copyable. This does not work for some C++ templated
types and causes swift compilation to give errors like this:

wtf/Expected.h:254:11: error: call to implicitly-deleted copy constructor of
'Variant<value_type, error_type>' (aka
'variant<WebKit::JavaScriptEvaluationResult,
std::optional<WebCore::ExceptionDetails>>')

These errors start to occur as soon as any Swift code is included in WebKit
which refers to these C++ headers. This includes upcoming Swift CoreIPC
handlers.

In future Swift versions we can work around this by using the
SWIFT_COPYABLE_IF annotation but that isn't yet supported by the compiler
versions we're using in WebKit. For now, simply exclude the relevant
copy constructor for this type, and another type which depends upon it.

Canonical link: https://commits.webkit.org/305414@main
…gArray()

<https://bugs.webkit.org/show_bug.cgi?id=305240#>
<rdar://167880352>

Reviewed by Geoffrey Garen.

The code was storing the result of `utf8().data()` in a local variable
and using it later on. This was a use-after-free since the pointer
returned by `data()` pointed to memory owned by the temporary CString
returned by `utf8()`.

* Tools/WebKitTestRunner/TestController.cpp:

Canonical link: https://commits.webkit.org/305415@main
<https://bugs.webkit.org/show_bug.cgi?id=305244>
<rdar://167884353>

Reviewed by Geoffrey Garen.

No test because no change in behavior.

* Source/JavaScriptCore/yarr/YarrParser.h:
(JSC::Yarr::Parser::Parser):
- Change `pattern` argument from WTF::StringView to
  std::span<const CharType> for consistency with the Parser class.  This
  has the additional effect of fixing a -Wdangling-field warning caused
  by calling StringView.span<CharType>().data().
(JSC::Yarr::parse):
- Call StringView.span8() or span16() depending on the CharType used for
  JSC::Yarr::Parser.

Canonical link: https://commits.webkit.org/305416@main
https://bugs.webkit.org/show_bug.cgi?id=305275
rdar://167916253

* JSTests/wasm/stress/bbq-parallel-move.js:
(let.wat.module.func.log_value.import.string_appeared_here.string_appeared_here.param.i32.func.export.string_appeared_here.param.p0.i32.param.p1.i32.param.p2.i32.local.p1.local.p1.local.p1.local.p1.local.p1.local.p1.local.p1.local.p1.local.p1.result.i32.local.p0.then.local.p2.local.p0.i32.const.0.else.i32.const.0.local.p2.call.f.func.f.param.i32.param.i32.param.i32.param.i32.param.i32.param.i32.param.i32.param.i32.param.i32.param.i32.param.pl.i32.call.log_value.local.pl.async test):

Canonical link: https://commits.webkit.org/305417@main
…heMac

https://bugs.webkit.org/show_bug.cgi?id=305266
rdar://167906651

Reviewed by Chris Fleizach.

ENABLE(ACCESSIBILITY_ISOLATED_TREE) is, always will be, true for macOS.

* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postPlatformAnnouncementNotification):
(WebCore::AXObjectCache::postPlatformARIANotifyNotification):
(WebCore::AXObjectCache::createIsolatedObjectIfNeeded):
(WebCore::AXObjectCache::postTextSelectionChangePlatformNotification):
(WebCore::AXObjectCache::postUserInfoForChanges):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::isAXThreadInitialized):
(WebCore::AXObjectCache::shouldSpellCheck):
(WebCore::AXObjectCache::platformSelectedTextRangeDebounceInterval const):

Canonical link: https://commits.webkit.org/305418@main
https://bugs.webkit.org/show_bug.cgi?id=305274
rdar://167913946

Reviewed by Darin Adler.

This is a follow-up to 304354@main. This modernizes and standardizes the codebase.

* Source/JavaScriptCore/API/JSRetainPtr.h:
* Source/JavaScriptCore/assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::CachedTempRegister::value):
* Source/JavaScriptCore/bytecode/ArrayAllocationProfile.h:
(JSC::ArrayAllocationProfile::IndexingTypeAndVectorLength::withIndexingType):
* Source/JavaScriptCore/heap/Weak.h:
* Source/JavaScriptCore/jit/RegisterSet.h:
* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.cpp:
(JSC::decodeHexImpl):
(JSC::decodeHex):
* Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h:
* Source/JavaScriptCore/runtime/JSObject.h:
(JSC::JSObject::ensureLength):
* Source/JavaScriptCore/runtime/PropertyTable.h:
(JSC::PropertyTable::add):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableSet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableInit):
(JSC::Wasm::BBQJITImpl::BBQJIT::addElemDrop):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableSize):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableGrow):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableFill):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableCopy):
(JSC::Wasm::BBQJITImpl::BBQJIT::getLocal):
(JSC::Wasm::BBQJITImpl::BBQJIT::setLocal):
(JSC::Wasm::BBQJITImpl::BBQJIT::teeLocal):
(JSC::Wasm::BBQJITImpl::BBQJIT::addGrowMemory):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCurrentMemory):
(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryFill):
(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryCopy):
(JSC::Wasm::BBQJITImpl::BBQJIT::addMemoryInit):
(JSC::Wasm::BBQJITImpl::BBQJIT::addDataDrop):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicLoad):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicStore):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicBinaryRMW):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicCompareExchange):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicWait):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicNotify):
(JSC::Wasm::BBQJITImpl::BBQJIT::atomicFence):
(JSC::Wasm::BBQJITImpl::BBQJIT::truncTrapping):
(JSC::Wasm::BBQJITImpl::BBQJIT::truncSaturated):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewData):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewElem):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayCopy):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayInitElem):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayInitData):
(JSC::Wasm::BBQJITImpl::BBQJIT::addAnyConvertExtern):
(JSC::Wasm::BBQJITImpl::BBQJIT::addExternConvertAny):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSelect):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Add):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Add):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Add):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Sub):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Sub):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Sub):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32DivS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64DivS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32DivU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64DivU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32RemS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64RemS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32RemU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64RemU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Div):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Div):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Min):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Min):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Max):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Max):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32And):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Xor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Or):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Shl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32ShrS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32ShrU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Rotl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Rotr):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Clz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Ctz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Eq):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Eq):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Ne):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Ne):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32LtS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64LtS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32LeS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64LeS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32GtS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64GtS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32GeS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64GeS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32LtU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64LtU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32LeU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64LeU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32GtU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64GtU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32GeU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64GeU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Eq):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Eq):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Ne):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Ne):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Lt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Lt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Le):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Le):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Gt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Gt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Ge):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Ge):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Extend16S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Eqz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32Popcnt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Popcnt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32ReinterpretF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ReinterpretI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32DemoteF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64PromoteF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Copysign):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertSI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertSI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Copysign):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Abs):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Abs):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Sqrt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Sqrt):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Neg):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Neg):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32TruncSF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32TruncSF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32TruncUF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI32TruncUF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64TruncSF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64TruncSF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64TruncUF32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64TruncUF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefEq):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefFunc):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBlock):
(JSC::Wasm::BBQJITImpl::BBQJIT::addLoop):
(JSC::Wasm::BBQJITImpl::BBQJIT::addIf):
(JSC::Wasm::BBQJITImpl::BBQJIT::addElse):
(JSC::Wasm::BBQJITImpl::BBQJIT::addElseToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTry):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTryTable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatch):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatchToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatchAll):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCatchAllToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addDelegate):
(JSC::Wasm::BBQJITImpl::BBQJIT::addDelegateToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addThrow):
(JSC::Wasm::BBQJITImpl::BBQJIT::addReturn):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBranch):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSwitch):
(JSC::Wasm::BBQJITImpl::BBQJIT::endBlock):
(JSC::Wasm::BBQJITImpl::BBQJIT::addEndToUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::endTopLevel):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCall):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallIndirect):
(JSC::Wasm::BBQJITImpl::BBQJIT::addUnreachable):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCrash):
(JSC::Wasm::BBQJITImpl::BBQJIT::addFusedIfCompare):
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:
* Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::getGlobal):
(JSC::Wasm::BBQJITImpl::BBQJIT::setGlobal):
(JSC::Wasm::BBQJITImpl::BBQJIT::load):
(JSC::Wasm::BBQJITImpl::BBQJIT::store):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAtomicLoadOp):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAtomicCompareExchange):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefI31):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNew):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewFixed):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewDefault):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArraySet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayLen):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayFill):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNewDefault):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNew):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructSet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefCast):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefTest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Add):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Sub):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64And):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Xor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Or):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Shl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ShrS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ShrU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Rotl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Rotr):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Clz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Ctz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend8S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend16S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend32S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ExtendSI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ExtendUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Eqz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ReinterpretF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ReinterpretI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertSI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertUI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertSI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertUI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Floor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Floor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Ceil):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Ceil):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Nearest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Nearest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Trunc):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Trunc):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefIsNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefAsNonNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addThrowRef):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRethrow):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBranchNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBranchCast):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoad):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDStore):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDSplat):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDShuffle):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDShift):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDExtmul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadSplat):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDStoreLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadExtend):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadPad):
(JSC::Wasm::BBQJITImpl::BBQJIT::addExtractLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addReplaceLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDI_V):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDV_V):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDBitwiseSelect):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDRelOp):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDV_VV):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDRelaxedFMA):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallRef):
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::addTableGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::getGlobal):
(JSC::Wasm::BBQJITImpl::BBQJIT::setGlobal):
(JSC::Wasm::BBQJITImpl::BBQJIT::load):
(JSC::Wasm::BBQJITImpl::BBQJIT::store):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAtomicLoadOp):
(JSC::Wasm::BBQJITImpl::BBQJIT::emitAtomicCompareExchange):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefI31):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNew):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewFixed):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayNewDefault):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArraySet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayLen):
(JSC::Wasm::BBQJITImpl::BBQJIT::addArrayFill):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNewDefault):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructNew):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructGet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addStructSet):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefCast):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefTest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Add):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Sub):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Mul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64And):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Xor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Or):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Shl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ShrS):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ShrU):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Rotl):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Rotr):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Clz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Ctz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend8S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend16S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Extend32S):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ExtendSI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ExtendUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64Eqz):
(JSC::Wasm::BBQJITImpl::BBQJIT::addI64ReinterpretF64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ReinterpretI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertSI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertUI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertUI32):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertSI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertUI64):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Floor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Floor):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Ceil):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Ceil):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Nearest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Nearest):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF32Trunc):
(JSC::Wasm::BBQJITImpl::BBQJIT::addF64Trunc):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefIsNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRefAsNonNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addThrowRef):
(JSC::Wasm::BBQJITImpl::BBQJIT::addRethrow):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBranchNull):
(JSC::Wasm::BBQJITImpl::BBQJIT::addBranchCast):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoad):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDStore):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDSplat):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDShuffle):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDShift):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDExtmul):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadSplat):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDStoreLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadExtend):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDLoadPad):
(JSC::Wasm::BBQJITImpl::BBQJIT::addConstant):
(JSC::Wasm::BBQJITImpl::BBQJIT::addExtractLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addReplaceLane):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDI_V):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDV_V):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDBitwiseSelect):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDRelOp):
(JSC::Wasm::BBQJITImpl::BBQJIT::fixupOutOfBoundsIndicesForSwizzle):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDV_VV):
(JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDRelaxedFMA):
(JSC::Wasm::BBQJITImpl::BBQJIT::addCallRef):
* Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
(JSC::Wasm::ConstExprGenerator::fail const):
(JSC::Wasm::ConstExprGenerator::getGlobal):
(JSC::Wasm::ConstExprGenerator::addRefI31):
(JSC::Wasm::ConstExprGenerator::addArrayNew):
(JSC::Wasm::ConstExprGenerator::addArrayNewDefault):
(JSC::Wasm::ConstExprGenerator::addArrayNewFixed):
(JSC::Wasm::ConstExprGenerator::addStructNewDefault):
(JSC::Wasm::ConstExprGenerator::addStructNew):
(JSC::Wasm::ConstExprGenerator::addAnyConvertExtern):
(JSC::Wasm::ConstExprGenerator::addExternConvertAny):
(JSC::Wasm::ConstExprGenerator::addI32Add):
(JSC::Wasm::ConstExprGenerator::addI64Add):
(JSC::Wasm::ConstExprGenerator::addI32Sub):
(JSC::Wasm::ConstExprGenerator::addI64Sub):
(JSC::Wasm::ConstExprGenerator::addI32Mul):
(JSC::Wasm::ConstExprGenerator::addI64Mul):
(JSC::Wasm::ConstExprGenerator::addRefFunc):
(JSC::Wasm::ConstExprGenerator::endBlock):
(JSC::Wasm::ConstExprGenerator::endTopLevel):
(JSC::Wasm::ConstExprGenerator::addConstant):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::simd):
(JSC::Wasm::FunctionParser::validationFail const):
(JSC::Wasm::FunctionParser::validationFailHelper const):
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::fail const):
(JSC::Wasm::IPIntGenerator::addFusedBranchCompare):
(JSC::Wasm::IPIntGenerator::addFusedIfCompare):
(JSC::Wasm::IPIntGenerator::addDrop):
(JSC::Wasm::IPIntGenerator::addSIMDLoad):
(JSC::Wasm::IPIntGenerator::addSIMDStore):
(JSC::Wasm::IPIntGenerator::addSIMDSplat):
(JSC::Wasm::IPIntGenerator::addSIMDShuffle):
(JSC::Wasm::IPIntGenerator::addSIMDShift):
(JSC::Wasm::IPIntGenerator::addSIMDExtmul):
(JSC::Wasm::IPIntGenerator::addSIMDLoadSplat):
(JSC::Wasm::IPIntGenerator::addSIMDLoadLane):
(JSC::Wasm::IPIntGenerator::addSIMDStoreLane):
(JSC::Wasm::IPIntGenerator::addSIMDLoadExtend):
(JSC::Wasm::IPIntGenerator::addSIMDLoadPad):
(JSC::Wasm::IPIntGenerator::addExtractLane):
(JSC::Wasm::IPIntGenerator::addReplaceLane):
(JSC::Wasm::IPIntGenerator::addSIMDI_V):
(JSC::Wasm::IPIntGenerator::addSIMDV_V):
(JSC::Wasm::IPIntGenerator::addSIMDBitwiseSelect):
(JSC::Wasm::IPIntGenerator::addSIMDRelOp):
(JSC::Wasm::IPIntGenerator::addSIMDV_VV):
(JSC::Wasm::IPIntGenerator::addSIMDRelaxedFMA):
(JSC::Wasm::IPIntGenerator::addRefIsNull):
(JSC::Wasm::IPIntGenerator::addRefFunc):
(JSC::Wasm::IPIntGenerator::addRefAsNonNull):
(JSC::Wasm::IPIntGenerator::addRefEq):
(JSC::Wasm::IPIntGenerator::addTableGet):
(JSC::Wasm::IPIntGenerator::addTableSet):
(JSC::Wasm::IPIntGenerator::addTableInit):
(JSC::Wasm::IPIntGenerator::addElemDrop):
(JSC::Wasm::IPIntGenerator::addTableSize):
(JSC::Wasm::IPIntGenerator::addTableGrow):
(JSC::Wasm::IPIntGenerator::addTableFill):
(JSC::Wasm::IPIntGenerator::addTableCopy):
(JSC::Wasm::IPIntGenerator::addArguments):
(JSC::Wasm::IPIntGenerator::addLocal):
(JSC::Wasm::IPIntGenerator::getLocal):
(JSC::Wasm::IPIntGenerator::setLocal):
(JSC::Wasm::IPIntGenerator::teeLocal):
(JSC::Wasm::IPIntGenerator::getGlobal):
(JSC::Wasm::IPIntGenerator::setGlobal):
(JSC::Wasm::IPIntGenerator::load):
(JSC::Wasm::IPIntGenerator::store):
(JSC::Wasm::IPIntGenerator::addGrowMemory):
(JSC::Wasm::IPIntGenerator::addCurrentMemory):
(JSC::Wasm::IPIntGenerator::addMemoryFill):
(JSC::Wasm::IPIntGenerator::addMemoryCopy):
(JSC::Wasm::IPIntGenerator::addMemoryInit):
(JSC::Wasm::IPIntGenerator::addDataDrop):
(JSC::Wasm::IPIntGenerator::atomicLoad):
(JSC::Wasm::IPIntGenerator::atomicStore):
(JSC::Wasm::IPIntGenerator::atomicBinaryRMW):
(JSC::Wasm::IPIntGenerator::atomicCompareExchange):
(JSC::Wasm::IPIntGenerator::atomicWait):
(JSC::Wasm::IPIntGenerator::atomicNotify):
(JSC::Wasm::IPIntGenerator::atomicFence):
(JSC::Wasm::IPIntGenerator::addRefI31):
(JSC::Wasm::IPIntGenerator::addI31GetS):
(JSC::Wasm::IPIntGenerator::addI31GetU):
(JSC::Wasm::IPIntGenerator::addArrayNew):
(JSC::Wasm::IPIntGenerator::addArrayNewData):
(JSC::Wasm::IPIntGenerator::addArrayNewElem):
(JSC::Wasm::IPIntGenerator::addArrayNewFixed):
(JSC::Wasm::IPIntGenerator::addArrayNewDefault):
(JSC::Wasm::IPIntGenerator::addArrayGet):
(JSC::Wasm::IPIntGenerator::addArraySet):
(JSC::Wasm::IPIntGenerator::addArrayLen):
(JSC::Wasm::IPIntGenerator::addArrayFill):
(JSC::Wasm::IPIntGenerator::addArrayCopy):
(JSC::Wasm::IPIntGenerator::addArrayInitElem):
(JSC::Wasm::IPIntGenerator::addArrayInitData):
(JSC::Wasm::IPIntGenerator::addStructNew):
(JSC::Wasm::IPIntGenerator::addStructNewDefault):
(JSC::Wasm::IPIntGenerator::addStructGet):
(JSC::Wasm::IPIntGenerator::addStructSet):
(JSC::Wasm::IPIntGenerator::addRefTest):
(JSC::Wasm::IPIntGenerator::addRefCast):
(JSC::Wasm::IPIntGenerator::addAnyConvertExtern):
(JSC::Wasm::IPIntGenerator::addExternConvertAny):
(JSC::Wasm::IPIntGenerator::addI32Add):
(JSC::Wasm::IPIntGenerator::addI64Add):
(JSC::Wasm::IPIntGenerator::addI32Sub):
(JSC::Wasm::IPIntGenerator::addI64Sub):
(JSC::Wasm::IPIntGenerator::addI32Mul):
(JSC::Wasm::IPIntGenerator::addI64Mul):
(JSC::Wasm::IPIntGenerator::addI32DivS):
(JSC::Wasm::IPIntGenerator::addI32DivU):
(JSC::Wasm::IPIntGenerator::addI64DivS):
(JSC::Wasm::IPIntGenerator::addI64DivU):
(JSC::Wasm::IPIntGenerator::addI32RemS):
(JSC::Wasm::IPIntGenerator::addI32RemU):
(JSC::Wasm::IPIntGenerator::addI64RemS):
(JSC::Wasm::IPIntGenerator::addI64RemU):
(JSC::Wasm::IPIntGenerator::addI32And):
(JSC::Wasm::IPIntGenerator::addI64And):
(JSC::Wasm::IPIntGenerator::addI32Xor):
(JSC::Wasm::IPIntGenerator::addI64Xor):
(JSC::Wasm::IPIntGenerator::addI32Or):
(JSC::Wasm::IPIntGenerator::addI64Or):
(JSC::Wasm::IPIntGenerator::addI32Shl):
(JSC::Wasm::IPIntGenerator::addI32ShrU):
(JSC::Wasm::IPIntGenerator::addI32ShrS):
(JSC::Wasm::IPIntGenerator::addI64Shl):
(JSC::Wasm::IPIntGenerator::addI64ShrU):
(JSC::Wasm::IPIntGenerator::addI64ShrS):
(JSC::Wasm::IPIntGenerator::addI32Rotl):
(JSC::Wasm::IPIntGenerator::addI64Rotl):
(JSC::Wasm::IPIntGenerator::addI32Rotr):
(JSC::Wasm::IPIntGenerator::addI64Rotr):
(JSC::Wasm::IPIntGenerator::addI32Popcnt):
(JSC::Wasm::IPIntGenerator::addI64Popcnt):
(JSC::Wasm::IPIntGenerator::addI32Clz):
(JSC::Wasm::IPIntGenerator::addI64Clz):
(JSC::Wasm::IPIntGenerator::addI32Ctz):
(JSC::Wasm::IPIntGenerator::addI64Ctz):
(JSC::Wasm::IPIntGenerator::addF32Add):
(JSC::Wasm::IPIntGenerator::addF64Add):
(JSC::Wasm::IPIntGenerator::addF32Sub):
(JSC::Wasm::IPIntGenerator::addF64Sub):
(JSC::Wasm::IPIntGenerator::addF32Mul):
(JSC::Wasm::IPIntGenerator::addF64Mul):
(JSC::Wasm::IPIntGenerator::addF32Div):
(JSC::Wasm::IPIntGenerator::addF64Div):
(JSC::Wasm::IPIntGenerator::addF32Min):
(JSC::Wasm::IPIntGenerator::addF32Max):
(JSC::Wasm::IPIntGenerator::addF64Min):
(JSC::Wasm::IPIntGenerator::addF64Max):
(JSC::Wasm::IPIntGenerator::addF32Nearest):
(JSC::Wasm::IPIntGenerator::addF64Nearest):
(JSC::Wasm::IPIntGenerator::addF32Floor):
(JSC::Wasm::IPIntGenerator::addF64Floor):
(JSC::Wasm::IPIntGenerator::addF32Ceil):
(JSC::Wasm::IPIntGenerator::addF64Ceil):
(JSC::Wasm::IPIntGenerator::addF32Copysign):
(JSC::Wasm::IPIntGenerator::addF64Copysign):
(JSC::Wasm::IPIntGenerator::addF32Sqrt):
(JSC::Wasm::IPIntGenerator::addF64Sqrt):
(JSC::Wasm::IPIntGenerator::addF32Neg):
(JSC::Wasm::IPIntGenerator::addF64Neg):
(JSC::Wasm::IPIntGenerator::addF32Abs):
(JSC::Wasm::IPIntGenerator::addF64Abs):
(JSC::Wasm::IPIntGenerator::addI32Eq):
(JSC::Wasm::IPIntGenerator::addI32Ne):
(JSC::Wasm::IPIntGenerator::addI32LtS):
(JSC::Wasm::IPIntGenerator::addI32LtU):
(JSC::Wasm::IPIntGenerator::addI32LeS):
(JSC::Wasm::IPIntGenerator::addI32LeU):
(JSC::Wasm::IPIntGenerator::addI32GtS):
(JSC::Wasm::IPIntGenerator::addI32GtU):
(JSC::Wasm::IPIntGenerator::addI32GeU):
(JSC::Wasm::IPIntGenerator::addI32GeS):
(JSC::Wasm::IPIntGenerator::addI32Eqz):
(JSC::Wasm::IPIntGenerator::addI64Eq):
(JSC::Wasm::IPIntGenerator::addI64Ne):
(JSC::Wasm::IPIntGenerator::addI64GtS):
(JSC::Wasm::IPIntGenerator::addI64GtU):
(JSC::Wasm::IPIntGenerator::addI64GeS):
(JSC::Wasm::IPIntGenerator::addI64GeU):
(JSC::Wasm::IPIntGenerator::addI64LtS):
(JSC::Wasm::IPIntGenerator::addI64LtU):
(JSC::Wasm::IPIntGenerator::addI64LeS):
(JSC::Wasm::IPIntGenerator::addI64LeU):
(JSC::Wasm::IPIntGenerator::addI64Eqz):
(JSC::Wasm::IPIntGenerator::addF32Eq):
(JSC::Wasm::IPIntGenerator::addF32Ne):
(JSC::Wasm::IPIntGenerator::addF32Lt):
(JSC::Wasm::IPIntGenerator::addF32Le):
(JSC::Wasm::IPIntGenerator::addF32Gt):
(JSC::Wasm::IPIntGenerator::addF32Ge):
(JSC::Wasm::IPIntGenerator::addF64Eq):
(JSC::Wasm::IPIntGenerator::addF64Ne):
(JSC::Wasm::IPIntGenerator::addF64Lt):
(JSC::Wasm::IPIntGenerator::addF64Le):
(JSC::Wasm::IPIntGenerator::addF64Gt):
(JSC::Wasm::IPIntGenerator::addF64Ge):
(JSC::Wasm::IPIntGenerator::addI64ExtendSI32):
(JSC::Wasm::IPIntGenerator::addI64ExtendUI32):
(JSC::Wasm::IPIntGenerator::addI32Extend8S):
(JSC::Wasm::IPIntGenerator::addI32Extend16S):
(JSC::Wasm::IPIntGenerator::addI64Extend8S):
(JSC::Wasm::IPIntGenerator::addI64Extend16S):
(JSC::Wasm::IPIntGenerator::addI64Extend32S):
(JSC::Wasm::IPIntGenerator::addF64Trunc):
(JSC::Wasm::IPIntGenerator::addF32Trunc):
(JSC::Wasm::IPIntGenerator::addI32TruncSF64):
(JSC::Wasm::IPIntGenerator::addI32TruncSF32):
(JSC::Wasm::IPIntGenerator::addI32TruncUF64):
(JSC::Wasm::IPIntGenerator::addI32TruncUF32):
(JSC::Wasm::IPIntGenerator::addI64TruncSF64):
(JSC::Wasm::IPIntGenerator::addI64TruncSF32):
(JSC::Wasm::IPIntGenerator::addI64TruncUF64):
(JSC::Wasm::IPIntGenerator::addI64TruncUF32):
(JSC::Wasm::IPIntGenerator::truncSaturated):
(JSC::Wasm::IPIntGenerator::addI32WrapI64):
(JSC::Wasm::IPIntGenerator::addF32DemoteF64):
(JSC::Wasm::IPIntGenerator::addF64PromoteF32):
(JSC::Wasm::IPIntGenerator::addF32ReinterpretI32):
(JSC::Wasm::IPIntGenerator::addI32ReinterpretF32):
(JSC::Wasm::IPIntGenerator::addF64ReinterpretI64):
(JSC::Wasm::IPIntGenerator::addI64ReinterpretF64):
(JSC::Wasm::IPIntGenerator::addF32ConvertSI32):
(JSC::Wasm::IPIntGenerator::addF32ConvertUI32):
(JSC::Wasm::IPIntGenerator::addF32ConvertSI64):
(JSC::Wasm::IPIntGenerator::addF32ConvertUI64):
(JSC::Wasm::IPIntGenerator::addF64ConvertSI32):
(JSC::Wasm::IPIntGenerator::addF64ConvertUI32):
(JSC::Wasm::IPIntGenerator::addF64ConvertSI64):
(JSC::Wasm::IPIntGenerator::addF64ConvertUI64):
(JSC::Wasm::IPIntGenerator::addTopLevel):
(JSC::Wasm::IPIntGenerator::addSelect):
(JSC::Wasm::IPIntGenerator::addBlock):
(JSC::Wasm::IPIntGenerator::addLoop):
(JSC::Wasm::IPIntGenerator::addIf):
(JSC::Wasm::IPIntGenerator::addElse):
(JSC::Wasm::IPIntGenerator::addElseToUnreachable):
(JSC::Wasm::IPIntGenerator::addTry):
(JSC::Wasm::IPIntGenerator::addTryTable):
(JSC::Wasm::IPIntGenerator::addCatch):
(JSC::Wasm::IPIntGenerator::addCatchToUnreachable):
(JSC::Wasm::IPIntGenerator::addCatchAll):
(JSC::Wasm::IPIntGenerator::addCatchAllToUnreachable):
(JSC::Wasm::IPIntGenerator::addDelegate):
(JSC::Wasm::IPIntGenerator::addDelegateToUnreachable):
(JSC::Wasm::IPIntGenerator::addThrow):
(JSC::Wasm::IPIntGenerator::addRethrow):
(JSC::Wasm::IPIntGenerator::addThrowRef):
(JSC::Wasm::IPIntGenerator::addReturn):
(JSC::Wasm::IPIntGenerator::addBranch):
(JSC::Wasm::IPIntGenerator::addBranchNull):
(JSC::Wasm::IPIntGenerator::addBranchCast):
(JSC::Wasm::IPIntGenerator::addSwitch):
(JSC::Wasm::IPIntGenerator::endBlock):
(JSC::Wasm::IPIntGenerator::addEndToUnreachable):
(JSC::Wasm::IPIntGenerator::addCall):
(JSC::Wasm::IPIntGenerator::addCallIndirect):
(JSC::Wasm::IPIntGenerator::addCallRef):
(JSC::Wasm::IPIntGenerator::addUnreachable):
(JSC::Wasm::IPIntGenerator::addCrash):
* Source/JavaScriptCore/wasm/WasmNameSectionParser.h:
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::OMGIRGenerator::fail const):
(JSC::Wasm::OMGIRGenerator::addConstant):
(JSC::Wasm::OMGIRGenerator::addEndToUnreachable):
(JSC::Wasm::OMGIRGenerator::endTopLevel):
(JSC::Wasm::OMGIRGenerator::addFusedBranchCompare):
(JSC::Wasm::OMGIRGenerator::addFusedIfCompare):
(JSC::Wasm::OMGIRGenerator::emitStructSet):
(JSC::Wasm::OMGIRGenerator::addThrowRef):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp:
(JSC::Wasm::OMGIRGenerator::fail const):
(JSC::Wasm::OMGIRGenerator::addConstant):
(JSC::Wasm::OMGIRGenerator::addEndToUnreachable):
(JSC::Wasm::OMGIRGenerator::endTopLevel):
(JSC::Wasm::OMGIRGenerator::addFusedBranchCompare):
(JSC::Wasm::OMGIRGenerator::addFusedIfCompare):
(JSC::Wasm::OMGIRGenerator::emitStructSet):
(JSC::Wasm::OMGIRGenerator::addThrowRef):
* Source/JavaScriptCore/wasm/WasmParser.h:
(JSC::Wasm::ParserBase::fail const):
* Source/JavaScriptCore/wasm/WasmPlan.h:
(JSC::Wasm::Plan::failed const):
* Source/JavaScriptCore/wasm/WasmSectionParser.h:
* Source/JavaScriptCore/wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::fail):
* Source/JavaScriptCore/wasm/WasmStreamingParser.h:
* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h:
* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::emitDisjunction):
* Source/JavaScriptCore/yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):
* Source/WTF/wtf/AllocSpanMixin.h:
(WTF::AllocSpanMixin::leakSpan):
* Source/WTF/wtf/CheckedArithmetic.h:
* Source/WTF/wtf/Compiler.h:
* Source/WTF/wtf/CompletionHandler.h:
(WTF::CompletionHandler<Out):
* Source/WTF/wtf/FileSystem.h:
* Source/WTF/wtf/Function.h:
(WTF::Function<Out):
* Source/WTF/wtf/InlineWeakPtr.h:
* Source/WTF/wtf/InlineWeakRef.h:
* Source/WTF/wtf/LEBDecoder.h:
(WTF::LEBDecoder::decodeUInt):
(WTF::LEBDecoder::decodeInt):
(WTF::LEBDecoder::decodeUInt32):
(WTF::LEBDecoder::decodeUInt64):
(WTF::LEBDecoder::decodeInt32):
(WTF::LEBDecoder::decodeInt64):
* Source/WTF/wtf/MachSendRight.h:
* Source/WTF/wtf/MallocCommon.h:
* Source/WTF/wtf/MallocPtr.h:
(WTF::MallocPtr::leakPtr):
* Source/WTF/wtf/MappedFileData.h:
(WTF::FileSystemImpl::MappedFileData::leakHandle):
* Source/WTF/wtf/OSObjectPtr.h:
(WTF::OSObjectPtr::leakRef):
* Source/WTF/wtf/OptionSet.h:
(WTF::isValidOptionSet):
* Source/WTF/wtf/Ref.h:
(WTF::Ref::copyRef const):
(WTF::Ref::leakRef):
* Source/WTF/wtf/RefPtr.h:
(WTF::RefPtr::copyRef const):
* Source/WTF/wtf/RetainPtr.h:
* Source/WTF/wtf/Scope.h:
* Source/WTF/wtf/glib/GMallocString.h:
* Source/WTF/wtf/glib/GRefPtr.h:
(WTF::GRefPtr::leakRef):
(WTF::GRefPtr::ref):
* Source/WTF/wtf/glib/GThreadSafeWeakPtr.h:
(WTF::GThreadSafeWeakPtr::get):
* Source/WTF/wtf/persistence/PersistentDecoder.h:
* Source/WTF/wtf/text/AtomString.h:
(WTF::makeStringByReplacingAll):
* Source/WTF/wtf/text/MakeString.h:
(WTF::makeStringByInserting):
* Source/WTF/wtf/text/StringView.h:
(WTF::makeStringByReplacingAll):
(WTF::makeStringByReplacing):
(WTF::makeStringBySimplifyingNewLines):
* Source/WTF/wtf/text/WTFString.h:
(WTF::makeStringByReplacingAll):
* Source/WTF/wtf/unix/UnixFileDescriptor.h:
(WTF::UnixFileDescriptor::release):
* Source/WTF/wtf/win/GDIObject.h:
* Source/WTF/wtf/win/Win32Handle.h:
* Source/WebCore/Modules/WebGPU/GPUPresentationContext.h:
* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPresentationContext.h:
* Source/WebCore/Modules/indexeddb/IDBKeyData.h:
* Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:
(WebCore::decodeKey):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h:
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:
(WebCore::toRtpCodecCapability):
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h:
* Source/WebCore/css/CSSStyleProperties.h:
(WebCore::PropertySetCSSStyleProperties::willMutate):
* Source/WebCore/css/PropertySetCSSDescriptors.h:
* Source/WebCore/css/values/primitives/CSSUnevaluatedCalc.h:
* Source/WebCore/editing/ReplaceSelectionCommand.cpp:
(WebCore::collectStylesToRemove):
* Source/WebCore/fileapi/URLKeepingBlobAlive.h:
* Source/WebCore/inspector/InspectorResourceUtilities.cpp:
(Inspector::ResourceUtilities::decodeBuffer):
* Source/WebCore/loader/FetchOptions.h:
* Source/WebCore/page/OpportunisticTaskScheduler.h:
* Source/WebCore/page/csp/ContentSecurityPolicy.h:
* Source/WebCore/platform/KeyedCoding.h:
* Source/WebCore/platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::tryCreateAudioBufferList):
* Source/WebCore/platform/cf/KeyedDecoderCF.h:
* Source/WebCore/platform/encryptedmedia/CDMProxy.h:
(WebCore::KeyStoreBase::keyHandle const):
(WebCore::KeyStoreBase::allKeysAs const):
(WebCore::KeyStoreBase::convertToJSKeyStatusVector const):
* Source/WebCore/platform/generic/KeyedDecoderGeneric.h:
* Source/WebCore/platform/glib/KeyedDecoderGlib.h:
* Source/WebCore/platform/graphics/IntRect.h:
* Source/WebCore/platform/graphics/TrackBuffer.cpp:
(WebCore::decodeTimeComparator):
* Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::webkitGstGhostPadFromStaticTemplate):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
* Source/WebCore/platform/graphics/gstreamer/GStreamerVideoFrameConverter.h:
* Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h:
* Source/WebCore/platform/graphics/transforms/TransformationMatrix.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDevice.h:
(WebCore::GStreamerCaptureDevice::caps const):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h:
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerRTPPacketizer.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h:
* Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h:
* Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoFrameLibWebRTC.h:
* Source/WebCore/rendering/RenderWidget.h:
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/updating/RenderTreeBuilder.h:
* Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h:
* Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.h:
* Source/WebCore/rendering/updating/RenderTreeBuilderSVG.h:
* Source/WebGPU/WGSL/TypeCheck.cpp:
(WGSL::TypeChecker::check):
* Source/WebGPU/WebGPU/BindGroup.mm:
(WebGPU::setArgumentBuffer):
* Source/WebGPU/WebGPU/Queue.h:
* Source/WebGPU/WebGPU/RenderPassEncoder.h:
* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* Source/WebKit/NetworkProcess/DatabaseUtilities.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCache::DataKey::decodeForPersistence):
* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
* Source/WebKit/Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<String>::decode):
* Source/WebKit/Platform/IPC/ConnectionHandle.h:
(IPC::ConnectionHandle::release):
(IPC::ConnectionHandle::leak):
(IPC::ConnectionHandle::leakSendRight):
* Source/WebKit/Platform/IPC/DaemonDecoder.h:
(WebKit::Daemon::Decoder::bufferIsLargeEnoughToContain const):
* Source/WebKit/Platform/IPC/Decoder.h:
(IPC::Decoder::isValid const):
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtensionImpl::consume):
* Source/WebKit/Shared/SandboxExtension.h:
* Source/WebKit/UIProcess/Cocoa/SessionStateCoding.h:
* Source/WebKit/UIProcess/LegacySessionStateCoding.h:
* Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::decodeSessionHistoryEntryData):
(WebKit::decodeSessionHistoryEntry):
(WebKit::decodeSessionHistoryEntries):
(WebKit::decodeV0SessionHistory):
(WebKit::decodeV1SessionHistory):
(WebKit::decodeSessionHistory):
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
(WebKit::RemoteGraphicsContextGLProxy::send):
(WebKit::RemoteGraphicsContextGLProxy::sendSync):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCompositorIntegrationProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePresentationContextProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteXRBindingProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteXRProjectionLayerProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteXRSubImageProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteXRViewProxy.h:
* Source/WebKit/WebProcess/WebPage/WebCookieCache.h:

Canonical link: https://commits.webkit.org/305420@main
https://bugs.webkit.org/show_bug.cgi?id=305276
rdar://167917471

Reviewed by Ryosuke Niwa.

The fix is similar to 305404@main, which was to fix about:blank case,
we had similar issue for about:srcdoc, where isProhibitedSelfReference
incorrectly determines about:srcdoc inside another about:srcdoc as self
referencing.

* Source/WebCore/html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::isProhibitedSelfReference const):
* LayoutTests/fast/frames/nested-about-srcdocs-expected.html: Added.
* LayoutTests/fast/frames/nested-about-srcdocs.html: Added.

Canonical link: https://commits.webkit.org/305421@main
Key changes:
- Microtask queue API changes (payload parameter added)
- Async function visibility fix for stack traces
- Various JSC optimizations

Co-Authored-By: Claude <[email protected]>
- Add performPromiseThenWithContext for passing extra context to handlers
- Fix PromiseReactionJob to check isEmpty() || isUndefinedOrNull()
  before passing context argument (empty JSValue != undefined)
- Add @then property to JSInternalPromisePrototype via addOwnInternalSlots
- Make addOwnInternalSlots protected in JSPromisePrototype for subclass access
- Add missing BunPerformMicrotaskJob and BunInvokeJobWithArguments cases

Co-Authored-By: Claude <[email protected]>
@Jarred-Sumner Jarred-Sumner merged commit b76b478 into main Jan 11, 2026
1 check passed
@Jarred-Sumner Jarred-Sumner deleted the jarred/webkit-upgrade-jan-10-fixes branch January 11, 2026 05:49
@coderabbitai
Copy link

coderabbitai bot commented Jan 11, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

The PR increments the WebKit version from 625.7 to 625.1 and adds extensive new test coverage for JavaScript operations (Array.from, Array.flat, String methods), async patterns, RegExp functionality, and layout/accessibility features, alongside supporting test infrastructure and resource updates.

Changes

Cohort / File(s) Summary
Version Configuration
Configurations/Version.xcconfig
MAJOR_VERSION bumped from 624 to 625; TINY_VERSION changed from 7 to 1
JavaScript Microbenchmarks
JSTests/microbenchmarks/array-from-*.js (8 files)
New performance benchmarks for Array.from with cloned arguments and various Map/Set inputs (entries, keys, values) at small and large scales
JavaScript Microbenchmarks
JSTests/microbenchmarks/array-prototype-flat-*.js (7 files)
New performance benchmarks for Array.prototype.flat at various depths (1, 2, 3, Infinity) and with mixed types, large arrays, and sparse patterns
JavaScript Microbenchmarks
JSTests/microbenchmarks/string-*.js (5 files)
New performance benchmarks for String methods: padStart, padEnd, toWellFormed, isWellFormed, and for-of vs forEach iteration
JavaScript Microbenchmarks
JSTests/microbenchmarks/internal-promise-internal-all.js, matchall-bench.js, yarr-interpreter-table-lookup.js
Additional performance benchmarks for InternalPromise operations, RegExp matchAll, and YARR interpreter table lookups
JavaScript Stress Tests
JSTests/stress/array-from-*.js (2 files)
Comprehensive correctness tests for Array.from with cloned arguments, Map iterators, and Set inputs covering edge cases and iteration semantics
JavaScript Stress Tests
JSTests/stress/array-prototype-flat-*.js (8 files)
Extensive tests for Array.prototype.flat behavior including holes, proxies, undefined depth, large arrays, sparse arrays, and nested structures
JavaScript Stress Tests
JSTests/stress/array-out-of-bounds-load-from-hole-should-still-refine-selectusingarugments.js
Test for array hole handling and JIT refinement behavior with Symbol.isConcatSpreadable manipulation
JavaScript Stress Tests
JSTests/stress/async-*.js (3 files)
Tests for async function patterns, stack traces with async/await, and basic async functionality across various contexts
JavaScript Stress Tests
JSTests/stress/data-view-byte-length-oob-exit.js
Added memory-limited test skip directive
JavaScript Stress Tests
JSTests/stress/math-hypot.js
Added floating-point proximity helpers and updated assertions to use tolerance-based comparisons
JavaScript Stress Tests
JSTests/stress/regexp-prototype-*.js (7 files)
Comprehensive tests for RegExp.prototype[Symbol.replace] with capture groups, named groups, edge cases, functional replacements, unicode handling, and slow-path scenarios
JavaScript Stress Tests
JSTests/stress/regexp-prototype-matchall-watchpoint.js
Tests for RegExp.prototype[Symbol.match] fast-path invalidation during matchAll operations
JavaScript Stress Tests
JSTests/stress/string-*.js (3 files)
Tests for String.prototype.padStart, padEnd, and repeat with unicode, surrogate pairs, and complex coercion scenarios
JavaScript Stress Tests
JSTests/stress/temporal-*.js (2 files)
New tests for Temporal.PlainDate and PlainYearMonth APIs including since/until methods
JavaScript Stress Tests
JSTests/stress/typedarray-resize-includes.js, unused-catch-binding.js
Tests for TypedArray resize during includes and comprehensive catch binding behavior
JavaScript Stress Tests
JSTests/stress/yarr-interpreter-table-lookup.js
Stress test for YARR interpreter character class table lookups
Layout Tests - Accessibility
LayoutTests/accessibility/*.html, *-expected.txt (6 files)
New tests for attributed string stitching, hit-testing on stitched text, and live region removal notifications
Layout Tests - Accessibility (iOS)
LayoutTests/accessibility/ios-simulator/*/ (8 files)
Tests for iOS-specific accessibility features: live region removal, focus refocusing, outline style assertions
Layout Tests - CSS & Compositing
LayoutTests/compositing/filters/*, LayoutTests/compositing/geometry/*, LayoutTests/css3/filters/*
Tests for filter regions with translated children, fixed-position page scaling, and SVG filter typo fixes
Layout Tests - CSS (Various)
LayoutTests/fast/css/* (20+ files)
Tests for background-clip, blend modes, container query units, computed styles, outline shorthand, column-rule width, video poster zoom
Layout Tests - Block & Positioning
LayoutTests/fast/block/positioning/* (12 files)
Tests for absolute positioning with auto values, margin changes, and positioning layout updates
Layout Tests - Layout & Rendering
LayoutTests/fast/*/ (50+ files)
Tests for inline boxes, lists, flexbox, overflow/line-clamp, text extraction, font loading, shapes, tables, frames, events, forms, and other layout scenarios
Layout Tests - Touch Events (iOS)
LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/ (20+ files + helper)
Comprehensive tests for touch event region handling with various layout scenarios, plus shared helper utilities
Test Configuration
LayoutTests/TestExpectations
Added skip/pass markers for new and reclassified tests
Test Expectations
JSTests/test262/config.yaml, expectations.yaml
Removed skipped Temporal test entries and updated test expectations for Temporal duration/instant operations
WebAssembly Debugger
JSTests/wasm/debugger/lib/core/base.py, test-wasm-debugger.py, tests/tests.py
Enhanced LLDB integration with verbosity flags, increased timeouts, improved logging, and added new test cases for system calls and multi-VM scenarios
WebAssembly Resources
JSTests/wasm/debugger/resources/wasm/*.js, JSTests/wasm/stress/bbq-parallel-move.js
New multi-VM WASM test resources and improved error reporting in existing tests
Web Platform Tests
LayoutTests/imported/w3c/web-platform-tests/ (100+ files)
CSS tests (grid, flexbox, backgrounds, font-loading), digital credentials, identity, and other WPT imports with expectation updates
HTML & Expected Files
Various -expected.html and -expected.txt files
Multiple new test reference and expectation files for rendering and layout validation

Possibly Related PRs


📜 Recent review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ae3368b and efb46ed.

📒 Files selected for processing (300)
  • Configurations/Version.xcconfig
  • JSTests/microbenchmarks/array-from-cloned-arguments.js
  • JSTests/microbenchmarks/array-from-map-entries-large.js
  • JSTests/microbenchmarks/array-from-map-entries-small.js
  • JSTests/microbenchmarks/array-from-map-keys-int-large.js
  • JSTests/microbenchmarks/array-from-map-keys-int-small.js
  • JSTests/microbenchmarks/array-from-map-values-int-large.js
  • JSTests/microbenchmarks/array-from-map-values-int-small.js
  • JSTests/microbenchmarks/array-from-set-double-large.js
  • JSTests/microbenchmarks/array-from-set-double-small.js
  • JSTests/microbenchmarks/array-from-set-int-large.js
  • JSTests/microbenchmarks/array-from-set-int-small.js
  • JSTests/microbenchmarks/array-from-set-object-large.js
  • JSTests/microbenchmarks/array-from-set-object-small.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-1-double.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-1-int32.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-1-mixed.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-1-string.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-2.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-3.js
  • JSTests/microbenchmarks/array-prototype-flat-depth-infinity.js
  • JSTests/microbenchmarks/array-prototype-flat-huge-arrays.js
  • JSTests/microbenchmarks/array-prototype-flat-large-nested.js
  • JSTests/microbenchmarks/array-prototype-flat-small-arrays.js
  • JSTests/microbenchmarks/array-prototype-flat-sparse-array.js
  • JSTests/microbenchmarks/for-of-vs-for-each-hole.js
  • JSTests/microbenchmarks/internal-promise-internal-all.js
  • JSTests/microbenchmarks/matchall-bench.js
  • JSTests/microbenchmarks/string-is-well-formed.js
  • JSTests/microbenchmarks/string-prototype-padEnd-multiple-chars-resolved.js
  • JSTests/microbenchmarks/string-prototype-padEnd-single-char-resolved.js
  • JSTests/microbenchmarks/string-prototype-padStart-multiple-chars-resolved.js
  • JSTests/microbenchmarks/string-prototype-padStart-single-char-resolved.js
  • JSTests/microbenchmarks/string-to-well-formed.js
  • JSTests/microbenchmarks/yarr-interpreter-table-lookup.js
  • JSTests/modules/object-prototype-then-should-not-be-called-through-internal-promise.js
  • JSTests/modules/object-prototype-then-should-not-be-called-through-internal-promise/test.js
  • JSTests/stress/array-from-cloned-arguments.js
  • JSTests/stress/array-from-map-iterator.js
  • JSTests/stress/array-from-set.js
  • JSTests/stress/array-out-of-bounds-load-from-hole-should-still-refine-selectusingarugments.js
  • JSTests/stress/array-prototype-flat-hole.js
  • JSTests/stress/array-prototype-flat-nested-proxy-array.js
  • JSTests/stress/array-prototype-flat-undefined-depth.js
  • JSTests/stress/async-builtin-function-keyword-start-metadata.js
  • JSTests/stress/async-function-without-await.js
  • JSTests/stress/async-stack-trace-basic.js
  • JSTests/stress/async-stack-trace-nested-deep.js
  • JSTests/stress/async-stack-trace-nested.js
  • JSTests/stress/data-view-byte-length-oob-exit.js
  • JSTests/stress/math-hypot.js
  • JSTests/stress/regexp-prototype-matchall-watchpoint.js
  • JSTests/stress/regexp-prototype-symbol-replace-basic.js
  • JSTests/stress/regexp-prototype-symbol-replace-capture-groups.js
  • JSTests/stress/regexp-prototype-symbol-replace-edge-cases.js
  • JSTests/stress/regexp-prototype-symbol-replace-functional.js
  • JSTests/stress/regexp-prototype-symbol-replace-named-groups.js
  • JSTests/stress/regexp-prototype-symbol-replace-slow-path.js
  • JSTests/stress/regexp-prototype-symbol-replace-unicode.js
  • JSTests/stress/string-pad-start-end.js
  • JSTests/stress/string-repeat-complex.js
  • JSTests/stress/temporal-plaindate.js
  • JSTests/stress/temporal-plainyearmonth.js
  • JSTests/stress/typedarray-resize-includes.js
  • JSTests/stress/unused-catch-binding.js
  • JSTests/stress/yarr-interpreter-table-lookup.js
  • JSTests/test262/config.yaml
  • JSTests/test262/expectations.yaml
  • JSTests/wasm/debugger/lib/core/base.py
  • JSTests/wasm/debugger/resources/wasm/multi-vm-same-module-different-funcs.js
  • JSTests/wasm/debugger/resources/wasm/multi-vm-same-module-same-func.js
  • JSTests/wasm/debugger/resources/wasm/system-call.js
  • JSTests/wasm/debugger/test-wasm-debugger.py
  • JSTests/wasm/debugger/tests/tests.py
  • JSTests/wasm/stress/bbq-parallel-move.js
  • LayoutTests/TestExpectations
  • LayoutTests/accessibility/attributed-string-text-stitching-expected.txt
  • LayoutTests/accessibility/attributed-string-text-stitching.html
  • LayoutTests/accessibility/hit-test-on-stitched-text-expected.txt
  • LayoutTests/accessibility/hit-test-on-stitched-text.html
  • LayoutTests/accessibility/ios-simulator/live-regions/live-region-removal-expected.txt
  • LayoutTests/accessibility/ios-simulator/live-regions/live-region-removal.html
  • LayoutTests/accessibility/ios-simulator/taking-focus-should-refocus-page-expected.txt
  • LayoutTests/accessibility/ios-simulator/taking-focus-should-refocus-page.html
  • LayoutTests/accessibility/mac/live-regions/live-region-removals-expected.txt
  • LayoutTests/accessibility/mac/live-regions/live-region-search-expected.txt
  • LayoutTests/accessibility/mac/live-regions/live-region-search.html
  • LayoutTests/compositing/filters/filter-region-translated-child-expected.html
  • LayoutTests/compositing/filters/filter-region-translated-child.html
  • LayoutTests/compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport-expected.html
  • LayoutTests/compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html
  • LayoutTests/css3/filters/effect-reference-expected.txt
  • LayoutTests/css3/filters/effect-reference-hw-expected.txt
  • LayoutTests/editing/caret/emoji-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-2-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-3-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-4-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-5-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-6-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-7-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-8-expected.txt
  • LayoutTests/editing/deleting/delete-emoji-9-expected.txt
  • LayoutTests/fast/backgrounds/background-clip-border-area-and-blend-mode-expected.html
  • LayoutTests/fast/backgrounds/background-clip-border-area-and-blend-mode.html
  • LayoutTests/fast/backgrounds/background-clip-text-and-blend-mode-expected.html
  • LayoutTests/fast/backgrounds/background-clip-text-and-blend-mode.html
  • LayoutTests/fast/backgrounds/background-clip-text.html
  • LayoutTests/fast/backgrounds/top-content-inset-fixed-attachment-expected.txt
  • LayoutTests/fast/backgrounds/top-content-inset-fixed-attachment.html
  • LayoutTests/fast/block/inside-inlines/getClientRects-on-inline-box-missing-entry-expected.txt
  • LayoutTests/fast/block/inside-inlines/getClientRects-on-inline-box-missing-entry.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-and-width-change-parent-margin-left-expected.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-and-width-change-parent-margin-left.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-auto-top-inside-auto-margins-expected.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-auto-top-inside-auto-margins.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-fixed-top-change-parent-margin-left-expected.html
  • LayoutTests/fast/block/positioning/abspos-auto-left-fixed-top-change-parent-margin-left.html
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-2-expected.txt
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-2.html
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-3-expected.txt
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-3.html
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-4-expected.txt
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-4.html
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes-expected.txt
  • LayoutTests/fast/block/positioning/positioned-layout-in-block-flow-when-margin-changes.html
  • LayoutTests/fast/css/container-query-units-page-zoom-expected.html
  • LayoutTests/fast/css/container-query-units-page-zoom.html
  • LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt
  • LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-column-rule-expected.txt
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-column-rule.html
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-outline-shorthand-expected.txt
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-outline-shorthand.html
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt
  • LayoutTests/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html
  • LayoutTests/fast/css/video-poster-zoom-expected.txt
  • LayoutTests/fast/css/video-poster-zoom.html
  • LayoutTests/fast/dom/construct-web-transport-error-expected.txt
  • LayoutTests/fast/dom/construct-web-transport-error.html
  • LayoutTests/fast/events/touch/ios/long-press-context-menu-while-navigating-expected.txt
  • LayoutTests/fast/events/touch/ios/long-press-context-menu-while-navigating.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/active-passive-nesting-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/active-passive-nesting.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/columns-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/columns.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/complex-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/complex.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/document-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/document.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/iframes-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/iframes.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/input-type-change-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/input-type-change.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/overflow-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/overflow.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/range-enablement-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/range-enablement.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/range-sliders-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/range-sliders.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/resources/touch-regions-helper.js
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/scrolled-overflow-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/scrolled-overflow.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/switch-enablement-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/switch-enablement.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/switch-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/switch.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/transparent-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/transparent.html
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/window-expected.txt
  • LayoutTests/fast/events/touch/ios/touch-event-regions-layer-tree/window.html
  • LayoutTests/fast/filter-image/clipped-filter-expected.html
  • LayoutTests/fast/filter-image/clipped-filter.html
  • LayoutTests/fast/flexbox/legacy-line-clamp-on-display-block-expected.html
  • LayoutTests/fast/flexbox/legacy-line-clamp-on-display-block.html
  • LayoutTests/fast/forms/appearance-base/appearance-base-checkable-checkmark-dynamic-expected.html
  • LayoutTests/fast/forms/appearance-base/appearance-base-checkable-checkmark-dynamic.html
  • LayoutTests/fast/forms/appearance-base/appearance-base-checkable-checkmark-initial-expected.html
  • LayoutTests/fast/forms/appearance-base/appearance-base-checkable-checkmark-initial.html
  • LayoutTests/fast/forms/datalist/data-list-search-input-with-appearance-none-expected.html
  • LayoutTests/fast/forms/datalist/data-list-search-input-with-appearance-none.html
  • LayoutTests/fast/forms/search-selection-insert-crash-expected.txt
  • LayoutTests/fast/forms/search-selection-insert-crash.html
  • LayoutTests/fast/frames/nested-about-blanks-expected.html
  • LayoutTests/fast/frames/nested-about-blanks.html
  • LayoutTests/fast/frames/nested-about-srcdocs-expected.html
  • LayoutTests/fast/frames/nested-about-srcdocs.html
  • LayoutTests/fast/inline/blocks-in-inline-client-rects-expected.txt
  • LayoutTests/fast/inline/blocks-in-inline-client-rects.html
  • LayoutTests/fast/inline/inline-box-offset-width-height-and-continuation-expected.txt
  • LayoutTests/fast/inline/inline-box-offset-width-height-and-continuation.html
  • LayoutTests/fast/invalid/018-expected.txt
  • LayoutTests/fast/invalid/table-residual-style-crash-expected.txt
  • LayoutTests/fast/lists/list-marker-outside-inside-flex-item-expected.html
  • LayoutTests/fast/lists/list-marker-outside-inside-flex-item.html
  • LayoutTests/fast/lists/marker-before-empty-inline.html
  • LayoutTests/fast/overflow/line-clamp-on-last-formatted-line-expected.html
  • LayoutTests/fast/overflow/line-clamp-on-last-formatted-line.html
  • LayoutTests/fast/rendering/missing-selection-with-sibling-table.html
  • LayoutTests/fast/repaint/emoji-glyph-overflow-repaint-fail-expected.txt
  • LayoutTests/fast/replaced/resources/focus-test.js
  • LayoutTests/fast/ruby/ruby-text-before-child-split-expected.txt
  • LayoutTests/fast/shapes/shape-outside-floats/shape-outside-invalidation-after-font-load-expected.txt
  • LayoutTests/fast/shapes/shape-outside-floats/shape-outside-invalidation-after-font-load.html
  • LayoutTests/fast/table/table-colspan-mixed-percent-fixed-auto-expected.txt
  • LayoutTests/fast/table/table-colspan-mixed-percent-fixed-auto.html
  • LayoutTests/fast/text-extraction/debug-text-extraction-all-container-uids-expected.txt
  • LayoutTests/fast/text-extraction/debug-text-extraction-all-container-uids.html
  • LayoutTests/fast/text-extraction/debug-text-extraction-basic-expected.txt
  • LayoutTests/fast/text-extraction/debug-text-extraction-basic.html
  • LayoutTests/fast/text-extraction/debug-text-extraction-form-controls-expected.txt
  • LayoutTests/fast/text-extraction/debug-text-extraction-form-controls.html
  • LayoutTests/fast/text-extraction/debug-text-extraction-markdown-expected.txt
  • LayoutTests/fast/text-extraction/debug-text-extraction-markdown.html
  • LayoutTests/fast/text-extraction/debug-text-extraction-shorten-urls-expected.txt
  • LayoutTests/fast/text-extraction/debug-text-extraction-shorten-urls.html
  • LayoutTests/fast/text-extraction/extract-text-with-empty-body-expected.html
  • LayoutTests/fast/text-extraction/extract-text-with-empty-body.html
  • LayoutTests/fast/text/FontFaceSet-status-after-style-update-expected.txt
  • LayoutTests/fast/text/FontFaceSet-status-after-style-update.html
  • LayoutTests/fast/text/css-font-loading-arraybuffer-expected.txt
  • LayoutTests/fast/text/css-font-loading-arraybuffer.html
  • LayoutTests/fast/text/font-face-set-bounds-expected.txt
  • LayoutTests/fast/text/font-face-set-bounds.html
  • LayoutTests/fast/text/font-face-set-javascript.html
  • LayoutTests/fast/text/font-loading-multiple-documents.html
  • LayoutTests/fast/text/font-loading-multiple-sets.html
  • LayoutTests/fast/text/glyph-display-lists/colr-glyph-state-leak-expected.html
  • LayoutTests/fast/text/glyph-display-lists/colr-glyph-state-leak.html
  • LayoutTests/fullscreen/parent-flow-inline-with-block-child-expected.txt
  • LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https-expected.txt
  • LayoutTests/http/tests/digital-credentials/digital-credential-console-messages.https.html
  • LayoutTests/http/tests/events/device-orientation-motion-enumerable-expected.txt
  • LayoutTests/http/tests/events/device-orientation-motion-enumerable.html
  • LayoutTests/http/tests/ipc/ipc-fetch-task-message-crash.html
  • LayoutTests/http/tests/security/clipboard/resources/subdirectory/paste-html.html
  • LayoutTests/http/tests/text-extraction/debug-text-extraction-subframes-expected.txt
  • LayoutTests/http/tests/text-extraction/debug-text-extraction-subframes.html
  • LayoutTests/http/tests/text-extraction/resources/subframe1.html
  • LayoutTests/http/tests/text-extraction/resources/subframe2.html
  • LayoutTests/http/tests/webgpu/webgpu/api/operation/uncapturederror-expected.txt
  • LayoutTests/http/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxInterStageShaderVariables-expected.txt
  • LayoutTests/http/tests/webgpu/webgpu/web_platform/copyToTexture/video-expected.txt
  • LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https-expected.txt
  • LayoutTests/http/wpt/identity/digital-credential-protocol-filtering.https.html
  • LayoutTests/http/wpt/identity/formats/ISO18013/mobiledocument.https.html
  • LayoutTests/http/wpt/identity/formats/openid/openid4vp.https-expected.txt
  • LayoutTests/http/wpt/identity/formats/openid/openid4vp.https.html
  • LayoutTests/http/wpt/identity/identitycredentialscontainer-get-hidden.https.html
  • LayoutTests/http/wpt/service-workers/service-worker-add-routes-worker.js
  • LayoutTests/imported/w3c/resources/resource-files.json
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-replaced-height-002-expected.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/block-replaced-height-002.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-block-replaced-height-002-expected.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-block-replaced-height-002.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-replaced-height-002-expected.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/CSS2/normal-flow/inline-replaced-height-002.xht
  • LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-js-expose.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-014-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-clip-border-area-and-blend-mode-expected.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-clip-border-area-and-blend-mode.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-clip-text-and-blend-mode-expected.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-clip-text-and-blend-mode.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/reference/background-clip-border-area-and-blend-mode-ref.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/reference/background-clip-text-and-blend-mode-ref.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-002-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-003-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-relative-percentage-top-001.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/empty-family-load-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-fonts-loading-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-load-in-modal-dialog-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loading-events-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loading-events-font-from-arraybuffer-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loading-events-font-from-arraybuffer.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loading-events.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loadingevent-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-loadingevent.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-clear-css-connected-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-has-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-var-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-update-after-stylesheet-change-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/idlharness.https-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/moving-fontface-between-document-throws.tentative-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/moving-fontface-between-document-throws.tentative.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-font-loading/nonexistent-file-url-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/alignment/grid-content-alignment-overflow-002-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/computed-grid-column-expected.txt
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/abspos/column-grid-lanes-positioned-item-dynamic-change.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/alignment/column-justify-items-center-001.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/alignment/column-justify-items-end-justify-self-start-001.html
  • LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-lanes/tentative/alignment/column-overflow-alignment-001.html

Comment @coderabbitai help to get the list of available commands and usage tips.

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.