1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:07:34 +00:00

LibJS: Replace standalone js_string() with PrimitiveString::create()

Note that js_rope_string() has been folded into this, the old name was
misleading - it would not always create a rope string, only if both
sides are not empty strings. Use a three-argument create() overload
instead.
This commit is contained in:
Linus Groh 2022-12-06 22:17:27 +00:00
parent 5db38d7ba1
commit 525f22d018
144 changed files with 656 additions and 672 deletions

View file

@ -43,9 +43,9 @@ ThrowCompletionOr<Value> StringConstructor::call()
{
auto& vm = this->vm();
if (!vm.argument_count())
return js_string(heap(), "");
return PrimitiveString::create(vm, "");
if (vm.argument(0).is_symbol())
return js_string(vm, vm.argument(0).as_symbol().to_deprecated_string());
return PrimitiveString::create(vm, vm.argument(0).as_symbol().to_deprecated_string());
return TRY(vm.argument(0).to_primitive_string(vm));
}
@ -57,7 +57,7 @@ ThrowCompletionOr<Object*> StringConstructor::construct(FunctionObject& new_targ
PrimitiveString* primitive_string;
if (!vm.argument_count())
primitive_string = js_string(vm, "");
primitive_string = PrimitiveString::create(vm, "");
else
primitive_string = TRY(vm.argument(0).to_primitive_string(vm));
auto* prototype = TRY(get_prototype_from_constructor(vm, new_target, &Intrinsics::string_prototype));
@ -73,7 +73,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringConstructor::raw)
auto literal_segments = TRY(length_of_array_like(vm, *raw));
if (literal_segments == 0)
return js_string(vm, "");
return PrimitiveString::create(vm, "");
auto const number_of_substituions = vm.argument_count() - 1;
@ -94,7 +94,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringConstructor::raw)
builder.append(next_sub);
}
}
return js_string(vm, builder.build());
return PrimitiveString::create(vm, builder.build());
}
// 22.1.2.1 String.fromCharCode ( ...codeUnits ), https://tc39.es/ecma262/#sec-string.fromcharcode
@ -106,7 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringConstructor::from_char_code)
for (size_t i = 0; i < vm.argument_count(); ++i)
string.append(TRY(vm.argument(i).to_u16(vm)));
return js_string(vm, Utf16String(move(string)));
return PrimitiveString::create(vm, Utf16String(move(string)));
}
// 22.1.2.2 String.fromCodePoint ( ...codePoints ), https://tc39.es/ecma262/#sec-string.fromcodepoint
@ -126,7 +126,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringConstructor::from_code_point)
AK::code_point_to_utf16(string, static_cast<u32>(code_point));
}
return js_string(vm, Utf16String(move(string)));
return PrimitiveString::create(vm, Utf16String(move(string)));
}
}