18 #ifndef hifi_ScriptProgramV8Wrapper_h
19 #define hifi_ScriptProgramV8Wrapper_h
21 #include <QtCore/QPointer>
23 #include "../ScriptProgram.h"
24 #include "ScriptEngineV8.h"
32 inline ScriptSyntaxCheckResultV8Wrapper() : _errorColumnNumber(0), _errorLineNumber(0), _errorMessage(
"Not compiled"), _state(
ScriptSyntaxCheckResult::Error) {}
33 inline ScriptSyntaxCheckResultV8Wrapper(State state,
int columnNumber = 0,
int lineNumber = 0,
const QString &message = QString(
""),
const QString &errorBacktrace = QString(
"")) :
34 _errorColumnNumber(columnNumber), _errorLineNumber(lineNumber), _errorMessage(message), _state(state) {}
39 virtual QString
errorMessage()
const override {
return _errorMessage;}
40 virtual QString
errorBacktrace()
const override {
return _errorBacktrace;}
41 virtual State state()
const override {
return _state;}
44 int _errorColumnNumber;
46 QString _errorMessage;
47 QString _errorBacktrace;
55 _engine(engine), _source(source), _url(url), _value(_engine) {
56 auto isolate = _engine->getIsolate();
57 v8::Locker locker(isolate);
58 v8::Isolate::Scope isolateScope(isolate);
59 v8::HandleScope handleScope(isolate);
60 v8::Context::Scope contextScope(_engine->getContext());
61 _value = V8ScriptProgram(engine, v8::Local<v8::Script>());
65 inline const V8ScriptProgram& toV8Value()
const {
return _value; }
68 virtual ScriptSyntaxCheckResultPointer checkSyntax()
override;
69 virtual QString
fileName()
const override {
return _url;}
70 virtual QString
sourceCode()
const override {
return _source;}
73 ScriptEngineV8 *_engine;
76 V8ScriptProgram _value;
77 bool _isCompiled =
false;
78 ScriptSyntaxCheckResultV8Wrapper _compileResult;
Engine-independent representation of a script program.
Definition: ScriptProgram.h:35
[V8] Implements ScriptProgram for V8 and translates calls for V8ScriptProgram
Definition: ScriptProgramV8Wrapper.h:52
virtual QString sourceCode() const override
Returns the source code of this program.
Definition: ScriptProgramV8Wrapper.h:70
virtual QString fileName() const override
Returns the filename associated with this program.
Definition: ScriptProgramV8Wrapper.h:69
Engine-independent representation of a script syntax check.
Definition: ScriptProgram.h:65
virtual QString errorBacktrace() const =0
virtual QString errorMessage() const =0
Returns the error message of this ScriptSyntaxCheckResult, or an empty string if there is no error.
virtual State state() const =0
Returns the state of this ScriptSyntaxCheckResult.
virtual int errorColumnNumber() const =0
Returns the error column number of this ScriptSyntaxCheckResult, or -1 if there is no error.
virtual int errorLineNumber() const =0
Returns the error line number of this ScriptSyntaxCheckResult, or -1 if there is no error.
State
State of the syntax check.
Definition: ScriptProgram.h:73