v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 136 | skipping to change at line 136 | |||
template<class T> class NonCopyablePersistentTraits; | template<class T> class NonCopyablePersistentTraits; | |||
template<class T> class PersistentBase; | template<class T> class PersistentBase; | |||
template<class T, | template<class T, | |||
class M = NonCopyablePersistentTraits<T> > class Persistent; | class M = NonCopyablePersistentTraits<T> > class Persistent; | |||
template<class T> class UniquePersistent; | template<class T> class UniquePersistent; | |||
template<class K, class V, class T> class PersistentValueMap; | template<class K, class V, class T> class PersistentValueMap; | |||
template<class T, class P> class WeakCallbackObject; | template<class T, class P> class WeakCallbackObject; | |||
class FunctionTemplate; | class FunctionTemplate; | |||
class ObjectTemplate; | class ObjectTemplate; | |||
class Data; | class Data; | |||
template<typename T> class FunctionCallbackInfo; | ||||
template<typename T> class PropertyCallbackInfo; | template<typename T> class PropertyCallbackInfo; | |||
class StackTrace; | class StackTrace; | |||
class StackFrame; | class StackFrame; | |||
class Isolate; | class Isolate; | |||
class DeclaredAccessorDescriptor; | class DeclaredAccessorDescriptor; | |||
class ObjectOperationDescriptor; | class ObjectOperationDescriptor; | |||
class RawOperationDescriptor; | class RawOperationDescriptor; | |||
class CallHandlerHelper; | class CallHandlerHelper; | |||
class EscapableHandleScope; | class EscapableHandleScope; | |||
template<typename T> class ReturnValue; | template<typename T> class ReturnValue; | |||
skipping to change at line 1102 | skipping to change at line 1103 | |||
~CachedData(); | ~CachedData(); | |||
// TODO(marja): Async compilation; add constructors which take a callba ck | // TODO(marja): Async compilation; add constructors which take a callba ck | |||
// which will be called when V8 no longer needs the data. | // which will be called when V8 no longer needs the data. | |||
const uint8_t* data; | const uint8_t* data; | |||
int length; | int length; | |||
BufferPolicy buffer_policy; | BufferPolicy buffer_policy; | |||
private: | private: | |||
// Prevent copying. Not implemented. | // Prevent copying. Not implemented. | |||
CachedData(const CachedData&); | CachedData(const CachedData&); | |||
CachedData& operator=(const CachedData&); | ||||
}; | }; | |||
/** | /** | |||
* Source code which can be then compiled to a UnboundScript or | * Source code which can be then compiled to a UnboundScript or | |||
* BoundScript. | * BoundScript. | |||
*/ | */ | |||
class V8_EXPORT Source { | class Source { | |||
public: | public: | |||
// Source takes ownership of CachedData. | // Source takes ownership of CachedData. | |||
Source(Local<String> source_string, const ScriptOrigin& origin, | V8_INLINE Source(Local<String> source_string, const ScriptOrigin& origi n, | |||
CachedData* cached_data = NULL); | CachedData* cached_data = NULL); | |||
Source(Local<String> source_string, CachedData* cached_data = NULL); | V8_INLINE Source(Local<String> source_string, | |||
~Source(); | CachedData* cached_data = NULL); | |||
V8_INLINE ~Source(); | ||||
// Ownership of the CachedData or its buffers is *not* transferred to t he | // Ownership of the CachedData or its buffers is *not* transferred to t he | |||
// caller. The CachedData object is alive as long as the Source object is | // caller. The CachedData object is alive as long as the Source object is | |||
// alive. | // alive. | |||
const CachedData* GetCachedData() const; | V8_INLINE const CachedData* GetCachedData() const; | |||
private: | private: | |||
friend class ScriptCompiler; | friend class ScriptCompiler; | |||
// Prevent copying. Not implemented. | // Prevent copying. Not implemented. | |||
Source(const Source&); | Source(const Source&); | |||
Source& operator=(const Source&); | ||||
Local<String> source_string; | Local<String> source_string; | |||
// Origin information | // Origin information | |||
Handle<Value> resource_name; | Handle<Value> resource_name; | |||
Handle<Integer> resource_line_offset; | Handle<Integer> resource_line_offset; | |||
Handle<Integer> resource_column_offset; | Handle<Integer> resource_column_offset; | |||
Handle<Boolean> resource_is_shared_cross_origin; | Handle<Boolean> resource_is_shared_cross_origin; | |||
// Cached data from previous compilation (if any), or generated during | // Cached data from previous compilation (if any), or generated during | |||
skipping to change at line 1970 | skipping to change at line 1974 | |||
/** | /** | |||
* A JavaScript symbol (ECMA-262 edition 6) | * A JavaScript symbol (ECMA-262 edition 6) | |||
* | * | |||
* This is an experimental feature. Use at your own risk. | * This is an experimental feature. Use at your own risk. | |||
*/ | */ | |||
class V8_EXPORT Symbol : public Primitive { | class V8_EXPORT Symbol : public Primitive { | |||
public: | public: | |||
// Returns the print name string of the symbol, or undefined if none. | // Returns the print name string of the symbol, or undefined if none. | |||
Local<Value> Name() const; | Local<Value> Name() const; | |||
// Create a symbol. If data is not NULL, it will be used as a print name. | // Create a symbol. If name is not empty, it will be used as the descript ion. | |||
static Local<Symbol> New( | static Local<Symbol> New( | |||
Isolate *isolate, const char* data = NULL, int length = -1); | Isolate *isolate, Local<String> name = Local<String>()); | |||
// Access global symbol registry. | ||||
// Note that symbols created this way are never collected, so | ||||
// they should only be used for statically fixed properties. | ||||
// Also, there is only one global name space for the names used as keys. | ||||
// To minimize the potential for clashes, use qualified names as keys. | ||||
static Local<Symbol> For(Isolate *isolate, Local<String> name); | ||||
// Retrieve a global symbol. Similar to |For|, but using a separate | ||||
// registry that is not accessible by (and cannot clash with) JavaScript | ||||
code. | ||||
static Local<Symbol> ForApi(Isolate *isolate, Local<String> name); | ||||
V8_INLINE static Symbol* Cast(v8::Value* obj); | V8_INLINE static Symbol* Cast(v8::Value* obj); | |||
private: | private: | |||
Symbol(); | Symbol(); | |||
static void CheckCast(v8::Value* obj); | static void CheckCast(v8::Value* obj); | |||
}; | }; | |||
/** | /** | |||
* A private symbol | * A private symbol | |||
* | * | |||
* This is an experimental feature. Use at your own risk. | * This is an experimental feature. Use at your own risk. | |||
*/ | */ | |||
class V8_EXPORT Private : public Data { | class V8_EXPORT Private : public Data { | |||
public: | public: | |||
// Returns the print name string of the private symbol, or undefined if n one. | // Returns the print name string of the private symbol, or undefined if n one. | |||
Local<Value> Name() const; | Local<Value> Name() const; | |||
// Create a private symbol. If data is not NULL, it will be the print nam | // Create a private symbol. If name is not empty, it will be the descript | |||
e. | ion. | |||
static Local<Private> New(Isolate *isolate, | static Local<Private> New( | |||
Local<String> name = Local<String>()); | Isolate *isolate, Local<String> name = Local<String>()); | |||
// Retrieve a global private symbol. If a symbol with this name has not | ||||
// been retrieved in the same isolate before, it is created. | ||||
// Note that private symbols created this way are never collected, so | ||||
// they should only be used for statically fixed properties. | ||||
// Also, there is only one global name space for the names used as keys. | ||||
// To minimize the potential for clashes, use qualified names as keys, | ||||
// e.g., "Class#property". | ||||
static Local<Private> ForApi(Isolate *isolate, Local<String> name); | ||||
private: | private: | |||
Private(); | Private(); | |||
}; | }; | |||
/** | /** | |||
* A JavaScript number value (ECMA-262, 4.3.20) | * A JavaScript number value (ECMA-262, 4.3.20) | |||
*/ | */ | |||
class V8_EXPORT Number : public Primitive { | class V8_EXPORT Number : public Primitive { | |||
public: | public: | |||
skipping to change at line 2168 | skipping to change at line 2192 | |||
Handle<Value> data = Handle<Value>(), | Handle<Value> data = Handle<Value>(), | |||
AccessControl settings = DEFAULT, | AccessControl settings = DEFAULT, | |||
PropertyAttribute attribute = None); | PropertyAttribute attribute = None); | |||
// This function is not yet stable and should not be used at this time. | // This function is not yet stable and should not be used at this time. | |||
bool SetDeclaredAccessor(Local<String> name, | bool SetDeclaredAccessor(Local<String> name, | |||
Local<DeclaredAccessorDescriptor> descriptor, | Local<DeclaredAccessorDescriptor> descriptor, | |||
PropertyAttribute attribute = None, | PropertyAttribute attribute = None, | |||
AccessControl settings = DEFAULT); | AccessControl settings = DEFAULT); | |||
void SetAccessorProperty(Local<String> name, | ||||
Local<Function> getter, | ||||
Handle<Function> setter = Handle<Function>(), | ||||
PropertyAttribute attribute = None, | ||||
AccessControl settings = DEFAULT); | ||||
/** | /** | |||
* Functionality for private properties. | * Functionality for private properties. | |||
* This is an experimental feature, use at your own risk. | * This is an experimental feature, use at your own risk. | |||
* Note: Private properties are inherited. Do not rely on this, since it may | * Note: Private properties are inherited. Do not rely on this, since it may | |||
* change. | * change. | |||
*/ | */ | |||
bool HasPrivate(Handle<Private> key); | bool HasPrivate(Handle<Private> key); | |||
bool SetPrivate(Handle<Private> key, Handle<Value> value); | bool SetPrivate(Handle<Private> key, Handle<Value> value); | |||
bool DeletePrivate(Handle<Private> key); | bool DeletePrivate(Handle<Private> key); | |||
Local<Value> GetPrivate(Handle<Private> key); | Local<Value> GetPrivate(Handle<Private> key); | |||
skipping to change at line 4499 | skipping to change at line 4529 | |||
/** | /** | |||
* Set allocator to use for ArrayBuffer memory. | * Set allocator to use for ArrayBuffer memory. | |||
* The allocator should be set only once. The allocator should be set | * The allocator should be set only once. The allocator should be set | |||
* before any code tha uses ArrayBuffers is executed. | * before any code tha uses ArrayBuffers is executed. | |||
* This allocator is used in all isolates. | * This allocator is used in all isolates. | |||
*/ | */ | |||
static void SetArrayBufferAllocator(ArrayBuffer::Allocator* allocator); | static void SetArrayBufferAllocator(ArrayBuffer::Allocator* allocator); | |||
/** | /** | |||
* Ignore out-of-memory exceptions. | ||||
* | ||||
* V8 running out of memory is treated as a fatal error by default. | ||||
* This means that the fatal error handler is called and that V8 is | ||||
* terminated. | ||||
* | ||||
* IgnoreOutOfMemoryException can be used to not treat an | ||||
* out-of-memory situation as a fatal error. This way, the contexts | ||||
* that did not cause the out of memory problem might be able to | ||||
* continue execution. | ||||
*/ | ||||
static void IgnoreOutOfMemoryException(); | ||||
/** | ||||
* Check if V8 is dead and therefore unusable. This is the case after | * Check if V8 is dead and therefore unusable. This is the case after | |||
* fatal errors such as out-of-memory situations. | * fatal errors such as out-of-memory situations. | |||
*/ | */ | |||
static bool IsDead(); | static bool IsDead(); | |||
/** | /** | |||
* The following 4 functions are to be used when V8 is built with | * The following 4 functions are to be used when V8 is built with | |||
* the 'compress_startup_data' flag enabled. In this case, the | * the 'compress_startup_data' flag enabled. In this case, the | |||
* embedder must decompress startup data prior to initializing V8. | * embedder must decompress startup data prior to initializing V8. | |||
* | * | |||
skipping to change at line 5113 | skipping to change at line 5129 | |||
*/ | */ | |||
void Enter(); | void Enter(); | |||
/** | /** | |||
* Exit this context. Exiting the current context restores the | * Exit this context. Exiting the current context restores the | |||
* context that was in place when entering the current context. | * context that was in place when entering the current context. | |||
*/ | */ | |||
void Exit(); | void Exit(); | |||
/** Returns true if the context has experienced an out of memory situatio n. */ | /** Returns true if the context has experienced an out of memory situatio n. */ | |||
bool HasOutOfMemoryException(); | bool HasOutOfMemoryException() { return false; } | |||
/** Returns an isolate associated with a current context. */ | /** Returns an isolate associated with a current context. */ | |||
v8::Isolate* GetIsolate(); | v8::Isolate* GetIsolate(); | |||
/** | /** | |||
* Gets the embedder data with the given index, which must have been set by a | * Gets the embedder data with the given index, which must have been set by a | |||
* previous call to SetEmbedderData with the same index. Note that index 0 | * previous call to SetEmbedderData with the same index. Note that index 0 | |||
* currently has a special meaning for Chrome's debugger. | * currently has a special meaning for Chrome's debugger. | |||
*/ | */ | |||
V8_INLINE Local<Value> GetEmbedderData(int index); | V8_INLINE Local<Value> GetEmbedderData(int index); | |||
skipping to change at line 5926 | skipping to change at line 5942 | |||
} | } | |||
Handle<Integer> ScriptOrigin::ResourceColumnOffset() const { | Handle<Integer> ScriptOrigin::ResourceColumnOffset() const { | |||
return resource_column_offset_; | return resource_column_offset_; | |||
} | } | |||
Handle<Boolean> ScriptOrigin::ResourceIsSharedCrossOrigin() const { | Handle<Boolean> ScriptOrigin::ResourceIsSharedCrossOrigin() const { | |||
return resource_is_shared_cross_origin_; | return resource_is_shared_cross_origin_; | |||
} | } | |||
ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& or | ||||
igin, | ||||
CachedData* data) | ||||
: source_string(string), | ||||
resource_name(origin.ResourceName()), | ||||
resource_line_offset(origin.ResourceLineOffset()), | ||||
resource_column_offset(origin.ResourceColumnOffset()), | ||||
resource_is_shared_cross_origin(origin.ResourceIsSharedCrossOrigin()) | ||||
, | ||||
cached_data(data) {} | ||||
ScriptCompiler::Source::Source(Local<String> string, | ||||
CachedData* data) | ||||
: source_string(string), cached_data(data) {} | ||||
ScriptCompiler::Source::~Source() { | ||||
delete cached_data; | ||||
} | ||||
const ScriptCompiler::CachedData* ScriptCompiler::Source::GetCachedData() | ||||
const { | ||||
return cached_data; | ||||
} | ||||
Handle<Boolean> Boolean::New(Isolate* isolate, bool value) { | Handle<Boolean> Boolean::New(Isolate* isolate, bool value) { | |||
return value ? True(isolate) : False(isolate); | return value ? True(isolate) : False(isolate); | |||
} | } | |||
void Template::Set(Isolate* isolate, const char* name, v8::Handle<Data> val ue) { | void Template::Set(Isolate* isolate, const char* name, v8::Handle<Data> val ue) { | |||
Set(v8::String::NewFromUtf8(isolate, name), value); | Set(v8::String::NewFromUtf8(isolate, name), value); | |||
} | } | |||
Local<Value> Object::GetInternalField(int index) { | Local<Value> Object::GetInternalField(int index) { | |||
#ifndef V8_ENABLE_CHECKS | #ifndef V8_ENABLE_CHECKS | |||
End of changes. 14 change blocks. | ||||
26 lines changed or deleted | 67 lines changed or added | |||