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
52 v8::ScriptOrigin scriptOrigin(isolate, v8::String::NewFromUtf8(isolate, _url.toStdString().c_str()).ToLocalChecked());52 v8::ScriptOrigin scriptOrigin(isolate, v8::String::NewFromUtf8(isolate, _url.toStdString().c_str()).ToLocalChecked());
53 v8::Local<v8::Script> script;53 v8::Local<v8::Script> script;
54 if (v8::Script::Compile(context, v8::String::NewFromUtf8(isolate, _source.toStdString().c_str()).ToLocalChecked(), &scriptOrigin).ToLocal(&script)) {54 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;
56 _compileResult = ScriptSyntaxCheckResultV8Wrapper(ScriptSyntaxCheckResult::Valid);56 _compileResult = ScriptSyntaxCheckResultV8Wrapper(ScriptSyntaxCheckResult::Valid);
57 _value = V8ScriptProgram(isolate, script);57 _value = V8ScriptProgram(_engine, script);
58 _isCompiled = true;58 _isCompiled = true;
59 return true;59 return true;
60 }60 }
@@ -66,10 +66,13 @@ bool ScriptProgramV8Wrapper::compile() { · 5 unmodified lines
66 errorLineNumber = exceptionMessage->GetLineNumber(context).FromJust();66 errorLineNumber = exceptionMessage->GetLineNumber(context).FromJust();
67 errorColumnNumber = exceptionMessage->GetStartColumn(context).FromJust();67 errorColumnNumber = exceptionMessage->GetStartColumn(context).FromJust();
68 v8::Local<v8::Value> backtraceV8String;68 v8::Local<v8::Value> backtraceV8String;
69 if (tryCatch.StackTrace(context).ToLocal(&backtraceV8String) && backtraceV8String->IsString() &&69 if (tryCatch.StackTrace(context).ToLocal(&backtraceV8String)) {
70 v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) {70 if (backtraceV8String->IsString()) {
71 v8::String::Utf8Value backtraceUtf8Value(isolate, backtraceV8String);71 if (v8::Local<v8::String>::Cast(backtraceV8String)->Length() > 0) {
72 errorBacktrace = *backtraceUtf8Value;72 v8::String::Utf8Value backtraceUtf8Value(isolate, backtraceV8String);
73 errorBacktrace = *backtraceUtf8Value;
74 }
75 }
73 }76 }
74 }77 }
75 //V8TODO78 //V8TODO