Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 54ed7bdc67272428e6c057e65aac9f7c8ac1fa3a
      
https://github.com/WebKit/WebKit/commit/54ed7bdc67272428e6c057e65aac9f7c8ac1fa3a
  Author: Sosuke Suzuki <[email protected]>
  Date:   2025-09-06 (Sat, 06 Sep 2025)

  Changed paths:
    A JSTests/stress/set-prototype-isSupersetOf-empty-sets.js
    A JSTests/stress/set-prototype-isSupersetOf-generic-object.js
    A JSTests/stress/set-prototype-isSupersetOf-iterator-effects.js
    A JSTests/stress/set-prototype-isSupersetOf-large-sets.js
    A JSTests/stress/set-prototype-isSupersetOf-property-access-order.js
    A JSTests/stress/set-prototype-isSupersetOf-reference.js
    A JSTests/stress/set-prototype-isSupersetOf-special-values.js
    M Source/JavaScriptCore/builtins/SetPrototype.js
    M Source/JavaScriptCore/runtime/SetPrototype.cpp

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

Reviewed by Yusuke Suzuki.

This patch changes to implement `Set.prototype.isSupersetOf` in C++.

                          TipOfTree                  Patched

set-isSupersetOf        5.0179+-0.1692     ^      1.8690+-0.1636        ^ 
definitely 2.6848x faster

* JSTests/stress/set-prototype-isSupersetOf-empty-sets.js: Added.
(shouldBe):
* JSTests/stress/set-prototype-isSupersetOf-generic-object.js: Added.
(shouldBe):
(let.setLikeObject.has):
(let.setLikeObject.return.next):
(let.setLikeObject.keys):
(let.partialMatch.has):
(let.partialMatch.return.next):
(let.partialMatch.keys):
(let.tooBig.has):
(let.tooBig.return.next):
(let.tooBig.keys):
(shouldThrow.set1.isSupersetOf):
(shouldThrow):
* JSTests/stress/set-prototype-isSupersetOf-iterator-effects.js: Added.
(shouldBe):
(main.let.otherObject.has):
(main.let.otherObject.return.next):
(main.let.otherObject.keys):
(testIteratorModification.let.otherObject.has):
(testIteratorModification.let.otherObject.return.next):
(testIteratorModification.let.otherObject.keys):
(testIteratorModification):
* JSTests/stress/set-prototype-isSupersetOf-large-sets.js: Added.
(shouldBe):
(let.perfSetLike.has):
(let.perfSetLike.return.next):
(let.perfSetLike.keys):
(set let):
* JSTests/stress/set-prototype-isSupersetOf-property-access-order.js: Added.
(shouldBe):
(main.let.obj.get size):
(main.let.obj.get has):
(main.let.obj.get keys.return.next):
(main.let.obj.get keys):
(main.let.set new):
(testEarlyReturn.let.obj.get size):
(testEarlyReturn.let.obj.get has):
(testEarlyReturn.let.obj.get keys):
(testEarlyReturn):
* JSTests/stress/set-prototype-isSupersetOf-reference.js: Added.
(shouldBe):
(main.try.set isSupersetOf):
(main.try.set isSupersetOf.):
(main.const.set new):
(main.set catch):
(main):
* JSTests/stress/set-prototype-isSupersetOf-special-values.js: Added.
(shouldBe):
(let.setLike.has):
(let.setLike.return.next):
(let.setLike.keys):
(let.set new):
(let.symbolSetLike.has):
(let.symbolSetLike.return.next):
(let.symbolSetLike.keys):
(let.result.set isSupersetOf):
(let.objectSetLike.has):
(let.objectSetLike.return.next):
(let.objectSetLike.keys):
(let.objectSetLikeDifferent.has):
(let.objectSetLikeDifferent.return.next):
(let.objectSetLikeDifferent.keys):
* Source/JavaScriptCore/builtins/SetPrototype.js:
(isSupersetOf.wrapper.iterator): Deleted.
(isSupersetOf): Deleted.
* Source/JavaScriptCore/runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
(JSC::fastSetIsSupersetOf):
(JSC::JSC_DEFINE_HOST_FUNCTION):

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



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

Reply via email to