Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b0bf5bc7500a53126e9c9fb1f9ee1d978db07c7c
      
https://github.com/WebKit/WebKit/commit/b0bf5bc7500a53126e9c9fb1f9ee1d978db07c7c
  Author: Keith Miller <keith_mil...@apple.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    A JSTests/wasm/stress/multi-tuple.js
    M Source/JavaScriptCore/b3/B3Type.h
    M Source/JavaScriptCore/b3/B3Validate.cpp
    M Source/JavaScriptCore/b3/air/AirCustom.cpp

  Log Message:
  -----------
  B3 should use isTuple rather than `== Tuple`
https://bugs.webkit.org/show_bug.cgi?id=261467
rdar://115283700

Reviewed by Yusuke Suzuki.

Recently we switched to using the default operator== for many JSC classes 
(https://commits.webkit.org/267645@main).
This however revealed a subtle inconsistency where we would allow Tuple 
TypeKinds to be compared to Types but
didn't check the tuple index. Now that we use the default operator== we started 
checking the tuple index, which
causes assertion failures in validation.

To fix this validation should use `isTuple()` rather than `== Tuple`. Also, to 
prevent others from making the
same mistake, we now `ASSERT` the implicit `Type` constructor isn't receiving a 
`Tuple`.

* JSTests/wasm/stress/multi-tuple.js: Added.
(type.1.call.1.call.0.return.export.string_appeared_here.func.2.async test):
* Source/JavaScriptCore/b3/B3Type.h:
(JSC::B3::Type::Type):
* Source/JavaScriptCore/b3/B3Validate.cpp:
* Source/JavaScriptCore/b3/air/AirCustom.cpp:
(JSC::B3::Air::CCallCustom::isValidForm):

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


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

Reply via email to