diff options
Diffstat (limited to 'deps/v8/include/v8-primitive.h')
-rw-r--r-- | deps/v8/include/v8-primitive.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/deps/v8/include/v8-primitive.h b/deps/v8/include/v8-primitive.h index 8a95c151bd..11c01876c7 100644 --- a/deps/v8/include/v8-primitive.h +++ b/deps/v8/include/v8-primitive.h @@ -54,12 +54,22 @@ class V8_EXPORT Boolean : public Primitive { * This is passed back to the embedder as part of * HostImportModuleDynamicallyCallback for module loading. */ -class V8_EXPORT PrimitiveArray { +class V8_EXPORT PrimitiveArray : public Data { public: static Local<PrimitiveArray> New(Isolate* isolate, int length); int Length() const; void Set(Isolate* isolate, int index, Local<Primitive> item); Local<Primitive> Get(Isolate* isolate, int index); + + V8_INLINE static PrimitiveArray* Cast(Data* data) { +#ifdef V8_ENABLE_CHECKS + CheckCast(data); +#endif + return reinterpret_cast<PrimitiveArray*>(data); + } + + private: + static void CheckCast(Data* obj); }; /** @@ -796,7 +806,7 @@ String::ExternalStringResourceBase* String::GetExternalStringResourceBase( using A = internal::Address; using I = internal::Internals; A obj = *reinterpret_cast<const A*>(this); - int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; + int type = I::GetInstanceType(obj) & I::kStringRepresentationAndEncodingMask; *encoding_out = static_cast<Encoding>(type & I::kStringEncodingMask); ExternalStringResourceBase* resource; if (type == I::kExternalOneByteRepresentationTag || |