OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 // The infrastructure used for (localized) message reporting in V8. | 5 // The infrastructure used for (localized) message reporting in V8. |
6 // | 6 // |
7 // Note: there's a big unresolved issue about ownership of the data | 7 // Note: there's a big unresolved issue about ownership of the data |
8 // structures used by this framework. | 8 // structures used by this framework. |
9 | 9 |
10 #ifndef V8_MESSAGES_H_ | 10 #ifndef V8_MESSAGES_H_ |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 | 64 |
65 private: | 65 private: |
66 Isolate* isolate_; | 66 Isolate* isolate_; |
67 Handle<Object> receiver_; | 67 Handle<Object> receiver_; |
68 Handle<JSFunction> fun_; | 68 Handle<JSFunction> fun_; |
69 int32_t pos_ = -1; | 69 int32_t pos_ = -1; |
70 Handle<JSObject> wasm_obj_; | 70 Handle<JSObject> wasm_obj_; |
71 uint32_t wasm_func_index_ = static_cast<uint32_t>(-1); | 71 uint32_t wasm_func_index_ = static_cast<uint32_t>(-1); |
72 }; | 72 }; |
73 | 73 |
74 // Determines how stack trace collection skips frames. | |
75 enum FrameSkipMode { | |
76 // Unconditionally skips the first frame. Used e.g. when the Error constructor | |
77 // is called, in which case the first frame is always a BUILTIN_EXIT frame. | |
78 SKIP_FIRST, | |
79 // Skip all frames until a specified caller function is seen. | |
80 SKIP_UNTIL_SEEN, | |
81 SKIP_NONE, | |
82 }; | |
83 | |
84 MaybeHandle<Object> ConstructError(Isolate* isolate, Handle<JSFunction> target, | |
85 Handle<Object> new_target, | |
86 Handle<Object> message, FrameSkipMode mode, | |
87 bool suppress_detailed_trace); | |
88 | |
89 #define MESSAGE_TEMPLATES(T) \ | 74 #define MESSAGE_TEMPLATES(T) \ |
90 /* Error */ \ | 75 /* Error */ \ |
91 T(None, "") \ | 76 T(None, "") \ |
92 T(CyclicProto, "Cyclic __proto__ value") \ | 77 T(CyclicProto, "Cyclic __proto__ value") \ |
93 T(Debugger, "Debugger: %") \ | 78 T(Debugger, "Debugger: %") \ |
94 T(DebuggerLoading, "Error loading debugger") \ | 79 T(DebuggerLoading, "Error loading debugger") \ |
95 T(DefaultOptionsMissing, "Internal % error. Default options are missing.") \ | 80 T(DefaultOptionsMissing, "Internal % error. Default options are missing.") \ |
96 T(UncaughtException, "Uncaught %") \ | 81 T(UncaughtException, "Uncaught %") \ |
97 T(Unsupported, "Not supported") \ | 82 T(Unsupported, "Not supported") \ |
98 T(WrongServiceType, "Internal error, wrong service type: %") \ | 83 T(WrongServiceType, "Internal error, wrong service type: %") \ |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); | 535 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); |
551 static base::SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, | 536 static base::SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, |
552 Handle<Object> data); | 537 Handle<Object> data); |
553 }; | 538 }; |
554 | 539 |
555 | 540 |
556 } // namespace internal | 541 } // namespace internal |
557 } // namespace v8 | 542 } // namespace v8 |
558 | 543 |
559 #endif // V8_MESSAGES_H_ | 544 #endif // V8_MESSAGES_H_ |
OLD | NEW |