Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fb8bfead603ee6308af1dbfb0619cbaa40f79dee
      
https://github.com/WebKit/WebKit/commit/fb8bfead603ee6308af1dbfb0619cbaa40f79dee
  Author: Kai Tamkun <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A JSTests/stress/spread-set-own-symbol-iterator-side-effects.js
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h

  Log Message:
  -----------
  [JSC] incorrect side-effect modeling for Spread(SetObjectUse) in DFG abstract 
interpreter
https://bugs.webkit.org/show_bug.cgi?id=315132
rdar://177136593

Reviewed by Yusuke Suzuki.

313031@main allows Set spreads to invoke user-defined `Symbol.iterator` 
functions.
This broke an assumption in the abstract interpreter that spreading a Set object
has no side effects, and under that assumption the AI had been keeping structure
proofs alive, even though now the call to a user-defined `Symbol.iterator` 
function
during the spread could change the structure. A subsequent GetByOffset, which
should've been prevented by an OSR exit during the CheckStructure that was being
mistakenly folded, could then read a stale slot.

Test: JSTests/stress/spread-set-own-symbol-iterator-side-effects.js

* JSTests/stress/spread-set-own-symbol-iterator-side-effects.js: Added.
(shouldBe):
(set o):
(f):
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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



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

Reply via email to