فهرست منبع

LibJS: Convert BigIntObject::create() to NonnullGCPtr

Linus Groh 2 سال پیش
والد
کامیت
cf0a24ff0c

+ 2 - 2
Userland/Libraries/LibJS/Runtime/BigIntObject.cpp

@@ -9,9 +9,9 @@
 
 namespace JS {
 
-BigIntObject* BigIntObject::create(Realm& realm, BigInt& bigint)
+NonnullGCPtr<BigIntObject> BigIntObject::create(Realm& realm, BigInt& bigint)
 {
-    return realm.heap().allocate<BigIntObject>(realm, bigint, *realm.intrinsics().bigint_prototype());
+    return *realm.heap().allocate<BigIntObject>(realm, bigint, *realm.intrinsics().bigint_prototype());
 }
 
 BigIntObject::BigIntObject(BigInt& bigint, Object& prototype)

+ 2 - 2
Userland/Libraries/LibJS/Runtime/BigIntObject.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020, Linus Groh <linusg@serenityos.org>
+ * Copyright (c) 2020-2022, Linus Groh <linusg@serenityos.org>
  *
  * SPDX-License-Identifier: BSD-2-Clause
  */
@@ -15,7 +15,7 @@ class BigIntObject final : public Object {
     JS_OBJECT(BigIntObject, Object);
 
 public:
-    static BigIntObject* create(Realm&, BigInt&);
+    static NonnullGCPtr<BigIntObject> create(Realm&, BigInt&);
 
     virtual ~BigIntObject() override = default;
 

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Value.cpp

@@ -548,7 +548,7 @@ ThrowCompletionOr<Object*> Value::to_object(VM& vm) const
     // 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.
-        return BigIntObject::create(realm, const_cast<JS::BigInt&>(as_bigint()));
+        return BigIntObject::create(realm, const_cast<JS::BigInt&>(as_bigint())).ptr();
     // Object
     case OBJECT_TAG:
         // Return argument.