Branch: refs/heads/webkitglib/2.50
  Home:   https://github.com/WebKit/WebKit
  Commit: 16691925cfca581fb9e9952a9c6f23ca09be87e7
      
https://github.com/WebKit/WebKit/commit/16691925cfca581fb9e9952a9c6f23ca09be87e7
  Author: Keith Miller <[email protected]>
  Date:   2026-03-17 (Tue, 17 Mar 2026)

  Changed paths:
    A JSTests/stress/array-allocation-sink-conditional-write-osr.js
    A JSTests/stress/array-sink-materialize-conditional-write-argument-value.js
    A JSTests/stress/array-sink-materialize-conditional-write.js
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

  Log Message:
  -----------
  Cherry-pick 300888@main (934b1e28a87a). 
https://bugs.webkit.org/show_bug.cgi?id=299956

    Conditional writes are incorrectly handled in Array allocation sinking
    https://bugs.webkit.org/show_bug.cgi?id=299956
    rdar://161681941

    Reviewed by Yusuke Suzuki and Yijia Huang.

    The current bottom value in ObjectAllocationSinking is incorrect for arrays.
    Unlike with objects, which track conditional stores by passing the active
    structure through SSA, arrays can't do this. Instead we should set default 
value
    to the appropriate hole value for the given IndexingShape. To make this work
    I had to fix some Phi/Upsilon ResultFormat bugs since they previously 
assumed
    everything would be a JSValue.

    Also, add ASSERT to FTL lowering that the Phi/Upsilon formats match. I 
spent 1/2 a day
    trying to understand why I was getting zero, when the issue was those 
values disagreed
    and I was getting the default zero value.

    Tests: JSTests/stress/array-allocation-sink-conditional-write-osr.js
           
JSTests/stress/array-sink-materialize-conditional-write-argument-value.js
           JSTests/stress/array-sink-materialize-conditional-write.js

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

Canonical link: https://commits.webkit.org/298234.503@webkitglib/2.50


  Commit: c907888b114469eeabd78c2288d06e4e8749a438
      
https://github.com/WebKit/WebKit/commit/c907888b114469eeabd78c2288d06e4e8749a438
  Author: Keith Miller <[email protected]>
  Date:   2026-03-17 (Tue, 17 Mar 2026)

  Changed paths:
    A JSTests/stress/array-osr-exit-materialize-hole.js
    M Source/JavaScriptCore/ftl/FTLOperations.cpp
    M Source/JavaScriptCore/runtime/ArrayPrototype.cpp
    M Source/JavaScriptCore/runtime/Butterfly.h
    M Source/JavaScriptCore/runtime/ButterflyInlines.h
    M Source/JavaScriptCore/runtime/JSArray.cpp
    M Source/JavaScriptCore/runtime/JSArray.h

  Log Message:
  -----------
  Cherry-pick 300709@main (5c7aadfa0a96). 
https://bugs.webkit.org/show_bug.cgi?id=299761

    operationMaterializeObjectInOSR needs to initialize Butterflies it creates.
    https://bugs.webkit.org/show_bug.cgi?id=299761
    rdar://161317599

    Reviewed by Mark Lam and Yusuke Suzuki.

    Butterfly::tryCreate does *not* initialize the indexed storage it creates.
    Thus when OSR exiting with a sunk Array allocation any holes in the array 
were
    not filled and left uninitialized.

    Test: JSTests/stress/array-osr-exit-materialize-hole.js
    Canonical link: https://commits.webkit.org/300709@main

Canonical link: https://commits.webkit.org/298234.504@webkitglib/2.50


Compare: https://github.com/WebKit/WebKit/compare/6966486a92d9...c907888b1144

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

Reply via email to