|
| 1 | +// -*- mode: c++ -*- |
| 2 | + |
| 3 | +#ifndef RR_MESSAGE_H |
| 4 | +#define RR_MESSAGE_H |
| 5 | +#include "rr.h" |
| 6 | + |
| 7 | +namespace rr { |
| 8 | + class Message : public Ref<v8::Message> { |
| 9 | + public: |
| 10 | + Message(VALUE self) : Ref<v8::Message>(self) {} |
| 11 | + Message(v8::Isolate* isolate, v8::Local<v8::Message> msg) : |
| 12 | + Ref<v8::Message>(isolate, msg) {} |
| 13 | + |
| 14 | + static VALUE Get(VALUE self) { |
| 15 | + Message message(self); |
| 16 | + Locker lock(message); |
| 17 | + return String(message, message->Get()); |
| 18 | + } |
| 19 | + static VALUE GetSourceLine(VALUE self, VALUE cxt) { |
| 20 | + Message message(self); |
| 21 | + Locker lock(message); |
| 22 | + return String::Maybe(message, message->GetSourceLine(Context(cxt))); |
| 23 | + } |
| 24 | + static VALUE GetScriptOrigin(VALUE self) { |
| 25 | + Message message(self); |
| 26 | + Locker lock(message); |
| 27 | + return ScriptOrigin(message, message->GetScriptOrigin()); |
| 28 | + } |
| 29 | + static VALUE GetScriptResourceName(VALUE self) { |
| 30 | + Message message(self); |
| 31 | + Locker lock(message); |
| 32 | + return Value(message, message->GetScriptResourceName()); |
| 33 | + } |
| 34 | + static VALUE GetStackTrace(VALUE self) { |
| 35 | + Message message(self); |
| 36 | + Locker lock(message); |
| 37 | + return StackTrace(message, message->GetStackTrace()); |
| 38 | + } |
| 39 | + static VALUE GetLineNumber(VALUE self, VALUE cxt) { |
| 40 | + Message message(self); |
| 41 | + Locker lock(message); |
| 42 | + return Int::Maybe(message->GetLineNumber(Context(cxt))); |
| 43 | + } |
| 44 | + static VALUE GetStartPosition(VALUE self) { |
| 45 | + Message message(self); |
| 46 | + Locker lock(message); |
| 47 | + return Int(message->GetStartPosition()); |
| 48 | + } |
| 49 | + static VALUE GetEndPosition(VALUE self) { |
| 50 | + Message message(self); |
| 51 | + Locker lock(message); |
| 52 | + return Int(message->GetEndPosition()); |
| 53 | + } |
| 54 | + static VALUE GetStartColumn(VALUE self, VALUE cxt) { |
| 55 | + Message message(self); |
| 56 | + Locker lock(message); |
| 57 | + return Int::Maybe(message->GetStartColumn(Context(cxt))); |
| 58 | + } |
| 59 | + static VALUE GetEndColumn(VALUE self, VALUE cxt) { |
| 60 | + Message message(self); |
| 61 | + Locker lock(message); |
| 62 | + return Int::Maybe(message->GetEndColumn(Context(cxt))); |
| 63 | + } |
| 64 | + static VALUE IsOpaque(VALUE self) { |
| 65 | + Message message(self); |
| 66 | + Locker lock(message); |
| 67 | + return Bool(message->IsOpaque()); |
| 68 | + } |
| 69 | + static VALUE IsSharedCrossOrigin(VALUE self) { |
| 70 | + Message message(self); |
| 71 | + Locker lock(message); |
| 72 | + return Bool(message->IsSharedCrossOrigin()); |
| 73 | + } |
| 74 | + |
| 75 | + static inline void Init() { |
| 76 | + ClassBuilder("Message"). |
| 77 | + defineMethod("Get", &Get). |
| 78 | + defineMethod("GetSourceLine", &GetSourceLine). |
| 79 | + defineMethod("GetScriptOrigin", &GetScriptOrigin). |
| 80 | + defineMethod("GetScriptResourceName", &GetScriptResourceName). |
| 81 | + defineMethod("GetStackTrace", &GetStackTrace). |
| 82 | + defineMethod("GetLineNumber", &GetLineNumber). |
| 83 | + defineMethod("GetStartPosition", &GetStartPosition). |
| 84 | + defineMethod("GetEndPosition", &GetEndPosition). |
| 85 | + defineMethod("GetStartColumn", &GetStartColumn). |
| 86 | + defineMethod("GetEndColumn", &GetEndColumn). |
| 87 | + defineMethod("IsSharedCrossOrigin", &IsSharedCrossOrigin). |
| 88 | + defineMethod("IsOpaque", &IsOpaque). |
| 89 | + store(&Class); |
| 90 | + } |
| 91 | + }; |
| 92 | +} |
| 93 | + |
| 94 | + |
| 95 | +#endif /* RR_MESSAGE_H */ |
0 commit comments