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 |
74 #define MESSAGE_TEMPLATES(T) \ | 89 #define MESSAGE_TEMPLATES(T) \ |
75 /* Error */ \ | 90 /* Error */ \ |
76 T(None, "") \ | 91 T(None, "") \ |
77 T(CyclicProto, "Cyclic __proto__ value") \ | 92 T(CyclicProto, "Cyclic __proto__ value") \ |
78 T(Debugger, "Debugger: %") \ | 93 T(Debugger, "Debugger: %") \ |
79 T(DebuggerLoading, "Error loading debugger") \ | 94 T(DebuggerLoading, "Error loading debugger") \ |
80 T(DefaultOptionsMissing, "Internal % error. Default options are missing.") \ | 95 T(DefaultOptionsMissing, "Internal % error. Default options are missing.") \ |
81 T(UncaughtException, "Uncaught %") \ | 96 T(UncaughtException, "Uncaught %") \ |
82 T(Unsupported, "Not supported") \ | 97 T(Unsupported, "Not supported") \ |
83 T(WrongServiceType, "Internal error, wrong service type: %") \ | 98 T(WrongServiceType, "Internal error, wrong service type: %") \ |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); | 550 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); |
536 static base::SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, | 551 static base::SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, |
537 Handle<Object> data); | 552 Handle<Object> data); |
538 }; | 553 }; |
539 | 554 |
540 | 555 |
541 } // namespace internal | 556 } // namespace internal |
542 } // namespace v8 | 557 } // namespace v8 |
543 | 558 |
544 #endif // V8_MESSAGES_H_ | 559 #endif // V8_MESSAGES_H_ |
OLD | NEW |