summaryrefslogtreecommitdiff
path: root/deps/v8/include/v8-primitive.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/include/v8-primitive.h')
-rw-r--r--deps/v8/include/v8-primitive.h14
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 ||