Showing the changes to libraries/script-engine/src/v8/ScriptProgramV8Wrapper.cpp (1 of 8 files). Show all
Unified · Split
| @@ -32,7 +32,14 @@ ScriptSyntaxCheckResultPointer ScriptProgramV8Wrapper::checkSyntax() { · 31 unmodified lines | ||
| 32 | 32 | } |
| 33 | 33 | |
| 34 | 34 | bool ScriptProgramV8Wrapper::compile() { |
| 35 | + if (_isCompiled) { | |
| 36 | + // V8TODO is there a case where source code changes later and needs to be compiled again? | |
| 37 | + // V8TODO is same program used from multiple isolates | |
| 38 | + return true; | |
| 39 | + } | |
| 35 | 40 | auto isolate = _engine->getIsolate(); |
| 41 | + v8::Locker locker(isolate); | |
| 42 | + v8::Isolate::Scope isolateScope(isolate); | |
| 36 | 43 | v8::HandleScope handleScope(isolate); |
| 37 | 44 | auto context = _engine->getContext(); |
| 38 | 45 | v8::Context::Scope contextScope(context); |
| @@ -48,6 +55,7 @@ bool ScriptProgramV8Wrapper::compile() { · 9 unmodified lines | ||
| 48 | 55 | qDebug() << "Script compilation succesful: " << _url; |
| 49 | 56 | _compileResult = ScriptSyntaxCheckResultV8Wrapper(ScriptSyntaxCheckResult::Valid); |
| 50 | 57 | _value = V8ScriptProgram(isolate, script); |
| 58 | + _isCompiled = true; | |
| 51 | 59 | return true; |
| 52 | 60 | } |
| 53 | 61 | qDebug() << "Script compilation failed: " << _url; |