v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 5530 | skipping to change at line 5530 | |||
kIsolateEmbedderDataOffset + slot * kApiPointerSize; | kIsolateEmbedderDataOffset + slot * kApiPointerSize; | |||
return *reinterpret_cast<void**>(addr); | return *reinterpret_cast<void**>(addr); | |||
} | } | |||
V8_INLINE static internal::Object** GetRoot(v8::Isolate* isolate, | V8_INLINE static internal::Object** GetRoot(v8::Isolate* isolate, | |||
int index) { | int index) { | |||
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) + kIsolateRootsOffs et; | uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) + kIsolateRootsOffs et; | |||
return reinterpret_cast<internal::Object**>(addr + index * kApiPointerS ize); | return reinterpret_cast<internal::Object**>(addr + index * kApiPointerS ize); | |||
} | } | |||
template <typename T> V8_INLINE static T ReadField(Object* ptr, int offse | template <typename T> | |||
t) { | V8_INLINE static T ReadField(internal::Object* ptr, int offset) { | |||
uint8_t* addr = reinterpret_cast<uint8_t*>(ptr) + offset - kHeapObjectT ag; | uint8_t* addr = reinterpret_cast<uint8_t*>(ptr) + offset - kHeapObjectT ag; | |||
return *reinterpret_cast<T*>(addr); | return *reinterpret_cast<T*>(addr); | |||
} | } | |||
template <typename T> | template <typename T> | |||
V8_INLINE static T ReadEmbedderData(Context* context, int index) { | V8_INLINE static T ReadEmbedderData(v8::Context* context, int index) { | |||
typedef internal::Object O; | typedef internal::Object O; | |||
typedef internal::Internals I; | typedef internal::Internals I; | |||
O* ctx = *reinterpret_cast<O**>(context); | O* ctx = *reinterpret_cast<O**>(context); | |||
int embedder_data_offset = I::kContextHeaderSize + | int embedder_data_offset = I::kContextHeaderSize + | |||
(internal::kApiPointerSize * I::kContextEmbedderDataIndex); | (internal::kApiPointerSize * I::kContextEmbedderDataIndex); | |||
O* embedder_data = I::ReadField<O*>(ctx, embedder_data_offset); | O* embedder_data = I::ReadField<O*>(ctx, embedder_data_offset); | |||
int value_offset = | int value_offset = | |||
I::kFixedArrayHeaderSize + (internal::kApiPointerSize * index); | I::kFixedArrayHeaderSize + (internal::kApiPointerSize * index); | |||
return I::ReadField<T>(embedder_data, value_offset); | return I::ReadField<T>(embedder_data, value_offset); | |||
} | } | |||
V8_INLINE static bool CanCastToHeapObject(void* o) { return false; } | ||||
V8_INLINE static bool CanCastToHeapObject(Context* o) { return true; } | ||||
V8_INLINE static bool CanCastToHeapObject(String* o) { return true; } | ||||
V8_INLINE static bool CanCastToHeapObject(Object* o) { return true; } | ||||
V8_INLINE static bool CanCastToHeapObject(Message* o) { return true; } | ||||
V8_INLINE static bool CanCastToHeapObject(StackTrace* o) { return true; } | ||||
V8_INLINE static bool CanCastToHeapObject(StackFrame* o) { return true; } | ||||
}; | }; | |||
} // namespace internal | } // namespace internal | |||
template <class T> | template <class T> | |||
Local<T>::Local() : Handle<T>() { } | Local<T>::Local() : Handle<T>() { } | |||
template <class T> | template <class T> | |||
Local<T> Local<T>::New(Isolate* isolate, Handle<T> that) { | Local<T> Local<T>::New(Isolate* isolate, Handle<T> that) { | |||
return New(isolate, that.val_); | return New(isolate, that.val_); | |||
End of changes. 3 change blocks. | ||||
11 lines changed or deleted | 3 lines changed or added | |||