Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7a95fd2b53b6979312879679e3d164a3d3de20f4
      
https://github.com/WebKit/WebKit/commit/7a95fd2b53b6979312879679e3d164a3d3de20f4
  Author: Sosuke Suzuki <aosuk...@gmail.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A JSTests/microbenchmarks/set-prototype-union-large-other.js
    A JSTests/microbenchmarks/set-prototype-union-large-this.js
    A JSTests/microbenchmarks/set-prototype-union.js
    A JSTests/stress/array-prototype-slice-to-number-error.js
    A JSTests/stress/set-prototype-union-empty-sets.js
    A JSTests/stress/set-prototype-union-generic-object.js
    A JSTests/stress/set-prototype-union-iterator-effects.js
    A JSTests/stress/set-union-cursor-reference.js
    A JSTests/stress/set-union-iteration-reference.js
    A JSTests/stress/set-union-reference.js
    M Source/JavaScriptCore/builtins/SetPrototype.js
    M Source/JavaScriptCore/runtime/SetPrototype.cpp

  Log Message:
  -----------
  [JSC] Implement `Set.prototype.union` in C++
https://bugs.webkit.org/show_bug.cgi?id=296630

Reviewed by Yusuke Suzuki.

This patch implements `Set.prototype.union` in C++ using the same method
as https://commits.webkit.org/297882@main.

Baseline JIT:
                                         TipOfTree                  Patched

set-prototype-union-large-this        38.7738+-0.6428     ?     39.0824+-0.4664 
       ?
set-prototype-union-large-other       73.0084+-1.8569     ^     46.1917+-0.8838 
       ^ definitely 1.5806x faster
set-prototype-union                  101.5522+-1.6544     ^     79.3068+-6.7624 
       ^ definitely 1.2805x faster

DFG JIT:
                                         TipOfTree                  Patched

set-prototype-union-large-this        22.5983+-0.5920           22.2471+-0.8823 
         might be 1.0158x faster
set-prototype-union-large-other       42.3181+-0.7250     ^     29.8346+-0.7372 
       ^ definitely 1.4184x faster
set-prototype-union                   58.2014+-6.6992     ^     43.7404+-0.4108 
       ^ definitely 1.3306x faster

DFG/FTL JIT:
                                         TipOfTree                  Patched

set-prototype-union-large-this        18.2200+-0.3486           18.1483+-0.5727
set-prototype-union-large-other       30.3610+-0.7365     ^     23.4165+-0.7398 
       ^ definitely 1.2966x faster
set-prototype-union                   38.6149+-0.5740     ^     32.5765+-1.2320 
       ^ definitely 1.1854x faster

* JSTests/microbenchmarks/set-prototype-union-large-other.js: Added.
(shouldBe):
(set let):
* JSTests/microbenchmarks/set-prototype-union-large-this.js: Added.
(shouldBe):
(set let):
* JSTests/microbenchmarks/set-prototype-union.js: Added.
(shouldBe):
(set let):
* JSTests/stress/set-prototype-union-empty-sets.js: Added.
(shouldBe):
* JSTests/stress/set-prototype-union-generic-object.js: Added.
(shouldBe):
(let.setLikeObject.has):
(let.setLikeObject.return.next):
(let.setLikeObject.keys):
(shouldThrow.set1.union):
(shouldThrow):
* JSTests/stress/set-prototype-union-iterator-effects.js: Added.
(shouldBe):
(main.let.otherObject.has):
(main.let.otherObject.return.next):
(main.let.otherObject.keys):
* JSTests/stress/set-union-cursor-reference.js: Added.
(shouldBe):
(main.try.const.result.set union.):
(main.try.const.result.set union):
(main.set catch):
* JSTests/stress/set-union-iteration-reference.js: Added.
(shouldBe):
(main.try.set union.):
(main.try.set union):
(main.set catch):
* JSTests/stress/set-union-reference.js: Added.
(shouldBe):
(main.try.set union):
(main.set catch):
* Source/JavaScriptCore/builtins/SetPrototype.js:
(union.wrapper.return.next): Deleted.
(union.wrapper.iterator): Deleted.
(union): Deleted.
* Source/JavaScriptCore/runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
(JSC::fastSetUnion):
(JSC::JSC_DEFINE_HOST_FUNCTION):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to