mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 21:57:35 +00:00
LibJS: Convert StringObject::create() to NonnullGCPtr
This commit is contained in:
parent
337c55a893
commit
049e99b5f0
4 changed files with 5 additions and 5 deletions
|
@ -61,7 +61,7 @@ ThrowCompletionOr<Object*> StringConstructor::construct(FunctionObject& new_targ
|
|||
else
|
||||
primitive_string = TRY(vm.argument(0).to_primitive_string(vm));
|
||||
auto* prototype = TRY(get_prototype_from_constructor(vm, new_target, &Intrinsics::string_prototype));
|
||||
return StringObject::create(realm, *primitive_string, *prototype);
|
||||
return StringObject::create(realm, *primitive_string, *prototype).ptr();
|
||||
}
|
||||
|
||||
// 22.1.2.4 String.raw ( template, ...substitutions ), https://tc39.es/ecma262/#sec-string.raw
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
namespace JS {
|
||||
|
||||
// 10.4.3.4 StringCreate ( value, prototype ), https://tc39.es/ecma262/#sec-stringcreate
|
||||
StringObject* StringObject::create(Realm& realm, PrimitiveString& primitive_string, Object& prototype)
|
||||
NonnullGCPtr<StringObject> StringObject::create(Realm& realm, PrimitiveString& primitive_string, Object& prototype)
|
||||
{
|
||||
return realm.heap().allocate<StringObject>(realm, primitive_string, prototype);
|
||||
return *realm.heap().allocate<StringObject>(realm, primitive_string, prototype);
|
||||
}
|
||||
|
||||
StringObject::StringObject(PrimitiveString& string, Object& prototype)
|
||||
|
|
|
@ -14,7 +14,7 @@ class StringObject : public Object {
|
|||
JS_OBJECT(StringObject, Object);
|
||||
|
||||
public:
|
||||
static StringObject* create(Realm&, PrimitiveString&, Object& prototype);
|
||||
static NonnullGCPtr<StringObject> create(Realm&, PrimitiveString&, Object& prototype);
|
||||
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~StringObject() override = default;
|
||||
|
|
|
@ -540,7 +540,7 @@ ThrowCompletionOr<Object*> Value::to_object(VM& vm) const
|
|||
// String
|
||||
case STRING_TAG:
|
||||
// Return a new String object whose [[StringData]] internal slot is set to argument. See 22.1 for a description of String objects.
|
||||
return StringObject::create(realm, const_cast<JS::PrimitiveString&>(as_string()), *realm.intrinsics().string_prototype());
|
||||
return StringObject::create(realm, const_cast<JS::PrimitiveString&>(as_string()), *realm.intrinsics().string_prototype()).ptr();
|
||||
// Symbol
|
||||
case SYMBOL_TAG:
|
||||
// Return a new Symbol object whose [[SymbolData]] internal slot is set to argument. See 20.4 for a description of Symbol objects.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue