From dc5d88bcebbeeb696b405464e901add55d1efaf7 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Thu, 17 May 2018 13:53:52 +0000 Subject: Convert JS execute methods to return Optional This CL changes several of the JS execution methods to to return an Optional instead of a bool with a WideString out param. The IJS_Runtime::JS_Error will contain the line, column and exception message if an error occurs during execution. Change-Id: I37785ae6cd133a4c94ad8d25289473600b8a5d19 Reviewed-on: https://pdfium-review.googlesource.com/32614 Commit-Queue: dsinclair Reviewed-by: Tom Sepez --- fxjs/cjs_event_context.cpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'fxjs/cjs_event_context.cpp') diff --git a/fxjs/cjs_event_context.cpp b/fxjs/cjs_event_context.cpp index 195fb1b888..0d9ba34db1 100644 --- a/fxjs/cjs_event_context.cpp +++ b/fxjs/cjs_event_context.cpp @@ -25,15 +25,16 @@ CPDFSDK_FormFillEnvironment* CJS_EventContext::GetFormFillEnv() { return m_pRuntime->GetFormFillEnv(); } -bool CJS_EventContext::RunScript(const WideString& script, WideString* info) { +Optional CJS_EventContext::RunScript( + const WideString& script) { v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate()); v8::HandleScope handle_scope(m_pRuntime->GetIsolate()); v8::Local context = m_pRuntime->GetV8Context(); v8::Context::Scope context_scope(context); if (m_bBusy) { - *info = JSGetStringFromID(JSMessage::kBusyError); - return false; + return IJS_Runtime::JS_Error(1, 1, + JSGetStringFromID(JSMessage::kBusyError)); } AutoRestorer restorer(&m_bBusy); @@ -43,23 +44,17 @@ bool CJS_EventContext::RunScript(const WideString& script, WideString* info) { CJS_Runtime::FieldEvent event(m_pEventHandler->TargetName(), m_pEventHandler->EventType()); if (!m_pRuntime->AddEventToSet(event)) { - *info = JSGetStringFromID(JSMessage::kDuplicateEventError); - return false; + return IJS_Runtime::JS_Error( + 1, 1, JSGetStringFromID(JSMessage::kDuplicateEventError)); } - WideString sErrorMessage; - int nRet = 0; + Optional err; if (script.GetLength() > 0) - nRet = m_pRuntime->ExecuteScript(script.c_str(), &sErrorMessage); - - if (nRet < 0) - *info += sErrorMessage; - else - *info = JSGetStringFromID(JSMessage::kRunSuccess); + err = m_pRuntime->ExecuteScript(script.c_str()); m_pRuntime->RemoveEventFromSet(event); m_pEventHandler->Destroy(); - return nRet >= 0; + return err; } void CJS_EventContext::OnApp_Init() { -- cgit v1.2.3