1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:07:46 +00:00

LibJS: Port this_string_value() to NonnullGCPtr

This commit is contained in:
Linus Groh 2023-04-15 16:06:18 +02:00
parent 9c6eba771a
commit dd91f1a5a5

View file

@ -228,18 +228,18 @@ ThrowCompletionOr<void> StringPrototype::initialize(Realm& realm)
}
// thisStringValue ( value ), https://tc39.es/ecma262/#thisstringvalue
static ThrowCompletionOr<PrimitiveString*> this_string_value(VM& vm, Value value)
static ThrowCompletionOr<NonnullGCPtr<PrimitiveString>> this_string_value(VM& vm, Value value)
{
// 1. If value is a String, return value.
if (value.is_string())
return &value.as_string();
return value.as_string();
// 2. If value is an Object and value has a [[StringData]] internal slot, then
if (value.is_object() && is<StringObject>(value.as_object())) {
// a. Let s be value.[[StringData]].
// b. Assert: s is a String.
// c. Return s.
return &static_cast<StringObject&>(value.as_object()).primitive_string();
return static_cast<StringObject&>(value.as_object()).primitive_string();
}
// 3. Throw a TypeError exception.