[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