Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: 48a4516616c36fdebf59645f93c14b0a3f9d0914
      
https://github.com/WebKit/WebKit/commit/48a4516616c36fdebf59645f93c14b0a3f9d0914
  Author: Anand Srinivasan <[email protected]>
  Date:   2026-09-08 (Tue, 08 Sep 2026)

  Changed paths:
    A JSTests/stress/b3-ccmp-chain.js
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/testb3.h
    M Source/JavaScriptCore/b3/testb3_1.cpp
    M Source/JavaScriptCore/b3/testb3_8.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (7e01f14f8eb7). 
https://bugs.webkit.org/show_bug.cgi?id=315389

    Make B3 ccmp chain matcher use RAII
    https://bugs.webkit.org/show_bug.cgi?id=315389
    rdar://176792415

    Reviewed by Keith Miller.

    B3 ccmp chain matcher needs to roll back if a given pattern match fails
    part way through. RAII is a more principled and less error prone way to
    handle this.

    Test: JSTests/stress/b3-ccmp-chain.js

    * JSTests/stress/b3-ccmp-chain.js: Added.
    (f):
    (f_legit_chain):
    * Source/JavaScriptCore/b3/B3LowerToAir.cpp:
    * Source/JavaScriptCore/b3/testb3.h:
    * Source/JavaScriptCore/b3/testb3_1.cpp:
    (run):
    * Source/JavaScriptCore/b3/testb3_8.cpp:
    (testCCmpChainRollback):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1159@webkitglib/2.52


  Commit: 4185bc0d49f8bd79d0c2eebeed87a5ece28ca05d
      
https://github.com/WebKit/WebKit/commit/4185bc0d49f8bd79d0c2eebeed87a5ece28ca05d
  Author: Anand Srinivasan <[email protected]>
  Date:   2026-09-08 (Tue, 08 Sep 2026)

  Changed paths:
    A JSTests/wasm/stress/br-on-cast-fail-overlong-leb128.js
    A JSTests/wasm/stress/br-on-cast-overlong-leb128.js
    M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.h

  Log Message:
  -----------
  Cherry-pick [email protected] (5b76326e8fc9). 
https://bugs.webkit.org/show_bug.cgi?id=317349

    IPInt br_on_cast/br_on_cast_fail must handle overlong LEB128 opcode
    https://bugs.webkit.org/show_bug.cgi?id=317349
    rdar://178289134

    Reviewed by Yusuke Suzuki.

    Currently IPInt implementations of br_on_cast/br_on_cast_fail assume
    flags are at a fixed offset in the instruction but overlong opcodes
    are legal and IPInt may use the wrong byte to load flags. This patch
    makes the validator cache allowNull in metadata so IPInt no longer
    loads from the instruction stream at all.

    Tests: JSTests/wasm/stress/br-on-cast-fail-overlong-leb128.js
           JSTests/wasm/stress/br-on-cast-overlong-leb128.js

    * JSTests/wasm/stress/br-on-cast-fail-overlong-leb128.js: Added.
    (uleb):
    (section):
    (str):
    * JSTests/wasm/stress/br-on-cast-overlong-leb128.js: Added.
    (uleb):
    (section):
    (str):
    * Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:
    * Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
    (JSC::Wasm::IPIntGenerator::addRefTest):
    (JSC::Wasm::IPIntGenerator::addRefCast):
    (JSC::Wasm::IPIntGenerator::addBranchCast):
    * Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1160@webkitglib/2.52


  Commit: 71731a79be7f75a85ab7f76e2e5b79bccbbaa6a4
      
https://github.com/WebKit/WebKit/commit/71731a79be7f75a85ab7f76e2e5b79bccbbaa6a4
  Author: Anand Srinivasan <[email protected]>
  Date:   2026-09-08 (Tue, 08 Sep 2026)

  Changed paths:
    A JSTests/stress/watchpoint-async-generator-code-deletion.js
    A JSTests/stress/watchpoint-closure-not-affected.js
    M Source/JavaScriptCore/bytecode/CodeBlock.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (1af72a6f5454). 
https://bugs.webkit.org/show_bug.cgi?id=313499

    Pre-invalidate captured-variable WatchpointSets in generator and async 
function bodies
    https://bugs.webkit.org/show_bug.cgi?id=313499
    rdar://173777534

    Reviewed by Yusuke Suzuki.

    When deleteAllCode runs while an async generator is suspended, the generator
    body's CodeBlock is cleared and later re-created from re-parsed source. The
    new CodeBlock's constant pool gets a fresh SymbolTable clone with fresh
    WatchpointSets, but the suspended activation still references the original.
    A subsequent ResolvedClosureVar put_to_scope on the new CodeBlock fires
    touch() against the fresh clone's WatchpointSet, which the DFG is not
    watching, so DFG code that constant-folded the captured variable never
    deoptimizes and returns stale values.

    Treat ResolvedClosureVar writes inside suspendable bodies the same way
    ClosureVar writes are already treated: invalidate the WatchpointSet at
    link time. Sibling closures using ClosureVar already pay this cost;
    extending it to the declaring function eliminates the only remaining
    runtime path that relies on SymbolTable identity across re-link.

    Tests: JSTests/stress/watchpoint-async-generator-code-deletion.js
           JSTests/stress/watchpoint-closure-not-affected.js

    * JSTests/stress/watchpoint-async-generator-code-deletion.js: Added.
    (async sleepAsync):
    (async main.opt):
    (async main):
    * JSTests/stress/watchpoint-closure-not-affected.js: Added.
    (async sleepAsync):
    (async test.):
    (async test.obj):
    * Source/JavaScriptCore/bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::finishCreation):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1161@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/2518b601960e...71731a79be7f

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

Reply via email to