Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6c34b6a708cd6f77ceee7f4d181d23676ee4e286
      
https://github.com/WebKit/WebKit/commit/6c34b6a708cd6f77ceee7f4d181d23676ee4e286
  Author: Sosuke Suzuki <[email protected]>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    A JSTests/microbenchmarks/error-is-error-for-error.js
    A JSTests/microbenchmarks/error-is-error-for-mixed.js
    A JSTests/microbenchmarks/error-is-error-for-non-error.js
    A JSTests/stress/error-is-error-intrinsic-errors.js
    A JSTests/stress/error-is-error-intrinsic-mixed.js
    A JSTests/stress/error-is-error-intrinsic-non-errors.js
    M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
    M Source/JavaScriptCore/runtime/ErrorConstructor.cpp
    M Source/JavaScriptCore/runtime/Intrinsic.h

  Log Message:
  -----------
  [JSC] Handle `Error.isError` in DFG/FTL with `IsCellWithType` node
https://bugs.webkit.org/show_bug.cgi?id=310610

Reviewed by Yusuke Suzuki.

This patch changes to handle `Error.isError` in DFG/FTL with `IsCellWithType` 
node.

                                      TipOfTree                  Patched

error-is-error-for-error            4.0522+-0.0048     ^      1.8115+-0.0965    
    ^ definitely 2.2369x faster
error-is-error-for-mixed            4.3807+-0.2827     ^      2.5868+-0.0844    
    ^ definitely 1.6935x faster
error-is-error-for-non-error        4.1217+-0.1397     ^      1.7876+-0.0252    
    ^ definitely 2.3057x faster

Tests: JSTests/microbenchmarks/error-is-error-for-error.js
       JSTests/microbenchmarks/error-is-error-for-mixed.js
       JSTests/microbenchmarks/error-is-error-for-non-error.js
       JSTests/stress/error-is-error-intrinsic-errors.js
       JSTests/stress/error-is-error-intrinsic-mixed.js
       JSTests/stress/error-is-error-intrinsic-non-errors.js

* JSTests/microbenchmarks/error-is-error-for-error.js: Added.
(isError):
* JSTests/microbenchmarks/error-is-error-for-mixed.js: Added.
(isError):
(new.TypeError):
* JSTests/microbenchmarks/error-is-error-for-non-error.js: Added.
(isError):
* JSTests/stress/error-is-error-intrinsic-errors.js: Added.
(shouldBe):
(test):
(MyError):
(MyTypeError):
(MyAggregateError):
(testThrown):
* JSTests/stress/error-is-error-intrinsic-mixed.js: Added.
(shouldBe):
(test):
(MyError):
(testCellOnly):
(testNonCellOnly):
* JSTests/stress/error-is-error-intrinsic-non-errors.js: Added.
(shouldBe):
(test):
(Proxy.revocable.new.Error):
(Symbol):
(new.Proxy.new.Error):
(testNoArgs):
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* Source/JavaScriptCore/runtime/ErrorConstructor.cpp:
(JSC::ErrorConstructor::finishCreation):
* Source/JavaScriptCore/runtime/Intrinsic.h:

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



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

Reply via email to