Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 62667c9f166eeb70cfb472f46e02a8dbcaca5587
      
https://github.com/WebKit/WebKit/commit/62667c9f166eeb70cfb472f46e02a8dbcaca5587
  Author: Sosuke Suzuki <[email protected]>
  Date:   2025-12-30 (Tue, 30 Dec 2025)

  Changed paths:
    A JSTests/microbenchmarks/string-prototype-padEnd-multiple-chars-resolved.js
    A JSTests/microbenchmarks/string-prototype-padEnd-single-char-resolved.js
    A 
JSTests/microbenchmarks/string-prototype-padStart-multiple-chars-resolved.js
    A JSTests/microbenchmarks/string-prototype-padStart-single-char-resolved.js
    A JSTests/stress/string-pad-start-end.js
    M Source/JavaScriptCore/builtins/StringPrototype.js
    M Source/JavaScriptCore/runtime/StringPrototype.cpp

  Log Message:
  -----------
  [JSC] Implement `String#padStart` and `String#padEnd` in C++
https://bugs.webkit.org/show_bug.cgi?id=304732

Reviewed by Yusuke Suzuki.

This patch changes to implement `String#padStart` and `String#padEnd`.

                                                  TipOfTree                  
Patched

string-prototype-padStart-single-char-resolved
                                               49.7305+-0.9690     ^     
45.6120+-2.2737        ^ definitely 1.0903x faster
string-prototype-padEnd-multiple-chars-resolved
                                               90.9060+-17.0049    ^     
45.5150+-0.9702        ^ definitely 1.9973x faster
string-prototype-padStart-multiple-chars-resolved
                                               79.6428+-4.2212     ^     
46.3482+-1.8191        ^ definitely 1.7184x faster
string-prototype-padEnd-single-char-resolved
                                               51.1737+-10.9220          
47.7548+-8.5827          might be 1.0716x faster

Test: JSTests/stress/string-pad-start-end.js

* JSTests/microbenchmarks/string-prototype-padEnd-multiple-chars-resolved.js: 
Added.
(test):
* JSTests/microbenchmarks/string-prototype-padEnd-single-char-resolved.js: 
Added.
(test):
* JSTests/microbenchmarks/string-prototype-padStart-multiple-chars-resolved.js: 
Added.
(test):
* JSTests/microbenchmarks/string-prototype-padStart-single-char-resolved.js: 
Added.
(test):
* JSTests/stress/string-pad-start-end.js: Added.
(shouldBe):
(testPadStartVariants):
(testPadEndVariants):
* Source/JavaScriptCore/builtins/StringPrototype.js:
(linkTimeConstant.repeatCharactersSlowPath): Deleted.
(padStart): Deleted.
(padEnd): Deleted.
* Source/JavaScriptCore/runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::createFillerString):
(JSC::padString):
(JSC::JSC_DEFINE_HOST_FUNCTION):

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



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

Reply via email to