Branch: refs/heads/webkitglib/2.54
  Home:   https://github.com/WebKit/WebKit
  Commit: cb2788ad87c813797b9bf0d0f876c2534e8c9142
      
https://github.com/WebKit/WebKit/commit/cb2788ad87c813797b9bf0d0f876c2534e8c9142
  Author: Adrian Perez de Castro <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSStringInlines.h

  Log Message:
  -----------
  Cherry-pick 318454@main (a5c78b4fff5c). 
https://bugs.webkit.org/show_bug.cgi?id=320887

    REGRESSION(312307@main): [JSC] Clang reports unsafe buffer usage in 
JSStringInlines.h
    https://bugs.webkit.org/show_bug.cgi?id=320887

    Reviewed by Keith Miller.

    * Source/JavaScriptCore/runtime/JSStringInlines.h:
    (JSC::JSString::tryFindLastOneChar const): Change plain arrays to use
    bounds-checked std::array instances.

    Canonical link: https://commits.webkit.org/318454@main

Canonical link: https://commits.webkit.org/317695.46@webkitglib/2.54


  Commit: b6922ca758e13f513d524f3ddd95e529fc5f544d
      
https://github.com/WebKit/WebKit/commit/b6922ca758e13f513d524f3ddd95e529fc5f544d
  Author: Pawel Lampe <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M Source/WebCore/platform/graphics/FontCache.cpp
    M Source/WebCore/platform/graphics/FontCascadeCache.h
    M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
    M Source/WebCore/platform/graphics/FontCascadeFonts.h
    M Source/WebCore/platform/graphics/FontCustomPlatformData.h
    M Source/WebCore/platform/graphics/FontPlatformData.cpp
    M Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp
    M Source/WebCore/platform/graphics/skia/FontCustomPlatformDataSkia.cpp
    M Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp

  Log Message:
  -----------
  Cherry-pick 318476@main (6b324fb4b79e). 
https://bugs.webkit.org/show_bug.cgi?id=319590

    [Skia] Memory growth on every page load when fonts with variations are used
    https://bugs.webkit.org/show_bug.cgi?id=319590

    Reviewed by Carlos Garcia Campos.

    This change adds a small cache for font variation typefaces, so that
    variation-specific typefaces can be shared. This way, a lot of memory
    can be saved if font variations are used often.

    Canonical link: https://commits.webkit.org/318476@main

Canonical link: https://commits.webkit.org/317695.47@webkitglib/2.54


  Commit: cc9be033e33e857d3c696eeb3dc0d2675bcce727
      
https://github.com/WebKit/WebKit/commit/cc9be033e33e857d3c696eeb3dc0d2675bcce727
  Author: Carlos Alberto Lopez Perez <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M Source/JavaScriptCore/runtime/VM.cpp

  Log Message:
  -----------
  Cherry-pick 318487@main (bff3814d76f7). 
https://bugs.webkit.org/show_bug.cgi?id=320559

    [JSC][Linux] Don't re-read /proc/self/maps when handling checkpoint OSR 
side state
    https://bugs.webkit.org/show_bug.cgi?id=320559

    Reviewed by Yusuke Suzuki and Justin Michaud.

    VM::pushCheckpointOSRSideState() has an ASSERT_ENABLED block that checks
    that the side state stack remains ordered. To do so, it needs the current
    thread stack bounds.

    It obtained them using StackBounds::currentThreadStackBounds(), which does
    not cache the result. On Linux, this calls pthread_getattr_np(), which glibc
    implements for the main thread by opening and parsing /proc/self/maps.
    Each call makes the kernel generate a list of the process memory mappings
    and then makes glibc parse that list.

    While running wasm/stress/type-index-abstract-heap-types-nulls-and-casts.js
    in wasm-eager mode, profiling showed about ~45% of samples in kernel code
    generating /proc/self/maps and another ~30% in libc parsing it. The test
    opened /proc/self/maps hundreds of times through repeated calls to
    VM::pushCheckpointOSRSideState().

    Thread::m_stack is initialized using StackBounds::currentThreadStackBounds()
    and cached for the lifetime of the thread. 
Thread::currentSingleton().stack()
    therefore provides the cached bounds without repeating the OS query.
    logSanitizeStack() in the same file already uses this cached value.

    Switch both call sites in VM.cpp to the cached bounds. This keeps the
    relevant stack consistency assertions checks without asking the operating
    system to recalculate information that the thread already stores.

    popAllCheckpointOSRSideStateUntil() is not assertion-only: it uses the
    bounds as part of its normal operation. This change therefore also avoids
    the same cost in release builds.

    With this change, on a Release+Asserts WPE build, `run-jsc-stress-tests \
    --filter wasm.yaml/wasm/stress/type-index-abstract-heap-types` completes
    in about five minutes. Previously, it could take around one hour, and the
    tests would usually time out.

    * 
JSTests/wasm/stress/type-index-abstract-heap-types-concrete-vs-abstract.js:
    * JSTests/wasm/stress/type-index-abstract-heap-types-globals-and-tables.js:
    * JSTests/wasm/stress/type-index-abstract-heap-types-nulls-and-casts.js:
    * JSTests/wasm/stress/type-index-abstract-heap-types-subtype-validation.js:
    * Source/JavaScriptCore/runtime/VM.cpp:
    (JSC::VM::pushCheckpointOSRSideState):
    (JSC::VM::popAllCheckpointOSRSideStateUntil):

    Canonical link: https://commits.webkit.org/318487@main

Canonical link: https://commits.webkit.org/317695.48@webkitglib/2.54


Compare: https://github.com/WebKit/WebKit/compare/81f97cb0016d...cc9be033e33e

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to