v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 2607 | skipping to change at line 2607 | |||
* Requires: this == Isolate::GetCurrent(). | * Requires: this == Isolate::GetCurrent(). | |||
*/ | */ | |||
void Exit(); | void Exit(); | |||
/** | /** | |||
* Disposes the isolate. The isolate must not be entered by any | * Disposes the isolate. The isolate must not be entered by any | |||
* thread to be disposable. | * thread to be disposable. | |||
*/ | */ | |||
void Dispose(); | void Dispose(); | |||
/** | ||||
* Associate embedder-specific data with the isolate | ||||
*/ | ||||
void SetData(void* data); | ||||
/** | ||||
* Retrive embedder-specific data from the isolate. | ||||
* Returns NULL if SetData has never been called. | ||||
*/ | ||||
void* GetData(); | ||||
private: | private: | |||
Isolate(); | Isolate(); | |||
Isolate(const Isolate&); | Isolate(const Isolate&); | |||
~Isolate(); | ~Isolate(); | |||
Isolate& operator=(const Isolate&); | Isolate& operator=(const Isolate&); | |||
void* operator new(size_t size); | void* operator new(size_t size); | |||
void operator delete(void*, size_t); | void operator delete(void*, size_t); | |||
}; | }; | |||
skipping to change at line 3613 | skipping to change at line 3624 | |||
class Internals { | class Internals { | |||
public: | public: | |||
// These values match non-compiler-dependent values defined within | // These values match non-compiler-dependent values defined within | |||
// the implementation of v8. | // the implementation of v8. | |||
static const int kHeapObjectMapOffset = 0; | static const int kHeapObjectMapOffset = 0; | |||
static const int kMapInstanceTypeOffset = 1 * kApiPointerSize + kApiIntSi ze; | static const int kMapInstanceTypeOffset = 1 * kApiPointerSize + kApiIntSi ze; | |||
static const int kStringResourceOffset = | static const int kStringResourceOffset = | |||
InternalConstants<kApiPointerSize>::kStringResourceOffset; | InternalConstants<kApiPointerSize>::kStringResourceOffset; | |||
static const int kProxyProxyOffset = kApiPointerSize; | static const int kForeignAddressOffset = kApiPointerSize; | |||
static const int kJSObjectHeaderSize = 3 * kApiPointerSize; | static const int kJSObjectHeaderSize = 3 * kApiPointerSize; | |||
static const int kFullStringRepresentationMask = 0x07; | static const int kFullStringRepresentationMask = 0x07; | |||
static const int kExternalTwoByteRepresentationTag = 0x02; | static const int kExternalTwoByteRepresentationTag = 0x02; | |||
static const int kJSObjectType = 0xa2; | static const int kJSObjectType = 0xa2; | |||
static const int kFirstNonstringType = 0x80; | static const int kFirstNonstringType = 0x80; | |||
static const int kProxyType = 0x85; | static const int kForeignType = 0x85; | |||
static inline bool HasHeapObjectTag(internal::Object* value) { | static inline bool HasHeapObjectTag(internal::Object* value) { | |||
return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) == | return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) == | |||
kHeapObjectTag); | kHeapObjectTag); | |||
} | } | |||
static inline bool HasSmiTag(internal::Object* value) { | static inline bool HasSmiTag(internal::Object* value) { | |||
return ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag); | return ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag); | |||
} | } | |||
skipping to change at line 3649 | skipping to change at line 3660 | |||
} | } | |||
static inline void* GetExternalPointerFromSmi(internal::Object* value) { | static inline void* GetExternalPointerFromSmi(internal::Object* value) { | |||
const uintptr_t address = reinterpret_cast<uintptr_t>(value); | const uintptr_t address = reinterpret_cast<uintptr_t>(value); | |||
return reinterpret_cast<void*>(address >> kPointerToSmiShift); | return reinterpret_cast<void*>(address >> kPointerToSmiShift); | |||
} | } | |||
static inline void* GetExternalPointer(internal::Object* obj) { | static inline void* GetExternalPointer(internal::Object* obj) { | |||
if (HasSmiTag(obj)) { | if (HasSmiTag(obj)) { | |||
return GetExternalPointerFromSmi(obj); | return GetExternalPointerFromSmi(obj); | |||
} else if (GetInstanceType(obj) == kProxyType) { | } else if (GetInstanceType(obj) == kForeignType) { | |||
return ReadField<void*>(obj, kProxyProxyOffset); | return ReadField<void*>(obj, kForeignAddressOffset); | |||
} else { | } else { | |||
return NULL; | return NULL; | |||
} | } | |||
} | } | |||
static inline bool IsExternalTwoByteString(int instance_type) { | static inline bool IsExternalTwoByteString(int instance_type) { | |||
int representation = (instance_type & kFullStringRepresentationMask); | int representation = (instance_type & kFullStringRepresentationMask); | |||
return representation == kExternalTwoByteRepresentationTag; | return representation == kExternalTwoByteRepresentationTag; | |||
} | } | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 15 lines changed or added | |||