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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/