History

Script engine thread safety improvements

ksuprynowicz committed 3 years ago

Commit 044cd501 parent 6bd8a8d21 files · +374 −204Browse files

Showing the changes to libraries/script-engine/src/v8/ScriptProgramV8Wrapper.cpp (1 of 21 files). Show all

Unified · Split

libraries/script-engine/src/v8/ScriptProgramV8Wrapper.cpp+9−6
@@ -52,9 +52,9 @@ bool ScriptProgramV8Wrapper::compile() { · 51 unmodified lines
5252 v8::ScriptOrigin scriptOrigin(isolate, v8::String::NewFromUtf8(isolate, _url.toStdString().c_str()).ToLocalChecked());
5353 v8::Local<v8::Script> script;
5454 if (v8::Script::Compile(context, v8::String::NewFromUtf8(isolate, _source.toStdString().c_str()).ToLocalChecked(), &scriptOrigin).ToLocal(&script)) {
55− qDebug() << "Script compilation succesful: " << _url;
55+ qDebug() << "Script compilation successful: " << _url;
5656 _compileResult = ScriptSyntaxCheckResultV8Wrapper(ScriptSyntaxCheckResult::Valid);
57− _value = V8ScriptProgram(isolate, script);
57+ _value = V8ScriptProgram(_engine, script);
5858 _isCompiled = true;
5959 return true;
6060 }
@@ -66,10 +66,13 @@ bool ScriptProgramV8Wrapper::compile() { · 5 unmodified lines
6666 errorLineNumber = exceptionMessage->GetLineNumber(context).FromJust();
6767 errorColumnNumber = exceptionMessage->GetStartColumn(context).FromJust();
6868 v8::Local<v8::Value> backtraceV8String;
69− if (tryCatch.StackTrace(context).ToLocal(&backtraceV8String) && backtraceV8String->IsString() &&
70− v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) {
71− v8::String::Utf8Value backtraceUtf8Value(isolate, backtraceV8String);
72− errorBacktrace = *backtraceUtf8Value;
69+ if (tryCatch.StackTrace(context).ToLocal(&backtraceV8String)) {
70+ if (backtraceV8String->IsString()) {
71+ if (v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) {
72+ v8::String::Utf8Value backtraceUtf8Value(isolate, backtraceV8String);
73+ errorBacktrace = *backtraceUtf8Value;
74+ }
75+ }
7376 }
7477 }
7578 //V8TODO