Index: vm/object.h |
=================================================================== |
--- vm/object.h (revision 17436) |
+++ vm/object.h (working copy) |
@@ -39,21 +39,10 @@ |
#define CHECK_HANDLE() |
#endif |
-#define OBJECT_IMPLEMENTATION(object, super) \ |
+#define BASE_OBJECT_IMPLEMENTATION(object, super) \ |
public: /* NOLINT */ \ |
Raw##object* raw() const { return reinterpret_cast<Raw##object*>(raw_); } \ |
- void operator=(Raw##object* value) { \ |
- initializeHandle(this, value); \ |
- } \ |
bool Is##object() const { return true; } \ |
- void operator^=(RawObject* value) { \ |
- initializeHandle(this, value); \ |
- ASSERT(IsNull() || Is##object()); \ |
- } \ |
- void operator|=(RawObject* value) { \ |
- raw_ = value; \ |
- CHECK_HANDLE(); \ |
- } \ |
static object& Handle(Isolate* isolate, Raw##object* raw_ptr) { \ |
object* obj = \ |
reinterpret_cast<object*>(VMHandles::AllocateHandle(isolate)); \ |
@@ -88,6 +77,12 @@ |
initializeHandle(obj, raw_ptr); \ |
return *obj; \ |
} \ |
+ static object* ReadOnlyHandle(Isolate* isolate) { \ |
+ object* obj = reinterpret_cast<object*>( \ |
+ Dart::AllocateReadOnlyHandle()); \ |
+ initializeHandle(obj, object::null()); \ |
+ return obj; \ |
+ } \ |
static object& ZoneHandle() { \ |
return ZoneHandle(Isolate::Current(), object::null()); \ |
} \ |
@@ -119,8 +114,6 @@ |
} \ |
virtual const char* ToCString() const; \ |
static const ClassId kClassId = k##object##Cid; \ |
- protected: /* NOLINT */ \ |
- object() : super() {} \ |
private: /* NOLINT */ \ |
/* Initialize the handle based on the raw_ptr in the presence of null. */ \ |
static void initializeHandle(object* obj, RawObject* raw_ptr) { \ |
@@ -146,6 +139,19 @@ |
Snapshot::Kind); \ |
friend class SnapshotReader; \ |
+#define OBJECT_IMPLEMENTATION(object, super) \ |
+ public: /* NOLINT */ \ |
+ void operator=(Raw##object* value) { \ |
+ initializeHandle(this, value); \ |
+ } \ |
+ void operator^=(RawObject* value) { \ |
+ initializeHandle(this, value); \ |
+ ASSERT(IsNull() || Is##object()); \ |
+ } \ |
+ protected: /* NOLINT */ \ |
+ object() : super() {} \ |
+ BASE_OBJECT_IMPLEMENTATION(object, super) \ |
+ |
#define HEAP_OBJECT_IMPLEMENTATION(object, super) \ |
OBJECT_IMPLEMENTATION(object, super); \ |
Raw##object* raw_ptr() const { \ |
@@ -155,6 +161,27 @@ |
SNAPSHOT_READER_SUPPORT(object) \ |
friend class StackFrame; \ |
+// This macro is used to denote types that do not have a sub-type. |
+#define FINAL_HEAP_OBJECT_IMPLEMENTATION(object, super) \ |
+ public: /* NOLINT */ \ |
+ void operator=(Raw##object* value) { \ |
+ raw_ = value; \ |
+ CHECK_HANDLE(); \ |
+ } \ |
+ void operator^=(RawObject* value) { \ |
+ raw_ = value; \ |
+ CHECK_HANDLE(); \ |
+ } \ |
+ private: /* NOLINT */ \ |
+ object() : super() {} \ |
+ BASE_OBJECT_IMPLEMENTATION(object, super) \ |
+ Raw##object* raw_ptr() const { \ |
+ ASSERT(raw() != null()); \ |
+ return raw()->ptr(); \ |
+ } \ |
+ SNAPSHOT_READER_SUPPORT(object) \ |
+ friend class StackFrame; \ |
+ |
class Object { |
public: |
virtual ~Object() { } |
@@ -860,7 +887,7 @@ |
const AbstractTypeArguments& other_type_arguments, |
Error* malformed_error) const; |
- HEAP_OBJECT_IMPLEMENTATION(Class, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Class, Object); |
friend class AbstractType; |
friend class Instance; |
friend class Object; |
@@ -894,7 +921,7 @@ |
static RawUnresolvedClass* New(); |
- HEAP_OBJECT_IMPLEMENTATION(UnresolvedClass, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(UnresolvedClass, Object); |
friend class Class; |
}; |
@@ -1123,7 +1150,7 @@ |
void set_script(const Script& value) const; |
static RawPatchClass* New(); |
- HEAP_OBJECT_IMPLEMENTATION(PatchClass, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(PatchClass, Object); |
friend class Class; |
}; |
@@ -1601,7 +1628,7 @@ |
const AbstractTypeArguments& other_type_arguments, |
Error* malformed_error) const; |
- HEAP_OBJECT_IMPLEMENTATION(Function, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Function, Object); |
friend class Class; |
}; |
@@ -1636,7 +1663,7 @@ |
static RawClosureData* New(); |
- HEAP_OBJECT_IMPLEMENTATION(ClosureData, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ClosureData, Object); |
friend class Class; |
friend class Function; |
friend class HeapProfiler; |
@@ -1664,7 +1691,7 @@ |
static RawRedirectionData* New(); |
- HEAP_OBJECT_IMPLEMENTATION(RedirectionData, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(RedirectionData, Object); |
friend class Class; |
friend class Function; |
friend class HeapProfiler; |
@@ -1758,7 +1785,7 @@ |
} |
static RawField* New(); |
- HEAP_OBJECT_IMPLEMENTATION(Field, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Field, Object); |
friend class Class; |
friend class HeapProfiler; |
}; |
@@ -1782,7 +1809,7 @@ |
void set_literal(const String& literal) const; |
void set_value(const Object& value) const; |
- HEAP_OBJECT_IMPLEMENTATION(LiteralToken, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(LiteralToken, Object); |
friend class Class; |
}; |
@@ -1860,7 +1887,7 @@ |
static RawTokenStream* New(); |
static void DataFinalizer(void *peer); |
- HEAP_OBJECT_IMPLEMENTATION(TokenStream, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(TokenStream, Object); |
friend class Class; |
}; |
@@ -1911,7 +1938,7 @@ |
void set_tokens(const TokenStream& value) const; |
static RawScript* New(); |
- HEAP_OBJECT_IMPLEMENTATION(Script, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Script, Object); |
friend class Class; |
}; |
@@ -2104,7 +2131,7 @@ |
bool import_core_lib); |
RawObject* LookupEntry(const String& name, intptr_t *index) const; |
- HEAP_OBJECT_IMPLEMENTATION(Library, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Library, Object); |
friend class Class; |
friend class Debugger; |
friend class DictionaryIterator; |
@@ -2141,7 +2168,7 @@ |
void set_num_imports(intptr_t value) const; |
static RawLibraryPrefix* New(); |
- HEAP_OBJECT_IMPLEMENTATION(LibraryPrefix, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(LibraryPrefix, Object); |
friend class Class; |
friend class Isolate; |
}; |
@@ -2166,7 +2193,7 @@ |
private: |
static RawNamespace* New(); |
- HEAP_OBJECT_IMPLEMENTATION(Namespace, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Namespace, Object); |
friend class Class; |
}; |
@@ -2222,7 +2249,7 @@ |
// and links the two in a GC safe manner. |
static RawInstructions* New(intptr_t size); |
- HEAP_OBJECT_IMPLEMENTATION(Instructions, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Instructions, Object); |
friend class Class; |
friend class Code; |
}; |
@@ -2258,7 +2285,7 @@ |
static RawLocalVarDescriptors* New(intptr_t num_variables); |
private: |
- HEAP_OBJECT_IMPLEMENTATION(LocalVarDescriptors, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(LocalVarDescriptors, Object); |
friend class Class; |
}; |
@@ -2356,7 +2383,7 @@ |
return reinterpret_cast<RawSmi**>(EntryAddr(index, entry_offset)); |
} |
- HEAP_OBJECT_IMPLEMENTATION(PcDescriptors, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors, Object); |
friend class Class; |
}; |
@@ -2409,7 +2436,7 @@ |
bool GetBit(intptr_t bit_index) const; |
void SetBit(intptr_t bit_index, bool value) const; |
- HEAP_OBJECT_IMPLEMENTATION(Stackmap, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Stackmap, Object); |
friend class BitmapBuilder; |
friend class Class; |
}; |
@@ -2455,7 +2482,7 @@ |
static const intptr_t kMaxHandlers = 1024 * 1024; |
void set_handled_types_data(const Array& value) const; |
- HEAP_OBJECT_IMPLEMENTATION(ExceptionHandlers, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExceptionHandlers, Object); |
friend class Class; |
}; |
@@ -2522,7 +2549,7 @@ |
void SetLength(intptr_t value) const; |
- HEAP_OBJECT_IMPLEMENTATION(DeoptInfo, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(DeoptInfo, Object); |
friend class Class; |
}; |
@@ -2755,7 +2782,7 @@ |
// and links the two in a GC safe manner. |
static RawCode* New(intptr_t pointer_offsets_length); |
- HEAP_OBJECT_IMPLEMENTATION(Code, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Code, Object); |
friend class Class; |
}; |
@@ -2816,7 +2843,7 @@ |
raw_ptr()->num_variables_ = num_variables; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Context, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Context, Object); |
friend class Class; |
}; |
@@ -2888,7 +2915,7 @@ |
return reinterpret_cast<RawContextScope::VariableDesc*>(raw_addr); |
} |
- HEAP_OBJECT_IMPLEMENTATION(ContextScope, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ContextScope, Object); |
friend class Class; |
}; |
@@ -3025,7 +3052,7 @@ |
intptr_t TestEntryLength() const; |
void WriteSentinel() const; |
- HEAP_OBJECT_IMPLEMENTATION(ICData, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ICData, Object); |
friend class Class; |
}; |
@@ -3079,7 +3106,7 @@ |
static inline RawObject* GetTargetFunction(const Array& array, |
intptr_t index); |
- HEAP_OBJECT_IMPLEMENTATION(MegamorphicCache, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(MegamorphicCache, Object); |
}; |
@@ -3123,7 +3150,7 @@ |
intptr_t TestEntryLength() const; |
- HEAP_OBJECT_IMPLEMENTATION(SubtypeTestCache, Object); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(SubtypeTestCache, Object); |
friend class Class; |
}; |
@@ -3157,7 +3184,7 @@ |
void set_message(const String& message) const; |
static RawApiError* New(); |
- HEAP_OBJECT_IMPLEMENTATION(ApiError, Error); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ApiError, Error); |
friend class Class; |
}; |
@@ -3182,7 +3209,7 @@ |
void set_message(const String& message) const; |
static RawLanguageError* New(); |
- HEAP_OBJECT_IMPLEMENTATION(LanguageError, Error); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(LanguageError, Error); |
friend class Class; |
}; |
@@ -3213,7 +3240,7 @@ |
void set_exception(const Instance& exception) const; |
void set_stacktrace(const Instance& stacktrace) const; |
- HEAP_OBJECT_IMPLEMENTATION(UnhandledException, Error); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(UnhandledException, Error); |
friend class Class; |
}; |
@@ -3237,7 +3264,7 @@ |
private: |
void set_message(const String& message) const; |
- HEAP_OBJECT_IMPLEMENTATION(UnwindError, Error); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(UnwindError, Error); |
friend class Class; |
}; |
@@ -3736,7 +3763,7 @@ |
private: |
void set_value(int64_t value) const; |
- HEAP_OBJECT_IMPLEMENTATION(Mint, Integer); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Mint, Integer); |
friend class Class; |
}; |
@@ -3817,7 +3844,7 @@ |
static RawBigint* Allocate(intptr_t length, Heap::Space space = Heap::kNew); |
- HEAP_OBJECT_IMPLEMENTATION(Bigint, Integer); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Bigint, Integer); |
friend class BigintOperations; |
friend class Class; |
}; |
@@ -3855,7 +3882,7 @@ |
private: |
void set_value(double value) const; |
- HEAP_OBJECT_IMPLEMENTATION(Double, Number); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Double, Number); |
friend class Class; |
}; |
@@ -4108,7 +4135,7 @@ |
CallbackType new_symbol, |
Snapshot::Kind kind); |
- HEAP_OBJECT_IMPLEMENTATION(String, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(String, Instance); |
friend class Class; |
friend class Symbols; |
@@ -4470,7 +4497,7 @@ |
// New should only be called to initialize the two legal bool values. |
static RawBool* New(bool value); |
- HEAP_OBJECT_IMPLEMENTATION(Bool, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Bool, Instance); |
friend class Class; |
friend class Object; // To initialize the true and false values. |
}; |
@@ -4574,7 +4601,7 @@ |
static RawImmutableArray* New(intptr_t len, Heap::Space space = Heap::kNew); |
private: |
- HEAP_OBJECT_IMPLEMENTATION(ImmutableArray, Array); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ImmutableArray, Array); |
friend class Class; |
}; |
@@ -4683,7 +4710,7 @@ |
static const int kDefaultInitialCapacity = 4; |
- HEAP_OBJECT_IMPLEMENTATION(GrowableObjectArray, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(GrowableObjectArray, Instance); |
friend class Array; |
friend class Class; |
}; |
@@ -4802,7 +4829,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Int8Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Int8Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -4854,7 +4881,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Uint8Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Uint8Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -4907,7 +4934,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Uint8ClampedArray, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Uint8ClampedArray, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -4959,7 +4986,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Int16Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Int16Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5011,7 +5038,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Uint16Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Uint16Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5063,7 +5090,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Int32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Int32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5115,7 +5142,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Uint32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Uint32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5167,7 +5194,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Int64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Int64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5219,7 +5246,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Uint64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Uint64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5271,7 +5298,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Float32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Float32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5323,7 +5350,7 @@ |
return reinterpret_cast<uint8_t*>(&raw_ptr()->data_) + byte_offset; |
} |
- HEAP_OBJECT_IMPLEMENTATION(Float64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Float64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5381,7 +5408,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalInt8Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalInt8Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5459,7 +5486,8 @@ |
Heap::Space space = Heap::kNew); |
private: |
- HEAP_OBJECT_IMPLEMENTATION(ExternalUint8ClampedArray, ExternalUint8Array); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalUint8ClampedArray, |
+ ExternalUint8Array); |
friend class Class; |
}; |
@@ -5516,7 +5544,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalInt16Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalInt16Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5574,7 +5602,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalUint16Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalUint16Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5632,7 +5660,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalInt32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalInt32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5690,7 +5718,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalUint32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalUint32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5748,7 +5776,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalInt64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalInt64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5806,7 +5834,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalUint64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalUint64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5864,7 +5892,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat32Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5922,7 +5950,7 @@ |
raw_ptr()->external_data_ = data; |
} |
- HEAP_OBJECT_IMPLEMENTATION(ExternalFloat64Array, ByteArray); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(ExternalFloat64Array, ByteArray); |
friend class ByteArray; |
friend class Class; |
}; |
@@ -5931,7 +5959,7 @@ |
// DartFunction represents the abstract Dart class 'Function'. |
class DartFunction : public Instance { |
private: |
- HEAP_OBJECT_IMPLEMENTATION(DartFunction, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(DartFunction, Instance); |
friend class Class; |
friend class Instance; |
}; |
@@ -6036,7 +6064,7 @@ |
void set_code_array(const Array& code_array) const; |
void set_pc_offset_array(const Array& pc_offset_array) const; |
- HEAP_OBJECT_IMPLEMENTATION(Stacktrace, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(Stacktrace, Instance); |
friend class Class; |
}; |
@@ -6116,7 +6144,7 @@ |
raw_ptr()->data_length_ = Smi::New(value); |
} |
- HEAP_OBJECT_IMPLEMENTATION(JSRegExp, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(JSRegExp, Instance); |
friend class Class; |
}; |
@@ -6151,7 +6179,7 @@ |
} |
private: |
- HEAP_OBJECT_IMPLEMENTATION(WeakProperty, Instance); |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(WeakProperty, Instance); |
friend class Class; |
}; |