Index: src/builtins/builtins-string-gen.cc |
diff --git a/src/builtins/builtins-string-gen.cc b/src/builtins/builtins-string-gen.cc |
index 5b457b7083b27fc469ff67dbf9a965da05fab93d..97665a6390558803374c91ceae5cbc495924359a 100644 |
--- a/src/builtins/builtins-string-gen.cc |
+++ b/src/builtins/builtins-string-gen.cc |
@@ -732,7 +732,7 @@ TF_BUILTIN(StringPrototypeConcat, CodeStubAssembler) { |
arguments.ForEach( |
CodeStubAssembler::VariableList({&var_result}, zone()), |
[this, context, &var_result](Node* arg) { |
- arg = CallStub(CodeFactory::ToString(isolate()), context, arg); |
+ arg = ToString_Inline(context, arg); |
var_result.Bind(CallStub(CodeFactory::StringAdd(isolate()), context, |
var_result.value(), arg)); |
}); |
@@ -1149,9 +1149,7 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) { |
MaybeCallFunctionAtSymbol( |
context, search, isolate()->factory()->replace_symbol(), |
[=]() { |
- Callable tostring_callable = CodeFactory::ToString(isolate()); |
- Node* const subject_string = |
- CallStub(tostring_callable, context, receiver); |
+ Node* const subject_string = ToString_Inline(context, receiver); |
Callable replace_callable = CodeFactory::RegExpReplace(isolate()); |
return CallStub(replace_callable, context, search, subject_string, |
@@ -1164,11 +1162,10 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) { |
// Convert {receiver} and {search} to strings. |
- Callable tostring_callable = CodeFactory::ToString(isolate()); |
Callable indexof_callable = CodeFactory::StringIndexOf(isolate()); |
- Node* const subject_string = CallStub(tostring_callable, context, receiver); |
- Node* const search_string = CallStub(tostring_callable, context, search); |
+ Node* const subject_string = ToString_Inline(context, receiver); |
+ Node* const search_string = ToString_Inline(context, search); |
Node* const subject_length = LoadStringLength(subject_string); |
Node* const search_length = LoadStringLength(search_string); |
@@ -1222,7 +1219,7 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) { |
// TODO(jgruber): Could introduce ToStringSideeffectsStub which only |
// performs observable parts of ToString. |
- CallStub(tostring_callable, context, replace); |
+ ToString_Inline(context, replace); |
Goto(&return_subject); |
BIND(&return_subject); |
@@ -1265,8 +1262,7 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) { |
Node* const replacement = |
CallJS(call_callable, context, replace, UndefinedConstant(), |
search_string, match_start_index, subject_string); |
- Node* const replacement_string = |
- CallStub(tostring_callable, context, replacement); |
+ Node* const replacement_string = ToString_Inline(context, replacement); |
var_result.Bind(CallStub(stringadd_callable, context, var_result.value(), |
replacement_string)); |
Goto(&out); |
@@ -1274,7 +1270,7 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) { |
BIND(&if_notcallablereplace); |
{ |
- Node* const replace_string = CallStub(tostring_callable, context, replace); |
+ Node* const replace_string = ToString_Inline(context, replace); |
Node* const replacement = |
GetSubstitution(context, subject_string, match_start_index, |
match_end_index, replace_string); |
@@ -1311,9 +1307,7 @@ TF_BUILTIN(StringPrototypeSplit, StringBuiltinsAssembler) { |
MaybeCallFunctionAtSymbol( |
context, separator, isolate()->factory()->split_symbol(), |
[=]() { |
- Callable tostring_callable = CodeFactory::ToString(isolate()); |
- Node* const subject_string = |
- CallStub(tostring_callable, context, receiver); |
+ Node* const subject_string = ToString_Inline(context, receiver); |
Callable split_callable = CodeFactory::RegExpSplit(isolate()); |
return CallStub(split_callable, context, separator, subject_string, |
@@ -1329,14 +1323,12 @@ TF_BUILTIN(StringPrototypeSplit, StringBuiltinsAssembler) { |
// but AFAIK there should not be a difference since arrays are capped at Smi |
// lengths. |
- Callable tostring_callable = CodeFactory::ToString(isolate()); |
- Node* const subject_string = CallStub(tostring_callable, context, receiver); |
+ Node* const subject_string = ToString_Inline(context, receiver); |
Node* const limit_number = |
Select(IsUndefined(limit), [=]() { return SmiConstant(Smi::kMaxValue); }, |
[=]() { return ToUint32(context, limit); }, |
MachineRepresentation::kTagged); |
- Node* const separator_string = |
- CallStub(tostring_callable, context, separator); |
+ Node* const separator_string = ToString_Inline(context, separator); |
// Shortcut for {limit} == 0. |
{ |