説明を見る。00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef V8_MESSAGES_H_
00034 #define V8_MESSAGES_H_
00035
00036 #include "handles-inl.h"
00037
00038
00039 namespace v8 { namespace internal {
00040 class MessageLocation;
00041 } }
00042
00043
00044 class V8Message {
00045 public:
00046 V8Message(char* type,
00047 v8::internal::Handle<v8::internal::JSArray> args,
00048 const v8::internal::MessageLocation* loc) :
00049 type_(type), args_(args), loc_(loc) { }
00050 char* type() const { return type_; }
00051 v8::internal::Handle<v8::internal::JSArray> args() const { return args_; }
00052 const v8::internal::MessageLocation* loc() const { return loc_; }
00053 private:
00054 char* type_;
00055 v8::internal::Handle<v8::internal::JSArray> const args_;
00056 const v8::internal::MessageLocation* loc_;
00057 };
00058
00059
00060 namespace v8 { namespace internal {
00061
00062 struct Language;
00063 class SourceInfo;
00064
00065 class MessageLocation {
00066 public:
00067 MessageLocation(Handle<Script> script,
00068 int start_pos,
00069 int end_pos)
00070 : script_(script),
00071 start_pos_(start_pos),
00072 end_pos_(end_pos) { }
00073 MessageLocation() : start_pos_(-1), end_pos_(-1) { }
00074
00075 Handle<Script> script() const { return script_; }
00076 int start_pos() const { return start_pos_; }
00077 int end_pos() const { return end_pos_; }
00078
00079 private:
00080 Handle<Script> script_;
00081 int start_pos_;
00082 int end_pos_;
00083 };
00084
00085
00086
00087
00088 class MessageHandler {
00089 public:
00090
00091 static void ReportMessage(const char* msg);
00092
00093
00094 static Handle<Object> MakeMessageObject(const char* type,
00095 MessageLocation* loc,
00096 Vector< Handle<Object> > args,
00097 Handle<String> stack_trace);
00098
00099
00100 static void ReportMessage(MessageLocation* loc, Handle<Object> message);
00101
00102 static void DefaultMessageReport(const MessageLocation* loc,
00103 Handle<Object> message_obj);
00104 static Handle<String> GetMessage(Handle<Object> data);
00105 static SmartPointer<char> GetLocalizedMessage(Handle<Object> data);
00106 };
00107
00108 } }
00109
00110 #endif // V8_MESSAGES_H_