| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 5057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5068 */ | 5068 */ |
| 5069 void SetVerbose(bool value); | 5069 void SetVerbose(bool value); |
| 5070 | 5070 |
| 5071 /** | 5071 /** |
| 5072 * Set whether or not this TryCatch should capture a Message object | 5072 * Set whether or not this TryCatch should capture a Message object |
| 5073 * which holds source information about where the exception | 5073 * which holds source information about where the exception |
| 5074 * occurred. True by default. | 5074 * occurred. True by default. |
| 5075 */ | 5075 */ |
| 5076 void SetCaptureMessage(bool value); | 5076 void SetCaptureMessage(bool value); |
| 5077 | 5077 |
| 5078 /** |
| 5079 * There are cases when the raw address of C++ TryCatch object cannot be |
| 5080 * used for comparisons with addresses into the JS stack. The cases are: |
| 5081 * 1) ARM, ARM64 and MIPS simulators which have separate JS stack. |
| 5082 * 2) Address sanitizer allocates local C++ object in the heap when |
| 5083 * UseAfterReturn mode is enabled. |
| 5084 * This method returns address that can be used for comparisons with |
| 5085 * addresses into the JS stack. When neither simulator nor ASAN's |
| 5086 * UseAfterReturn is enabled, then the address returned will be the address |
| 5087 * of the C++ try catch handler itself. |
| 5088 */ |
| 5089 static void* JSStackComparableAddress(v8::TryCatch* handler) { |
| 5090 if (handler == NULL) return NULL; |
| 5091 return handler->js_stack_comparable_address_; |
| 5092 } |
| 5093 |
| 5078 private: | 5094 private: |
| 5079 // Make it hard to create heap-allocated TryCatch blocks. | 5095 // Make it hard to create heap-allocated TryCatch blocks. |
| 5080 TryCatch(const TryCatch&); | 5096 TryCatch(const TryCatch&); |
| 5081 void operator=(const TryCatch&); | 5097 void operator=(const TryCatch&); |
| 5082 void* operator new(size_t size); | 5098 void* operator new(size_t size); |
| 5083 void operator delete(void*, size_t); | 5099 void operator delete(void*, size_t); |
| 5084 | 5100 |
| 5085 v8::internal::Isolate* isolate_; | 5101 v8::internal::Isolate* isolate_; |
| 5086 void* next_; | 5102 v8::TryCatch* next_; |
| 5087 void* exception_; | 5103 void* exception_; |
| 5088 void* message_obj_; | 5104 void* message_obj_; |
| 5089 void* message_script_; | 5105 void* message_script_; |
| 5106 void* js_stack_comparable_address_; |
| 5090 int message_start_pos_; | 5107 int message_start_pos_; |
| 5091 int message_end_pos_; | 5108 int message_end_pos_; |
| 5092 bool is_verbose_ : 1; | 5109 bool is_verbose_ : 1; |
| 5093 bool can_continue_ : 1; | 5110 bool can_continue_ : 1; |
| 5094 bool capture_message_ : 1; | 5111 bool capture_message_ : 1; |
| 5095 bool rethrow_ : 1; | 5112 bool rethrow_ : 1; |
| 5096 bool has_terminated_ : 1; | 5113 bool has_terminated_ : 1; |
| 5097 | 5114 |
| 5098 friend class v8::internal::Isolate; | 5115 friend class v8::internal::Isolate; |
| 5099 }; | 5116 }; |
| (...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6618 */ | 6635 */ |
| 6619 | 6636 |
| 6620 | 6637 |
| 6621 } // namespace v8 | 6638 } // namespace v8 |
| 6622 | 6639 |
| 6623 | 6640 |
| 6624 #undef TYPE_CHECK | 6641 #undef TYPE_CHECK |
| 6625 | 6642 |
| 6626 | 6643 |
| 6627 #endif // V8_H_ | 6644 #endif // V8_H_ |
| OLD | NEW |