v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 2985 | skipping to change at line 2985 | |||
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 V8EXPORT Context { | class V8EXPORT Context { | |||
public: | public: | |||
/** Returns the global object of the context. */ | /** | |||
* Returns the global proxy object or global object itself for | ||||
* detached contexts. | ||||
* | ||||
* Global proxy object is a thin wrapper whose prototype points to | ||||
* actual context's global object with the properties like Object, etc. | ||||
* This is done that way for security reasons (for more details see | ||||
* https://wiki.mozilla.org/Gecko:SplitWindow). | ||||
* | ||||
* Please note that changes to global proxy object prototype most probabl | ||||
y | ||||
* would break VM---v8 expects only global object as a prototype of | ||||
* global proxy object. | ||||
* | ||||
* If DetachGlobal() has been invoked, Global() would return actual globa | ||||
l | ||||
* object until global is reattached with ReattachGlobal(). | ||||
*/ | ||||
Local<Object> Global(); | Local<Object> Global(); | |||
/** | /** | |||
* Detaches the global object from its context before | * Detaches the global object from its context before | |||
* the global object can be reused to create a new context. | * the global object can be reused to create a new context. | |||
*/ | */ | |||
void DetachGlobal(); | void DetachGlobal(); | |||
/** | /** | |||
* Reattaches a global object to a context. This can be used to | * Reattaches a global object to a context. This can be used to | |||
skipping to change at line 3359 | skipping to change at line 3374 | |||
static const int kHeapObjectMapOffset = 0; | static const int kHeapObjectMapOffset = 0; | |||
static const int kMapInstanceTypeOffset = kApiPointerSize + kApiIntSize; | static const int kMapInstanceTypeOffset = kApiPointerSize + kApiIntSize; | |||
static const int kStringResourceOffset = | static const int kStringResourceOffset = | |||
InternalConstants<kApiPointerSize>::kStringResourceOffset; | InternalConstants<kApiPointerSize>::kStringResourceOffset; | |||
static const int kProxyProxyOffset = kApiPointerSize; | static const int kProxyProxyOffset = 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 = 0xa0; | static const int kJSObjectType = 0x9f; | |||
static const int kFirstNonstringType = 0x80; | static const int kFirstNonstringType = 0x80; | |||
static const int kProxyType = 0x85; | static const int kProxyType = 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); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 19 lines changed or added | |||