Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: include/AdblockPlus/JsEngine.h

Issue 9884006: Add file name and line number when reporting exceptions (Closed)
Left Patch Set: Created March 15, 2013, 3:26 p.m.
Right Patch Set: Now with free functions Created March 15, 2013, 3:38 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | src/JsEngine.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #ifndef ADBLOCKPLUS_JS_ENGINE_H 1 #ifndef ADBLOCKPLUS_JS_ENGINE_H
2 #define ADBLOCKPLUS_JS_ENGINE_H 2 #define ADBLOCKPLUS_JS_ENGINE_H
3 3
4 #include <stdexcept> 4 #include <stdexcept>
5 #include <string> 5 #include <string>
6 #include <v8.h> 6 #include <v8.h>
7 7
8 class ErrorCallback; 8 class ErrorCallback;
9 class FileReader; 9 class FileReader;
10 10
11 namespace AdblockPlus 11 namespace AdblockPlus
12 { 12 {
13 class JsError : public std::runtime_error 13 class JsError : public std::runtime_error
14 { 14 {
15 public: 15 public:
16 JsError(const v8::Handle<v8::Value> exception, 16 JsError(const v8::Handle<v8::Value> exception,
17 const v8::Handle<v8::Message> message);
18
19 private:
20 static std::string ExceptionToString(const v8::Handle<v8::Value> exception,
21 const v8::Handle<v8::Message> message); 17 const v8::Handle<v8::Message> message);
22 }; 18 };
23 19
24 class JsEngine 20 class JsEngine
25 { 21 {
26 public: 22 public:
27 JsEngine(const FileReader* const fileReader, 23 JsEngine(const FileReader* const fileReader,
28 ErrorCallback* const errorCallback); 24 ErrorCallback* const errorCallback);
29 void Evaluate(const char* source, const char* filename = NULL); 25 void Evaluate(const char* source, const char* filename = NULL);
30 void Evaluate(const std::string& source) 26 void Evaluate(const std::string& source)
31 { 27 {
32 Evaluate(source.c_str()); 28 Evaluate(source.c_str());
33 } 29 }
34 void Evaluate(const std::string& source, const std::string& filename) 30 void Evaluate(const std::string& source, const std::string& filename)
35 { 31 {
36 Evaluate(filename.c_str(), source.c_str()); 32 Evaluate(filename.c_str(), source.c_str());
37 } 33 }
38 void Load(const std::string& scriptPath); 34 void Load(const std::string& scriptPath);
39 std::string Call(const std::string& functionName); 35 std::string Call(const std::string& functionName);
40 void Gc(); 36 void Gc();
41 37
42 private: 38 private:
43 const FileReader* const fileReader; 39 const FileReader* const fileReader;
44 v8::Persistent<v8::Context> context; 40 v8::Persistent<v8::Context> context;
45 inline v8::Handle<v8::Script> CompileScript(const char* source, const char* filename); 41 inline v8::Handle<v8::Script> CompileScript(const char* source, const char* filename);
46 }; 42 };
47 } 43 }
48 44
49 #endif 45 #endif
LEFTRIGHT
« no previous file | src/JsEngine.cpp » ('j') | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld