v8-debug.h | v8-debug.h | |||
---|---|---|---|---|
skipping to change at line 143 | skipping to change at line 143 | |||
* request that led to the message or NULL if the message is an event. The | * request that led to the message or NULL if the message is an event. The | |||
* debugger takes ownership of the data and will delete it even if ther e is | * debugger takes ownership of the data and will delete it even if ther e is | |||
* no message handler. | * no message handler. | |||
*/ | */ | |||
virtual ClientData* GetClientData() const = 0; | virtual ClientData* GetClientData() const = 0; | |||
virtual ~Message() {} | virtual ~Message() {} | |||
}; | }; | |||
/** | /** | |||
* An event details object passed to the debug event listener. | ||||
*/ | ||||
class EventDetails { | ||||
public: | ||||
/** | ||||
* Event type. | ||||
*/ | ||||
virtual DebugEvent GetEvent() const = 0; | ||||
/** | ||||
* Access to execution state and event data of the debug event. Don't s | ||||
tore | ||||
* these cross callbacks as their content becomes invalid. | ||||
*/ | ||||
virtual Handle<Object> GetExecutionState() const = 0; | ||||
virtual Handle<Object> GetEventData() const = 0; | ||||
/** | ||||
* Get the context active when the debug event happened. Note this is n | ||||
ot | ||||
* the current active context as the JavaScript part of the debugger is | ||||
* running in it's own context which is entered at this point. | ||||
*/ | ||||
virtual Handle<Context> GetEventContext() const = 0; | ||||
/** | ||||
* Client data passed with the corresponding callbak whet it was regist | ||||
ered. | ||||
*/ | ||||
virtual Handle<Value> GetCallbackData() const = 0; | ||||
virtual ~EventDetails() {} | ||||
}; | ||||
/** | ||||
* Debug event callback function. | * Debug event callback function. | |||
* | * | |||
* \param event the type of the debug event that triggered the callback | * \param event the type of the debug event that triggered the callback | |||
* (enum DebugEvent) | * (enum DebugEvent) | |||
* \param exec_state execution state (JavaScript object) | * \param exec_state execution state (JavaScript object) | |||
* \param event_data event specific data (JavaScript object) | * \param event_data event specific data (JavaScript object) | |||
* \param data value passed by the user to SetDebugEventListener | * \param data value passed by the user to SetDebugEventListener | |||
*/ | */ | |||
typedef void (*EventCallback)(DebugEvent event, | typedef void (*EventCallback)(DebugEvent event, | |||
Handle<Object> exec_state, | Handle<Object> exec_state, | |||
Handle<Object> event_data, | Handle<Object> event_data, | |||
Handle<Value> data); | Handle<Value> data); | |||
/** | /** | |||
* Debug event callback function. | ||||
* | ||||
* \param event_details object providing information about the debug even | ||||
t | ||||
* | ||||
* A EventCallback2 does not take possession of the event data, | ||||
* and must not rely on the data persisting after the handler returns. | ||||
*/ | ||||
typedef void (*EventCallback2)(const EventDetails& event_details); | ||||
/** | ||||
* Debug message callback function. | * Debug message callback function. | |||
* | * | |||
* \param message the debug message handler message object | * \param message the debug message handler message object | |||
* \param length length of the message | * \param length length of the message | |||
* \param client_data the data value passed when registering the message handler | * \param client_data the data value passed when registering the message handler | |||
* A MessageHandler does not take posession of the message string, | * A MessageHandler does not take possession of the message string, | |||
* and must not rely on the data persisting after the handler returns. | * and must not rely on the data persisting after the handler returns. | |||
* | * | |||
* This message handler is deprecated. Use MessageHandler2 instead. | * This message handler is deprecated. Use MessageHandler2 instead. | |||
*/ | */ | |||
typedef void (*MessageHandler)(const uint16_t* message, int length, | typedef void (*MessageHandler)(const uint16_t* message, int length, | |||
ClientData* client_data); | ClientData* client_data); | |||
/** | /** | |||
* Debug message callback function. | * Debug message callback function. | |||
* | * | |||
* \param message the debug message handler message object | * \param message the debug message handler message object | |||
* A MessageHandler does not take posession of the message data, | * A MessageHandler does not take possession of the message data, | |||
* and must not rely on the data persisting after the handler returns. | * and must not rely on the data persisting after the handler returns. | |||
*/ | */ | |||
typedef void (*MessageHandler2)(const Message& message); | typedef void (*MessageHandler2)(const Message& message); | |||
/** | /** | |||
* Debug host dispatch callback function. | * Debug host dispatch callback function. | |||
*/ | */ | |||
typedef void (*HostDispatchHandler)(); | typedef void (*HostDispatchHandler)(); | |||
/** | /** | |||
* Callback function for the host to ensure debug messages are processed. | * Callback function for the host to ensure debug messages are processed. | |||
*/ | */ | |||
typedef void (*DebugMessageDispatchHandler)(); | typedef void (*DebugMessageDispatchHandler)(); | |||
// Set a C debug event listener. | // Set a C debug event listener. | |||
static bool SetDebugEventListener(EventCallback that, | static bool SetDebugEventListener(EventCallback that, | |||
Handle<Value> data = Handle<Value>()); | Handle<Value> data = Handle<Value>()); | |||
static bool SetDebugEventListener2(EventCallback2 that, | ||||
Handle<Value> data = Handle<Value>()); | ||||
// Set a JavaScript debug event listener. | // Set a JavaScript debug event listener. | |||
static bool SetDebugEventListener(v8::Handle<v8::Object> that, | static bool SetDebugEventListener(v8::Handle<v8::Object> that, | |||
Handle<Value> data = Handle<Value>()); | Handle<Value> data = Handle<Value>()); | |||
// Break execution of JavaScript. | // Break execution of JavaScript. | |||
static void DebugBreak(); | static void DebugBreak(); | |||
// Message based interface. The message protocol is JSON. NOTE the messag e | // Message based interface. The message protocol is JSON. NOTE the messag e | |||
// handler thread is not supported any more parameter must be false. | // handler thread is not supported any more parameter must be false. | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 50 lines changed or added | |||
v8-profiler.h | v8-profiler.h | |||
---|---|---|---|---|
skipping to change at line 139 | skipping to change at line 139 | |||
/** Returns the root node of the top down call tree. */ | /** Returns the root node of the top down call tree. */ | |||
const CpuProfileNode* GetTopDownRoot() const; | const CpuProfileNode* GetTopDownRoot() const; | |||
}; | }; | |||
/** | /** | |||
* Interface for controlling CPU profiling. | * Interface for controlling CPU profiling. | |||
*/ | */ | |||
class V8EXPORT CpuProfiler { | class V8EXPORT CpuProfiler { | |||
public: | public: | |||
/** | /** | |||
* A note on security tokens usage. As scripts from different | ||||
* origins can run inside a single V8 instance, it is possible to | ||||
* have functions from different security contexts intermixed in a | ||||
* single CPU profile. To avoid exposing function names belonging to | ||||
* other contexts, filtering by security token is performed while | ||||
* obtaining profiling results. | ||||
*/ | ||||
/** | ||||
* Returns the number of profiles collected (doesn't include | * Returns the number of profiles collected (doesn't include | |||
* profiles that are being collected at the moment of call.) | * profiles that are being collected at the moment of call.) | |||
*/ | */ | |||
static int GetProfilesCount(); | static int GetProfilesCount(); | |||
/** Returns a profile by index. */ | /** Returns a profile by index. */ | |||
static const CpuProfile* GetProfile(int index); | static const CpuProfile* GetProfile( | |||
int index, | ||||
Handle<Value> security_token = Handle<Value>()); | ||||
/** Returns a profile by uid. */ | /** Returns a profile by uid. */ | |||
static const CpuProfile* FindProfile(unsigned uid); | static const CpuProfile* FindProfile( | |||
unsigned uid, | ||||
Handle<Value> security_token = Handle<Value>()); | ||||
/** | /** | |||
* Starts collecting CPU profile. Title may be an empty string. It | * Starts collecting CPU profile. Title may be an empty string. It | |||
* is allowed to have several profiles being collected at | * is allowed to have several profiles being collected at | |||
* once. Attempts to start collecting several profiles with the same | * once. Attempts to start collecting several profiles with the same | |||
* title are silently ignored. | * title are silently ignored. While collecting a profile, functions | |||
* from all security contexts are included in it. The token-based | ||||
* filtering is only performed when querying for a profile. | ||||
*/ | */ | |||
static void StartProfiling(Handle<String> title); | static void StartProfiling(Handle<String> title); | |||
/** | /** | |||
* Stops collecting CPU profile with a given title and returns it. | * Stops collecting CPU profile with a given title and returns it. | |||
* If the title given is empty, finishes the last profile started. | * If the title given is empty, finishes the last profile started. | |||
*/ | */ | |||
static const CpuProfile* StopProfiling(Handle<String> title); | static const CpuProfile* StopProfiling( | |||
Handle<String> title, | ||||
Handle<Value> security_token = Handle<Value>()); | ||||
}; | }; | |||
} // namespace v8 | } // namespace v8 | |||
#undef V8EXPORT | #undef V8EXPORT | |||
#endif // V8_V8_PROFILER_H_ | #endif // V8_V8_PROFILER_H_ | |||
End of changes. 5 change blocks. | ||||
4 lines changed or deleted | 21 lines changed or added | |||
v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 129 | skipping to change at line 129 | |||
class Function; | class Function; | |||
class Date; | class Date; | |||
class ImplementationUtilities; | class ImplementationUtilities; | |||
class Signature; | class Signature; | |||
template <class T> class Handle; | template <class T> class Handle; | |||
template <class T> class Local; | template <class T> class Local; | |||
template <class T> class Persistent; | template <class T> class Persistent; | |||
class FunctionTemplate; | class FunctionTemplate; | |||
class ObjectTemplate; | class ObjectTemplate; | |||
class Data; | class Data; | |||
class AccessorInfo; | ||||
class StackTrace; | class StackTrace; | |||
class StackFrame; | class StackFrame; | |||
namespace internal { | namespace internal { | |||
class Arguments; | class Arguments; | |||
class Object; | class Object; | |||
class Top; | class Top; | |||
} | } | |||
skipping to change at line 506 | skipping to change at line 507 | |||
/** | /** | |||
* Pre-compilation data that can be associated with a script. This | * Pre-compilation data that can be associated with a script. This | |||
* data can be calculated for a script in advance of actually | * data can be calculated for a script in advance of actually | |||
* compiling it, and can be stored between compilations. When script | * compiling it, and can be stored between compilations. When script | |||
* data is given to the compile method compilation will be faster. | * data is given to the compile method compilation will be faster. | |||
*/ | */ | |||
class V8EXPORT ScriptData { // NOLINT | class V8EXPORT ScriptData { // NOLINT | |||
public: | public: | |||
virtual ~ScriptData() { } | virtual ~ScriptData() { } | |||
/** | ||||
* Pre-compiles the specified script (context-independent). | ||||
* | ||||
* \param input Pointer to UTF-8 script source code. | ||||
* \param length Length of UTF-8 script source code. | ||||
*/ | ||||
static ScriptData* PreCompile(const char* input, int length); | static ScriptData* PreCompile(const char* input, int length); | |||
static ScriptData* New(unsigned* data, int length); | ||||
/** | ||||
* Load previous pre-compilation data. | ||||
* | ||||
* \param data Pointer to data returned by a call to Data() of a previous | ||||
* ScriptData. Ownership is not transferred. | ||||
* \param length Length of data. | ||||
*/ | ||||
static ScriptData* New(const char* data, int length); | ||||
/** | ||||
* Returns the length of Data(). | ||||
*/ | ||||
virtual int Length() = 0; | virtual int Length() = 0; | |||
virtual unsigned* Data() = 0; | ||||
/** | ||||
* Returns a serialized representation of this ScriptData that can later | ||||
be | ||||
* passed to New(). NOTE: Serialized data is platform-dependent. | ||||
*/ | ||||
virtual const char* Data() = 0; | ||||
/** | ||||
* Returns true if the source code could not be parsed. | ||||
*/ | ||||
virtual bool HasError() = 0; | virtual bool HasError() = 0; | |||
}; | }; | |||
/** | /** | |||
* The origin, within a file, of a script. | * The origin, within a file, of a script. | |||
*/ | */ | |||
class V8EXPORT ScriptOrigin { | class V8EXPORT ScriptOrigin { | |||
public: | public: | |||
ScriptOrigin(Handle<Value> resource_name, | ScriptOrigin(Handle<Value> resource_name, | |||
Handle<Integer> resource_line_offset = Handle<Integer>(), | Handle<Integer> resource_line_offset = Handle<Integer>(), | |||
skipping to change at line 1284 | skipping to change at line 1311 | |||
kExternalByteArray = 1, | kExternalByteArray = 1, | |||
kExternalUnsignedByteArray, | kExternalUnsignedByteArray, | |||
kExternalShortArray, | kExternalShortArray, | |||
kExternalUnsignedShortArray, | kExternalUnsignedShortArray, | |||
kExternalIntArray, | kExternalIntArray, | |||
kExternalUnsignedIntArray, | kExternalUnsignedIntArray, | |||
kExternalFloatArray | kExternalFloatArray | |||
}; | }; | |||
/** | /** | |||
* Accessor[Getter|Setter] are used as callback functions when | ||||
* setting|getting a particular property. See Object and ObjectTemplate's | ||||
* method SetAccessor. | ||||
*/ | ||||
typedef Handle<Value> (*AccessorGetter)(Local<String> property, | ||||
const AccessorInfo& info); | ||||
typedef void (*AccessorSetter)(Local<String> property, | ||||
Local<Value> value, | ||||
const AccessorInfo& info); | ||||
/** | ||||
* Access control specifications. | ||||
* | ||||
* Some accessors should be accessible across contexts. These | ||||
* accessors have an explicit access control parameter which specifies | ||||
* the kind of cross-context access that should be allowed. | ||||
* | ||||
* Additionally, for security, accessors can prohibit overwriting by | ||||
* accessors defined in JavaScript. For objects that have such | ||||
* accessors either locally or in their prototype chain it is not | ||||
* possible to overwrite the accessor by using __defineGetter__ or | ||||
* __defineSetter__ from JavaScript code. | ||||
*/ | ||||
enum AccessControl { | ||||
DEFAULT = 0, | ||||
ALL_CAN_READ = 1, | ||||
ALL_CAN_WRITE = 1 << 1, | ||||
PROHIBITS_OVERWRITING = 1 << 2 | ||||
}; | ||||
/** | ||||
* A JavaScript object (ECMA-262, 4.3.3) | * A JavaScript object (ECMA-262, 4.3.3) | |||
*/ | */ | |||
class V8EXPORT Object : public Value { | class V8EXPORT Object : public Value { | |||
public: | public: | |||
bool Set(Handle<Value> key, | bool Set(Handle<Value> key, | |||
Handle<Value> value, | Handle<Value> value, | |||
PropertyAttribute attribs = None); | PropertyAttribute attribs = None); | |||
bool Set(uint32_t index, | bool Set(uint32_t index, | |||
Handle<Value> value); | Handle<Value> value); | |||
skipping to change at line 1325 | skipping to change at line 1384 | |||
bool Delete(Handle<String> key); | bool Delete(Handle<String> key); | |||
// Delete a property on this object bypassing interceptors and | // Delete a property on this object bypassing interceptors and | |||
// ignoring dont-delete attributes. | // ignoring dont-delete attributes. | |||
bool ForceDelete(Handle<Value> key); | bool ForceDelete(Handle<Value> key); | |||
bool Has(uint32_t index); | bool Has(uint32_t index); | |||
bool Delete(uint32_t index); | bool Delete(uint32_t index); | |||
bool SetAccessor(Handle<String> name, | ||||
AccessorGetter getter, | ||||
AccessorSetter setter = 0, | ||||
Handle<Value> data = Handle<Value>(), | ||||
AccessControl settings = DEFAULT, | ||||
PropertyAttribute attribute = None); | ||||
/** | /** | |||
* Returns an array containing the names of the enumerable properties | * Returns an array containing the names of the enumerable properties | |||
* of this object, including properties from prototype objects. The | * of this object, including properties from prototype objects. The | |||
* array returned by this method contains the same values as would | * array returned by this method contains the same values as would | |||
* be enumerated by a for-in statement over this object. | * be enumerated by a for-in statement over this object. | |||
*/ | */ | |||
Local<Array> GetPropertyNames(); | Local<Array> GetPropertyNames(); | |||
/** | /** | |||
* Get the prototype object. This does not skip objects marked to | * Get the prototype object. This does not skip objects marked to | |||
skipping to change at line 1612 | skipping to change at line 1678 | |||
inline Local<Object> Holder() const; | inline Local<Object> Holder() const; | |||
private: | private: | |||
internal::Object** args_; | internal::Object** args_; | |||
}; | }; | |||
typedef Handle<Value> (*InvocationCallback)(const Arguments& args); | typedef Handle<Value> (*InvocationCallback)(const Arguments& args); | |||
typedef int (*LookupCallback)(Local<Object> self, Local<String> name); | typedef int (*LookupCallback)(Local<Object> self, Local<String> name); | |||
/** | /** | |||
* Accessor[Getter|Setter] are used as callback functions when | ||||
* setting|getting a particular property. See objectTemplate::SetAccessor. | ||||
*/ | ||||
typedef Handle<Value> (*AccessorGetter)(Local<String> property, | ||||
const AccessorInfo& info); | ||||
typedef void (*AccessorSetter)(Local<String> property, | ||||
Local<Value> value, | ||||
const AccessorInfo& info); | ||||
/** | ||||
* NamedProperty[Getter|Setter] are used as interceptors on object. | * NamedProperty[Getter|Setter] are used as interceptors on object. | |||
* See ObjectTemplate::SetNamedPropertyHandler. | * See ObjectTemplate::SetNamedPropertyHandler. | |||
*/ | */ | |||
typedef Handle<Value> (*NamedPropertyGetter)(Local<String> property, | typedef Handle<Value> (*NamedPropertyGetter)(Local<String> property, | |||
const AccessorInfo& info); | const AccessorInfo& info); | |||
/** | /** | |||
* Returns the value if the setter intercepts the request. | * Returns the value if the setter intercepts the request. | |||
* Otherwise, returns an empty handle. | * Otherwise, returns an empty handle. | |||
*/ | */ | |||
skipping to change at line 1695 | skipping to change at line 1750 | |||
typedef Handle<Boolean> (*IndexedPropertyDeleter)(uint32_t index, | typedef Handle<Boolean> (*IndexedPropertyDeleter)(uint32_t index, | |||
const AccessorInfo& info) ; | const AccessorInfo& info) ; | |||
/** | /** | |||
* Returns an array containing the indices of the properties the | * Returns an array containing the indices of the properties the | |||
* indexed property getter intercepts. | * indexed property getter intercepts. | |||
*/ | */ | |||
typedef Handle<Array> (*IndexedPropertyEnumerator)(const AccessorInfo& info ); | typedef Handle<Array> (*IndexedPropertyEnumerator)(const AccessorInfo& info ); | |||
/** | /** | |||
* Access control specifications. | ||||
* | ||||
* Some accessors should be accessible across contexts. These | ||||
* accessors have an explicit access control parameter which specifies | ||||
* the kind of cross-context access that should be allowed. | ||||
* | ||||
* Additionally, for security, accessors can prohibit overwriting by | ||||
* accessors defined in JavaScript. For objects that have such | ||||
* accessors either locally or in their prototype chain it is not | ||||
* possible to overwrite the accessor by using __defineGetter__ or | ||||
* __defineSetter__ from JavaScript code. | ||||
*/ | ||||
enum AccessControl { | ||||
DEFAULT = 0, | ||||
ALL_CAN_READ = 1, | ||||
ALL_CAN_WRITE = 1 << 1, | ||||
PROHIBITS_OVERWRITING = 1 << 2 | ||||
}; | ||||
/** | ||||
* Access type specification. | * Access type specification. | |||
*/ | */ | |||
enum AccessType { | enum AccessType { | |||
ACCESS_GET, | ACCESS_GET, | |||
ACCESS_SET, | ACCESS_SET, | |||
ACCESS_HAS, | ACCESS_HAS, | |||
ACCESS_DELETE, | ACCESS_DELETE, | |||
ACCESS_KEYS | ACCESS_KEYS | |||
}; | }; | |||
skipping to change at line 2798 | skipping to change at line 2833 | |||
* restore the connection between a global object and a context | * restore the connection between a global object and a context | |||
* after DetachGlobal has been called. | * after DetachGlobal has been called. | |||
* | * | |||
* \param global_object The global object to reattach to the | * \param global_object The global object to reattach to the | |||
* context. For this to work, the global object must be the global | * context. For this to work, the global object must be the global | |||
* object that was associated with this context before a call to | * object that was associated with this context before a call to | |||
* DetachGlobal. | * DetachGlobal. | |||
*/ | */ | |||
void ReattachGlobal(Handle<Object> global_object); | void ReattachGlobal(Handle<Object> global_object); | |||
/** Creates a new context. */ | /** Creates a new context. | |||
* | ||||
* Returns a persistent handle to the newly allocated context. This | ||||
* persistent handle has to be disposed when the context is no | ||||
* longer used so the context can be garbage collected. | ||||
*/ | ||||
static Persistent<Context> New( | static Persistent<Context> New( | |||
ExtensionConfiguration* extensions = NULL, | ExtensionConfiguration* extensions = NULL, | |||
Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(), | Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(), | |||
Handle<Value> global_object = Handle<Value>()); | Handle<Value> global_object = Handle<Value>()); | |||
/** Returns the last entered context. */ | /** Returns the last entered context. */ | |||
static Local<Context> GetEntered(); | static Local<Context> GetEntered(); | |||
/** Returns the context that is on the top of the stack. */ | /** Returns the context that is on the top of the stack. */ | |||
static Local<Context> GetCurrent(); | static Local<Context> GetCurrent(); | |||
End of changes. 10 change blocks. | ||||
34 lines changed or deleted | 75 lines changed or added | |||