LibJS: Convert SymbolObject::create() to NonnullGCPtr

This commit is contained in:
Linus Groh 2022-12-13 20:49:50 +00:00
parent 049e99b5f0
commit dd3d133968
Notes: sideshowbarker 2024-07-17 03:16:33 +09:00
3 changed files with 4 additions and 4 deletions

View file

@ -10,9 +10,9 @@
namespace JS {
SymbolObject* SymbolObject::create(Realm& realm, Symbol& primitive_symbol)
NonnullGCPtr<SymbolObject> SymbolObject::create(Realm& realm, Symbol& primitive_symbol)
{
return realm.heap().allocate<SymbolObject>(realm, primitive_symbol, *realm.intrinsics().symbol_prototype());
return *realm.heap().allocate<SymbolObject>(realm, primitive_symbol, *realm.intrinsics().symbol_prototype());
}
SymbolObject::SymbolObject(Symbol& symbol, Object& prototype)

View file

@ -15,7 +15,7 @@ class SymbolObject : public Object {
JS_OBJECT(SymbolObject, Object);
public:
static SymbolObject* create(Realm&, Symbol&);
static NonnullGCPtr<SymbolObject> create(Realm&, Symbol&);
virtual ~SymbolObject() override = default;

View file

@ -544,7 +544,7 @@ ThrowCompletionOr<Object*> Value::to_object(VM& vm) const
// 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.
return SymbolObject::create(realm, const_cast<JS::Symbol&>(as_symbol()));
return SymbolObject::create(realm, const_cast<JS::Symbol&>(as_symbol())).ptr();
// BigInt
case BIGINT_TAG:
// Return a new BigInt object whose [[BigIntData]] internal slot is set to argument. See 21.2 for a description of BigInt objects.