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

Side by Side Diff: include/AdblockPlus/JsEngine.h

Issue 9884006: Add file name and line number when reporting exceptions (Closed)
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:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/JsEngine.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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);
17 }; 18 };
18 19
19 class JsEngine 20 class JsEngine
20 { 21 {
21 public: 22 public:
22 JsEngine(const FileReader* const fileReader, 23 JsEngine(const FileReader* const fileReader,
23 ErrorCallback* const errorCallback); 24 ErrorCallback* const errorCallback);
24 void Evaluate(const char* source, const char* filename = NULL); 25 void Evaluate(const char* source, const char* filename = NULL);
25 void Evaluate(const std::string& source) 26 void Evaluate(const std::string& source)
26 { 27 {
27 Evaluate(source.c_str()); 28 Evaluate(source.c_str());
28 } 29 }
29 void Evaluate(const std::string& source, const std::string& filename) 30 void Evaluate(const std::string& source, const std::string& filename)
30 { 31 {
31 Evaluate(filename.c_str(), source.c_str()); 32 Evaluate(filename.c_str(), source.c_str());
32 } 33 }
33 void Load(const std::string& scriptPath); 34 void Load(const std::string& scriptPath);
34 std::string Call(const std::string& functionName); 35 std::string Call(const std::string& functionName);
35 void Gc(); 36 void Gc();
36 37
37 private: 38 private:
38 const FileReader* const fileReader; 39 const FileReader* const fileReader;
39 v8::Persistent<v8::Context> context; 40 v8::Persistent<v8::Context> context;
40 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);
41 }; 42 };
42 } 43 }
43 44
44 #endif 45 #endif
OLDNEW
« no previous file with comments | « no previous file | src/JsEngine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld