Showing the changes to libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp (1 of 10 files). Show all
Unified · Split
| @@ -139,7 +139,7 @@ ScriptObjectV8Proxy* ScriptObjectV8Proxy::unwrapProxy(const V8ScriptValue& val) · 138 unmodified lines | ||
| 139 | 139 | if (!v8Value->IsObject()) { |
| 140 | 140 | return nullptr; |
| 141 | 141 | } |
| 142 | − v8::Local<v8::Object> v8Object = v8Value->ToObject(val.constGetContext()).ToLocalChecked(); | |
| 142 | + v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::Cast(v8Value); | |
| 143 | 143 | if (v8Object->InternalFieldCount() != 2) { |
| 144 | 144 | return nullptr; |
| 145 | 145 | } |
| @@ -167,6 +167,7 @@ void ScriptObjectV8Proxy::investigate() { · 21 unmodified lines | ||
| 167 | 167 | if (!qobject) return; |
| 168 | 168 | |
| 169 | 169 | v8::HandleScope handleScope(_engine->getIsolate()); |
| 170 | + v8::Context::Scope contextScope(_engine->getContext()); | |
| 170 | 171 | |
| 171 | 172 | auto objectTemplate = _v8ObjectTemplate.Get(_engine->getIsolate()); |
| 172 | 173 | objectTemplate->SetInternalFieldCount(3); |
| @@ -228,13 +229,17 @@ void ScriptObjectV8Proxy::investigate() { · 55 unmodified lines | ||
| 228 | 229 | break; |
| 229 | 230 | } |
| 230 | 231 | |
| 231 | − V8ScriptString name(_engine->getIsolate(), v8::String::NewFromUtf8(_engine->getIsolate(), szName.data(), v8::NewStringType::kNormal, szName.length()).ToLocalChecked()); | |
| 232 | + auto nameString = v8::String::NewFromUtf8(_engine->getIsolate(), szName.data(), v8::NewStringType::kNormal, szName.length()).ToLocalChecked(); | |
| 233 | + V8ScriptString name(_engine->getIsolate(), nameString); | |
| 232 | 234 | auto nameLookup = methodNames.find(name); |
| 233 | 235 | if (isSignal) { |
| 234 | 236 | if (nameLookup == methodNames.end()) { |
| 235 | 237 | SignalDef& signalDef = _signals.insert(idx, SignalDef(_engine->getIsolate(), name.get())).value(); |
| 236 | 238 | signalDef.name = name; |
| 237 | 239 | signalDef.signal = method; |
| 240 | + qDebug(scriptengine) << "Utf8Value 1: " << QString(*v8::String::Utf8Value(const_cast<v8::Isolate*>(_engine->getIsolate()), nameString)); | |
| 241 | + qDebug(scriptengine) << "Utf8Value 2: " << QString(*v8::String::Utf8Value(const_cast<v8::Isolate*>(_engine->getIsolate()), name.constGet())); | |
| 242 | + qDebug(scriptengine) << "toQString: " << name.toQString(); | |
| 238 | 243 | methodNames.insert(name, idx); |
| 239 | 244 | } else { |
| 240 | 245 | int originalMethodId = nameLookup.value(); |
| @@ -474,7 +479,7 @@ ScriptVariantV8Proxy* ScriptVariantV8Proxy::unwrapProxy(const V8ScriptValue& val · 233 unmodified lines | ||
| 474 | 479 | if (!v8Value->IsObject()) { |
| 475 | 480 | return nullptr; |
| 476 | 481 | } |
| 477 | − v8::Local<v8::Object> v8Object = v8Value->ToObject(val.constGetContext()).ToLocalChecked(); | |
| 482 | + v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::Cast(v8Value); | |
| 478 | 483 | if (v8Object->InternalFieldCount() != 2) { |
| 479 | 484 | return nullptr; |
| 480 | 485 | } |