Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fb4ca5da0f8e84a9e186efd411a0f14d709de0b4
      
https://github.com/WebKit/WebKit/commit/fb4ca5da0f8e84a9e186efd411a0f14d709de0b4
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
    A 
JSTests/stress/ftl-bound-check-for-enumerator-next-update-index-and-mode.js
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

  Log Message:
  -----------
  FTL missing bound check of for-in loop
https://bugs.webkit.org/show_bug.cgi?id=252801
rdar://105820083

Reviewed by Michael Saboff.

EnumeratorNextUpdateIndexAndMode for IndexedMode uses HasIndexProperty 
internally. But
this node does not do bound check when ArrayMode is inBounds in FTL since FTL 
SSALowering
phase extracts this bound check as a separate CheckInBounds node. But 
EnumeratorNextUpdateIndexAndMode,
we cannot do that since EnumeratorNextUpdateIndexAndMode's index is incremented 
internally. Thus,
we need to do bound check inside EnumeratorNextUpdateIndexAndMode when it is 
not done in HasIndexProperty's
code.

* JSTests/stress/ftl-bound-check-for-enumerator-next-update-index-and-mode.js: 
Added.
(shouldBe):
(opt):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

Originally-landed-as: 259548.377@safari-7615-branch (25a414a61f3e). 
rdar://105820083
Canonical link: https://commits.webkit.org/264326@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to