From 4c451ba43b19c2679467bbb7d7502b3596224038 Mon Sep 17 00:00:00 2001 From: Adam Klein Date: Wed, 17 Jan 2018 21:06:27 +0000 Subject: Pass Isolate to v8::String::Utf8Value API The non-Isolate version will soon be deprecated. Bug: v8:7269, v8:7282 Change-Id: I204e45bd73f5b809d6c44b77bbcf62d32e7ccbec Reviewed-on: https://pdfium-review.googlesource.com/23058 Reviewed-by: dsinclair Reviewed-by: Jochen Eisinger Commit-Queue: Jochen Eisinger --- fxjs/cfxjse_arguments.cpp | 2 +- fxjs/cfxjse_class.cpp | 8 ++++---- fxjs/cfxjse_value.cpp | 2 +- fxjs/cjs_global.cpp | 20 +++++++++++--------- fxjs/cjs_v8.cpp | 4 ++-- fxjs/fxjs_v8.cpp | 4 ++-- 6 files changed, 21 insertions(+), 19 deletions(-) diff --git a/fxjs/cfxjse_arguments.cpp b/fxjs/cfxjse_arguments.cpp index f390cefdf8..663996ce88 100644 --- a/fxjs/cfxjse_arguments.cpp +++ b/fxjs/cfxjse_arguments.cpp @@ -41,7 +41,7 @@ float CFXJSE_Arguments::GetFloat(int32_t index) const { ByteString CFXJSE_Arguments::GetUTF8String(int32_t index) const { v8::Local hString = (*m_pInfo)[index]->ToString(); - v8::String::Utf8Value szStringVal(hString); + v8::String::Utf8Value szStringVal(m_pInfo->GetIsolate(), hString); return ByteString(*szStringVal); } diff --git a/fxjs/cfxjse_class.cpp b/fxjs/cfxjse_class.cpp index 9515ef4b74..dd2181b853 100644 --- a/fxjs/cfxjse_class.cpp +++ b/fxjs/cfxjse_class.cpp @@ -81,7 +81,7 @@ void DynPropGetterAdapter_MethodCallback( hCallBackInfo->GetInternalField(1).As(); ASSERT(lpClass && !hPropName.IsEmpty()); - v8::String::Utf8Value szPropName(hPropName); + v8::String::Utf8Value szPropName(info.GetIsolate(), hPropName); WideString szFxPropName = WideString::FromUTF8(*szPropName); CJS_Return result = lpClass->dynMethodCall(info, szFxPropName); @@ -168,7 +168,7 @@ void NamedPropertyQueryCallback( info.Data().As()->Value()); v8::Isolate* pIsolate = info.GetIsolate(); v8::HandleScope scope(pIsolate); - v8::String::Utf8Value szPropName(property); + v8::String::Utf8Value szPropName(pIsolate, property); ByteStringView szFxPropName(*szPropName, szPropName.length()); auto lpThisValue = pdfium::MakeUnique(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); @@ -186,7 +186,7 @@ void NamedPropertyGetterCallback( v8::Local thisObject = info.Holder(); const FXJSE_CLASS_DESCRIPTOR* lpClass = static_cast( info.Data().As()->Value()); - v8::String::Utf8Value szPropName(property); + v8::String::Utf8Value szPropName(info.GetIsolate(), property); ByteStringView szFxPropName(*szPropName, szPropName.length()); auto lpThisValue = pdfium::MakeUnique(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); @@ -203,7 +203,7 @@ void NamedPropertySetterCallback( v8::Local thisObject = info.Holder(); const FXJSE_CLASS_DESCRIPTOR* lpClass = static_cast( info.Data().As()->Value()); - v8::String::Utf8Value szPropName(property); + v8::String::Utf8Value szPropName(info.GetIsolate(), property); ByteStringView szFxPropName(*szPropName, szPropName.length()); auto lpThisValue = pdfium::MakeUnique(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); diff --git a/fxjs/cfxjse_value.cpp b/fxjs/cfxjse_value.cpp index f5bdd54653..d07b3565d3 100644 --- a/fxjs/cfxjse_value.cpp +++ b/fxjs/cfxjse_value.cpp @@ -384,7 +384,7 @@ ByteString CFXJSE_Value::ToString() const { CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); v8::Local hValue = v8::Local::New(m_pIsolate, m_hValue); v8::Local hString = hValue->ToString(); - v8::String::Utf8Value hStringVal(hString); + v8::String::Utf8Value hStringVal(m_pIsolate, hString); return ByteString(*hStringVal); } diff --git a/fxjs/cjs_global.cpp b/fxjs/cjs_global.cpp index 23763544f5..eb66488d8e 100644 --- a/fxjs/cjs_global.cpp +++ b/fxjs/cjs_global.cpp @@ -22,8 +22,9 @@ namespace { -WideString PropFromV8Prop(v8::Local property) { - v8::String::Utf8Value utf8_value(property); +WideString PropFromV8Prop(v8::Isolate* pIsolate, + v8::Local property) { + v8::String::Utf8Value utf8_value(pIsolate, property); return WideString::FromUTF8(ByteStringView(*utf8_value, utf8_value.length())); } @@ -42,7 +43,8 @@ void JSSpecialPropQuery(const char*, return; Alt* pObj = reinterpret_cast(pJSObj->GetEmbedObject()); - CJS_Return result = pObj->QueryProperty(PropFromV8Prop(property).c_str()); + CJS_Return result = + pObj->QueryProperty(PropFromV8Prop(info.GetIsolate(), property).c_str()); info.GetReturnValue().Set(!result.HasError() ? 4 : 0); } @@ -61,8 +63,8 @@ void JSSpecialPropGet(const char* class_name, return; Alt* pObj = reinterpret_cast(pJSObj->GetEmbedObject()); - CJS_Return result = - pObj->GetProperty(pRuntime, PropFromV8Prop(property).c_str()); + CJS_Return result = pObj->GetProperty( + pRuntime, PropFromV8Prop(info.GetIsolate(), property).c_str()); if (result.HasError()) { pRuntime->Error( JSFormatErrorString(class_name, "GetProperty", result.Error())); @@ -89,8 +91,8 @@ void JSSpecialPropPut(const char* class_name, return; Alt* pObj = reinterpret_cast(pJSObj->GetEmbedObject()); - CJS_Return result = - pObj->SetProperty(pRuntime, PropFromV8Prop(property).c_str(), value); + CJS_Return result = pObj->SetProperty( + pRuntime, PropFromV8Prop(info.GetIsolate(), property).c_str(), value); if (result.HasError()) { pRuntime->Error( JSFormatErrorString(class_name, "PutProperty", result.Error())); @@ -112,8 +114,8 @@ void JSSpecialPropDel(const char* class_name, return; Alt* pObj = reinterpret_cast(pJSObj->GetEmbedObject()); - CJS_Return result = - pObj->DelProperty(pRuntime, PropFromV8Prop(property).c_str()); + CJS_Return result = pObj->DelProperty( + pRuntime, PropFromV8Prop(info.GetIsolate(), property).c_str()); if (result.HasError()) { // TODO(dsinclair): Should this set the pRuntime->Error result? // ByteString cbName = diff --git a/fxjs/cjs_v8.cpp b/fxjs/cjs_v8.cpp index 18bbed606c..8f77ec6a88 100644 --- a/fxjs/cjs_v8.cpp +++ b/fxjs/cjs_v8.cpp @@ -177,7 +177,7 @@ WideString CJS_V8::ToWideString(v8::Local pValue) { v8::MaybeLocal maybe_string = pValue->ToString(context); if (maybe_string.IsEmpty()) return WideString(); - v8::String::Utf8Value s(maybe_string.ToLocalChecked()); + v8::String::Utf8Value s(m_isolate, maybe_string.ToLocalChecked()); return WideString::FromUTF8(ByteStringView(*s, s.length())); } @@ -188,7 +188,7 @@ ByteString CJS_V8::ToByteString(v8::Local pValue) { v8::MaybeLocal maybe_string = pValue->ToString(context); if (maybe_string.IsEmpty()) return ByteString(); - v8::String::Utf8Value s(maybe_string.ToLocalChecked()); + v8::String::Utf8Value s(m_isolate, maybe_string.ToLocalChecked()); return ByteString(*s); } diff --git a/fxjs/fxjs_v8.cpp b/fxjs/fxjs_v8.cpp index 98f5ff720a..50345cfcd1 100644 --- a/fxjs/fxjs_v8.cpp +++ b/fxjs/fxjs_v8.cpp @@ -465,14 +465,14 @@ int CFXJS_Engine::Execute(const WideString& script, FXJSErr* pError) { v8::Local compiled_script; if (!v8::Script::Compile(context, NewString(script.AsStringView())) .ToLocal(&compiled_script)) { - v8::String::Utf8Value error(try_catch.Exception()); + v8::String::Utf8Value error(GetIsolate(), try_catch.Exception()); // TODO(tsepez): return error via pError->message. return -1; } v8::Local result; if (!compiled_script->Run(context).ToLocal(&result)) { - v8::String::Utf8Value error(try_catch.Exception()); + v8::String::Utf8Value error(GetIsolate(), try_catch.Exception()); // TODO(tsepez): return error via pError->message. return -1; } -- cgit v1.2.3