[webkit-changes] [WebKit/WebKit] 672447: [JSC] Handle Rope + Rope fast resolution with stac...

Yusuke Suzuki noreply at github.com
Mon Dec 23 17:24:13 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 672447b6017b171a8228fa7f6fb635c0e076421c
      https://github.com/WebKit/WebKit/commit/672447b6017b171a8228fa7f6fb635c0e076421c
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-12-23 (Mon, 23 Dec 2024)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSString.cpp
    M Source/JavaScriptCore/runtime/JSString.h
    M Source/JavaScriptCore/runtime/JSStringInlines.h

  Log Message:
  -----------
  [JSC] Handle Rope + Rope fast resolution with stack check
https://bugs.webkit.org/show_bug.cgi?id=285115
rdar://problem/141963938

Reviewed by Yijia Huang.

We found that rope + rope is common. And we should not use very slow
workqueue based approach if stack has enough room. This patch adds fast
path for rope + rope resolution and use stack height check before
doing non-tail-calls.

* Source/JavaScriptCore/runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeInternalNoSubstring const):
(JSC::JSRopeString::resolveRopeToAtomString const):
(JSC::JSRopeString::resolveRopeToExistingAtomString const):
(JSC::JSRopeString::resolveRopeWithFunction const):
* Source/JavaScriptCore/runtime/JSString.h:
* Source/JavaScriptCore/runtime/JSStringInlines.h:
(JSC::JSRopeString::resolveToBufferSlow):
(JSC::JSRopeString::resolveToBuffer):
(JSC::jsAtomString):

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



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


More information about the webkit-changes mailing list