diff options
author | Lei Zhang <thestig@chromium.org> | 2018-08-30 00:02:00 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-30 00:02:00 +0000 |
commit | e70aff80976ebe8b8a7bc24f2ed2115b681c33c2 (patch) | |
tree | 1131966deb078fe78db742cc31846b15ec36e42e | |
parent | 20c41a5a47b2460277897a1059789fc9e184e3ab (diff) | |
download | pdfium-e70aff80976ebe8b8a7bc24f2ed2115b681c33c2.tar.xz |
Stop using deprecated V8 APIs in CFXJSE_Context.
Change-Id: Ib93972d3162c37995dfc215d1043e0e1b4220610
Reviewed-on: https://pdfium-review.googlesource.com/41410
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
-rw-r--r-- | fxjs/cfxjse_context.cpp | 88 |
1 files changed, 57 insertions, 31 deletions
diff --git a/fxjs/cfxjse_context.cpp b/fxjs/cfxjse_context.cpp index 5d40f6fa83..eac4caf9b2 100644 --- a/fxjs/cfxjse_context.cpp +++ b/fxjs/cfxjse_context.cpp @@ -57,39 +57,62 @@ v8::Local<v8::Object> CreateReturnValue(v8::Isolate* pIsolate, v8::TryCatch& trycatch) { v8::Local<v8::Object> hReturnValue = v8::Object::New(pIsolate); if (trycatch.HasCaught()) { + v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); v8::Local<v8::Value> hException = trycatch.Exception(); v8::Local<v8::Message> hMessage = trycatch.Message(); if (hException->IsObject()) { - v8::Local<v8::Value> hValue; - hValue = hException.As<v8::Object>()->Get( - v8::String::NewFromUtf8(pIsolate, "name")); - if (hValue->IsString() || hValue->IsStringObject()) - hReturnValue->Set(0, hValue); - else - hReturnValue->Set(0, v8::String::NewFromUtf8(pIsolate, "Error")); + v8::Local<v8::String> hNameStr = + v8::String::NewFromUtf8(pIsolate, "name", v8::NewStringType::kNormal) + .ToLocalChecked(); + v8::Local<v8::Value> hValue = + hException.As<v8::Object>()->Get(context, hNameStr).ToLocalChecked(); + if (hValue->IsString() || hValue->IsStringObject()) { + hReturnValue->Set(context, 0, hValue).FromJust(); + } else { + v8::Local<v8::String> hErrorStr = + v8::String::NewFromUtf8(pIsolate, "Error", + v8::NewStringType::kNormal) + .ToLocalChecked(); + hReturnValue->Set(context, 0, hErrorStr).FromJust(); + } - hValue = hException.As<v8::Object>()->Get( - v8::String::NewFromUtf8(pIsolate, "message")); + v8::Local<v8::String> hMessageStr = + v8::String::NewFromUtf8(pIsolate, "message", + v8::NewStringType::kNormal) + .ToLocalChecked(); + hValue = hException.As<v8::Object>() + ->Get(context, hMessageStr) + .ToLocalChecked(); if (hValue->IsString() || hValue->IsStringObject()) - hReturnValue->Set(1, hValue); + hReturnValue->Set(context, 1, hValue).FromJust(); else - hReturnValue->Set(1, hMessage->Get()); + hReturnValue->Set(context, 1, hMessage->Get()).FromJust(); } else { - hReturnValue->Set(0, v8::String::NewFromUtf8(pIsolate, "Error")); - hReturnValue->Set(1, hMessage->Get()); + v8::Local<v8::String> hErrorStr = + v8::String::NewFromUtf8(pIsolate, "Error", v8::NewStringType::kNormal) + .ToLocalChecked(); + hReturnValue->Set(context, 0, hErrorStr).FromJust(); + hReturnValue->Set(context, 1, hMessage->Get()).FromJust(); } - hReturnValue->Set(2, hException); - hReturnValue->Set( - 3, v8::Integer::New( - pIsolate, hMessage->GetLineNumber(pIsolate->GetCurrentContext()) - .FromMaybe(0))); - hReturnValue->Set(4, hMessage->GetSourceLine(pIsolate->GetCurrentContext()) - .FromMaybe(v8::Local<v8::String>())); - v8::Maybe<int32_t> maybe_int = - hMessage->GetStartColumn(pIsolate->GetCurrentContext()); - hReturnValue->Set(5, v8::Integer::New(pIsolate, maybe_int.FromMaybe(0))); - maybe_int = hMessage->GetEndColumn(pIsolate->GetCurrentContext()); - hReturnValue->Set(6, v8::Integer::New(pIsolate, maybe_int.FromMaybe(0))); + hReturnValue->Set(context, 2, hException).FromJust(); + hReturnValue + ->Set(context, 3, + v8::Integer::New(pIsolate, + hMessage->GetLineNumber(context).FromMaybe(0))) + .FromJust(); + hReturnValue + ->Set( + context, 4, + hMessage->GetSourceLine(context).FromMaybe(v8::Local<v8::String>())) + .FromJust(); + v8::Maybe<int32_t> maybe_int = hMessage->GetStartColumn(context); + hReturnValue + ->Set(context, 5, v8::Integer::New(pIsolate, maybe_int.FromMaybe(0))) + .FromJust(); + maybe_int = hMessage->GetEndColumn(context); + hReturnValue + ->Set(context, 6, v8::Integer::New(pIsolate, maybe_int.FromMaybe(0))) + .FromJust(); } return hReturnValue; } @@ -238,7 +261,9 @@ bool CFXJSE_Context::ExecuteScript(const char* szScript, v8::Local<v8::Context> hContext = GetIsolate()->GetCurrentContext(); v8::TryCatch trycatch(GetIsolate()); v8::Local<v8::String> hScriptString = - v8::String::NewFromUtf8(GetIsolate(), szScript); + v8::String::NewFromUtf8(GetIsolate(), szScript, + v8::NewStringType::kNormal) + .ToLocalChecked(); if (!lpNewThisObject) { v8::Local<v8::Script> hScript; if (v8::Script::Compile(hContext, hScriptString).ToLocal(&hScript)) { @@ -261,12 +286,13 @@ bool CFXJSE_Context::ExecuteScript(const char* szScript, v8::Local<v8::Value> hNewThis = v8::Local<v8::Value>::New(GetIsolate(), lpNewThisObject->m_hValue); ASSERT(!hNewThis.IsEmpty()); - v8::Local<v8::Script> hWrapper = - v8::Script::Compile( - hContext, - v8::String::NewFromUtf8( - GetIsolate(), "(function () { return eval(arguments[0]); })")) + v8::Local<v8::String> hEval = + v8::String::NewFromUtf8(GetIsolate(), + "(function () { return eval(arguments[0]); })", + v8::NewStringType::kNormal) .ToLocalChecked(); + v8::Local<v8::Script> hWrapper = + v8::Script::Compile(hContext, hEval).ToLocalChecked(); v8::Local<v8::Value> hWrapperValue; if (hWrapper->Run(hContext).ToLocal(&hWrapperValue)) { ASSERT(!trycatch.HasCaught()); |