Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index de3a40ff3388e2bd2dcbf50c15b36123c2d16286..7074cc0464c0ddbf61c0ccec301815596ff4d7e5 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -5347,7 +5347,6 @@ class Internals { |
static const int kExternalTwoByteRepresentationTag = 0x02; |
static const int kExternalAsciiRepresentationTag = 0x06; |
- static const int kIsolateStateOffset = 0; |
static const int kIsolateEmbedderDataOffset = 1 * kApiPointerSize; |
static const int kIsolateRootsOffset = 3 * kApiPointerSize; |
static const int kUndefinedValueRootIndex = 5; |
@@ -5372,6 +5371,12 @@ class Internals { |
static const int kUndefinedOddballKind = 5; |
static const int kNullOddballKind = 3; |
+#ifdef V8_ENABLE_CHECKS |
+ static void CheckInitialized(v8::Isolate* isolate); |
+#else |
+ static void CheckInitialized(v8::Isolate* isolate) { } |
+#endif |
+ |
V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) { |
return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) == |
kHeapObjectTag); |
@@ -5405,11 +5410,6 @@ class Internals { |
return representation == kExternalTwoByteRepresentationTag; |
} |
- V8_INLINE(static bool IsInitialized(v8::Isolate* isolate)) { |
- uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) + kIsolateStateOffset; |
- return *reinterpret_cast<int*>(addr) == 1; |
- } |
- |
V8_INLINE(static uint8_t GetNodeFlag(internal::Object** obj, int shift)) { |
uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + kNodeFlagsOffset; |
return *addr & (1 << shift); |
@@ -5985,7 +5985,7 @@ String* String::Cast(v8::Value* value) { |
Local<String> String::Empty(Isolate* isolate) { |
typedef internal::Object* S; |
typedef internal::Internals I; |
- if (!I::IsInitialized(isolate)) return Empty(); |
+ I::CheckInitialized(isolate); |
S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); |
return Local<String>(reinterpret_cast<String*>(slot)); |
} |
@@ -6354,7 +6354,7 @@ ReturnValue<T> PropertyCallbackInfo<T>::GetReturnValue() const { |
Handle<Primitive> Undefined(Isolate* isolate) { |
typedef internal::Object* S; |
typedef internal::Internals I; |
- if (!I::IsInitialized(isolate)) return Undefined(); |
+ I::CheckInitialized(isolate); |
S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); |
return Handle<Primitive>(reinterpret_cast<Primitive*>(slot)); |
} |
@@ -6363,7 +6363,7 @@ Handle<Primitive> Undefined(Isolate* isolate) { |
Handle<Primitive> Null(Isolate* isolate) { |
typedef internal::Object* S; |
typedef internal::Internals I; |
- if (!I::IsInitialized(isolate)) return Null(); |
+ I::CheckInitialized(isolate); |
S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); |
return Handle<Primitive>(reinterpret_cast<Primitive*>(slot)); |
} |
@@ -6372,7 +6372,7 @@ Handle<Primitive> Null(Isolate* isolate) { |
Handle<Boolean> True(Isolate* isolate) { |
typedef internal::Object* S; |
typedef internal::Internals I; |
- if (!I::IsInitialized(isolate)) return True(); |
+ I::CheckInitialized(isolate); |
S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); |
return Handle<Boolean>(reinterpret_cast<Boolean*>(slot)); |
} |
@@ -6381,7 +6381,7 @@ Handle<Boolean> True(Isolate* isolate) { |
Handle<Boolean> False(Isolate* isolate) { |
typedef internal::Object* S; |
typedef internal::Internals I; |
- if (!I::IsInitialized(isolate)) return False(); |
+ I::CheckInitialized(isolate); |
S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); |
return Handle<Boolean>(reinterpret_cast<Boolean*>(slot)); |
} |