Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dd3af5604c58cde8de0ed7632419d6f386b1b3d3
https://github.com/WebKit/WebKit/commit/dd3af5604c58cde8de0ed7632419d6f386b1b3d3
Author: Keita Nonaka <[email protected]>
Date: 2025-10-19 (Sun, 19 Oct 2025)
Changed paths:
M JSTests/microbenchmarks/string-substring-constants-binary.js
M JSTests/microbenchmarks/string-substring-constants-identity.js
M JSTests/microbenchmarks/string-substring-constants.js
A JSTests/microbenchmarks/string-substring-infinity.js
M JSTests/microbenchmarks/string-substring-length-constant.js
A JSTests/microbenchmarks/string-substring-nan.js
M JSTests/microbenchmarks/string-substring.js
A JSTests/stress/string-substring.js
M Source/JavaScriptCore/runtime/StringPrototype.cpp
Log Message:
-----------
[JSC] Conform `String.prototype.substring` to TC39 spec
https://bugs.webkit.org/show_bug.cgi?id=300578
Reviewed by Yusuke Suzuki and Darin Adler.
This patch conforms `String.prototype.substring` to TC39 spec [1],
such as using `ToIntegerOrInfinity` instead of `ToNumber`.
This patch introduces no performance regressions.
TipOfTree
Patched Ratio
string-substring-constants 0.4274+-0.0569
0.4026+-0.0112 might be 1.0617x faster
string-substring-constants-binary 0.3904+-0.0315 ?
0.3952+-0.0442 ? might be 1.0122x slower
string-substring-infinity 0.5556+-0.0095
0.5314+-0.0269 might be 1.0455x faster
string-substring-length-constant 0.3914+-0.0278 ?
0.4163+-0.0378 ? might be 1.0636x slower
string-substring-nan 0.4938+-0.0259
0.4894+-0.0293
string-substring-constants-identity 0.3593+-0.0146
0.3423+-0.0323 might be 1.0496x faster
[1]: https://tc39.es/ecma262/#sec-string.prototype.substring
Tests: JSTests/microbenchmarks/string-substring-infinity.js
JSTests/microbenchmarks/string-substring-nan.js
JSTests/stress/string-substring.js
* JSTests/microbenchmarks/string-substring-constants-binary.js:
(shouldBe):
(test1):
* JSTests/microbenchmarks/string-substring-constants-identity.js:
(shouldBe):
(test1):
* JSTests/microbenchmarks/string-substring-constants.js:
(shouldBe):
(test1):
* JSTests/microbenchmarks/string-substring-infinity.js: Added.
(shouldBe):
(test):
(i.test):
* JSTests/microbenchmarks/string-substring-length-constant.js:
(shouldBe):
(test1):
* JSTests/microbenchmarks/string-substring-nan.js: Added.
(shouldBe):
(test):
(i.test):
* JSTests/microbenchmarks/string-substring.js:
(shouldBe):
(test1):
* JSTests/stress/string-substring.js: Added.
(shouldBe):
* Source/JavaScriptCore/runtime/StringPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Canonical link: https://commits.webkit.org/301783@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