v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 4965 | skipping to change at line 4965 | |||
*/ | */ | |||
void SetVerbose(bool value); | void SetVerbose(bool value); | |||
/** | /** | |||
* Set whether or not this TryCatch should capture a Message object | * Set whether or not this TryCatch should capture a Message object | |||
* which holds source information about where the exception | * which holds source information about where the exception | |||
* occurred. True by default. | * occurred. True by default. | |||
*/ | */ | |||
void SetCaptureMessage(bool value); | void SetCaptureMessage(bool value); | |||
/** | ||||
* There are cases when the raw address of C++ TryCatch object cannot be | ||||
* used for comparisons with addresses into the JS stack. The cases are: | ||||
* 1) ARM, ARM64 and MIPS simulators which have separate JS stack. | ||||
* 2) Address sanitizer allocates local C++ object in the heap when | ||||
* UseAfterReturn mode is enabled. | ||||
* This method returns address that can be used for comparisons with | ||||
* addresses into the JS stack. When neither simulator nor ASAN's | ||||
* UseAfterReturn is enabled, then the address returned will be the addre | ||||
ss | ||||
* of the C++ try catch handler itself. | ||||
*/ | ||||
static void* JSStackComparableAddress(v8::TryCatch* handler) { | ||||
if (handler == NULL) return NULL; | ||||
return handler->js_stack_comparable_address_; | ||||
} | ||||
private: | private: | |||
// Make it hard to create heap-allocated TryCatch blocks. | // Make it hard to create heap-allocated TryCatch blocks. | |||
TryCatch(const TryCatch&); | TryCatch(const TryCatch&); | |||
void operator=(const TryCatch&); | void operator=(const TryCatch&); | |||
void* operator new(size_t size); | void* operator new(size_t size); | |||
void operator delete(void*, size_t); | void operator delete(void*, size_t); | |||
v8::internal::Isolate* isolate_; | v8::internal::Isolate* isolate_; | |||
void* next_; | v8::TryCatch* next_; | |||
void* exception_; | void* exception_; | |||
void* message_obj_; | void* message_obj_; | |||
void* message_script_; | void* message_script_; | |||
void* js_stack_comparable_address_; | ||||
int message_start_pos_; | int message_start_pos_; | |||
int message_end_pos_; | int message_end_pos_; | |||
bool is_verbose_ : 1; | bool is_verbose_ : 1; | |||
bool can_continue_ : 1; | bool can_continue_ : 1; | |||
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; | |||
}; | }; | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 19 lines changed or added | |||