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

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