v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 816 | skipping to change at line 816 | |||
public: | public: | |||
HandleScope(Isolate* isolate); | HandleScope(Isolate* isolate); | |||
~HandleScope(); | ~HandleScope(); | |||
/** | /** | |||
* Counts the number of allocated handles. | * Counts the number of allocated handles. | |||
*/ | */ | |||
static int NumberOfHandles(Isolate* isolate); | static int NumberOfHandles(Isolate* isolate); | |||
private: | V8_INLINE Isolate* GetIsolate() const { | |||
/** | return reinterpret_cast<Isolate*>(isolate_); | |||
* Creates a new handle with the given value. | } | |||
*/ | ||||
protected: | ||||
V8_INLINE HandleScope() {} | ||||
void Initialize(Isolate* isolate); | ||||
static internal::Object** CreateHandle(internal::Isolate* isolate, | static internal::Object** CreateHandle(internal::Isolate* isolate, | |||
internal::Object* value); | internal::Object* value); | |||
// Uses HeapObject to obtain the current Isolate. | ||||
private: | ||||
// Uses heap_object to obtain the current Isolate. | ||||
static internal::Object** CreateHandle(internal::HeapObject* heap_object, | static internal::Object** CreateHandle(internal::HeapObject* heap_object, | |||
internal::Object* value); | internal::Object* value); | |||
V8_INLINE HandleScope() {} | ||||
void Initialize(Isolate* isolate); | ||||
// Make it hard to create heap-allocated or illegal handle scopes by | // Make it hard to create heap-allocated or illegal handle scopes by | |||
// disallowing certain operations. | // disallowing certain operations. | |||
HandleScope(const HandleScope&); | HandleScope(const HandleScope&); | |||
void operator=(const HandleScope&); | void operator=(const HandleScope&); | |||
void* operator new(size_t size); | void* operator new(size_t size); | |||
void operator delete(void*, size_t); | void operator delete(void*, size_t); | |||
// This Data class is accessible internally as HandleScopeData through a | ||||
// typedef in the ImplementationUtilities class. | ||||
class V8_EXPORT Data { | ||||
public: | ||||
internal::Object** next; | ||||
internal::Object** limit; | ||||
int level; | ||||
V8_INLINE void Initialize() { | ||||
next = limit = NULL; | ||||
level = 0; | ||||
} | ||||
}; | ||||
internal::Isolate* isolate_; | internal::Isolate* isolate_; | |||
internal::Object** prev_next_; | internal::Object** prev_next_; | |||
internal::Object** prev_limit_; | internal::Object** prev_limit_; | |||
friend class ImplementationUtilities; | // Local::New uses CreateHandle with an Isolate* parameter. | |||
friend class EscapableHandleScope; | ||||
template<class F> friend class Handle; | ||||
template<class F> friend class Local; | template<class F> friend class Local; | |||
// Object::GetInternalField and Context::GetEmbedderData use CreateHandle | ||||
with | ||||
// a HeapObject* in their shortcuts. | ||||
friend class Object; | friend class Object; | |||
friend class Context; | friend class Context; | |||
}; | }; | |||
/** | /** | |||
* A HandleScope which first allocates a handle in the current scope | * A HandleScope which first allocates a handle in the current scope | |||
* which will be later filled with the escape value. | * which will be later filled with the escape value. | |||
*/ | */ | |||
class V8_EXPORT EscapableHandleScope : public HandleScope { | class V8_EXPORT EscapableHandleScope : public HandleScope { | |||
public: | public: | |||
skipping to change at line 4812 | skipping to change at line 4804 | |||
bool capture_message_ : 1; | bool capture_message_ : 1; | |||
bool rethrow_ : 1; | bool rethrow_ : 1; | |||
bool has_terminated_ : 1; | bool has_terminated_ : 1; | |||
friend class v8::internal::Isolate; | friend class v8::internal::Isolate; | |||
}; | }; | |||
// --- Context --- | // --- Context --- | |||
/** | /** | |||
* Ignore | * A container for extension names. | |||
*/ | */ | |||
class V8_EXPORT ExtensionConfiguration { | class V8_EXPORT ExtensionConfiguration { | |||
public: | public: | |||
ExtensionConfiguration() : name_count_(0), names_(NULL) { } | ||||
ExtensionConfiguration(int name_count, const char* names[]) | ExtensionConfiguration(int name_count, const char* names[]) | |||
: name_count_(name_count), names_(names) { } | : name_count_(name_count), names_(names) { } | |||
const char** begin() const { return &names_[0]; } | ||||
const char** end() const { return &names_[name_count_]; } | ||||
private: | private: | |||
friend class ImplementationUtilities; | const int name_count_; | |||
int name_count_; | ||||
const char** names_; | const char** names_; | |||
}; | }; | |||
/** | /** | |||
* A sandboxed execution context with its own set of built-in objects | * A sandboxed execution context with its own set of built-in objects | |||
* and functions. | * and functions. | |||
*/ | */ | |||
class V8_EXPORT Context { | class V8_EXPORT Context { | |||
public: | public: | |||
/** | /** | |||
skipping to change at line 5279 | skipping to change at line 5275 | |||
static const int kStringEncodingMask = 0x4; | static const int kStringEncodingMask = 0x4; | |||
static const int kExternalTwoByteRepresentationTag = 0x02; | static const int kExternalTwoByteRepresentationTag = 0x02; | |||
static const int kExternalAsciiRepresentationTag = 0x06; | static const int kExternalAsciiRepresentationTag = 0x06; | |||
static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; | static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; | |||
static const int kIsolateRootsOffset = 5 * kApiPointerSize; | static const int kIsolateRootsOffset = 5 * kApiPointerSize; | |||
static const int kUndefinedValueRootIndex = 5; | static const int kUndefinedValueRootIndex = 5; | |||
static const int kNullValueRootIndex = 7; | static const int kNullValueRootIndex = 7; | |||
static const int kTrueValueRootIndex = 8; | static const int kTrueValueRootIndex = 8; | |||
static const int kFalseValueRootIndex = 9; | static const int kFalseValueRootIndex = 9; | |||
static const int kEmptyStringRootIndex = 135; | static const int kEmptyStringRootIndex = 136; | |||
static const int kNodeClassIdOffset = 1 * kApiPointerSize; | static const int kNodeClassIdOffset = 1 * kApiPointerSize; | |||
static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | |||
static const int kNodeStateMask = 0xf; | static const int kNodeStateMask = 0xf; | |||
static const int kNodeStateIsWeakValue = 2; | static const int kNodeStateIsWeakValue = 2; | |||
static const int kNodeStateIsPendingValue = 3; | static const int kNodeStateIsPendingValue = 3; | |||
static const int kNodeStateIsNearDeathValue = 4; | static const int kNodeStateIsNearDeathValue = 4; | |||
static const int kNodeIsIndependentShift = 4; | static const int kNodeIsIndependentShift = 4; | |||
static const int kNodeIsPartiallyDependentShift = 5; | static const int kNodeIsPartiallyDependentShift = 5; | |||
End of changes. 11 change blocks. | ||||
28 lines changed or deleted | 25 lines changed or added | |||