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