Index: fpdfsdk/javascript/app.cpp |
diff --git a/fpdfsdk/javascript/app.cpp b/fpdfsdk/javascript/app.cpp |
index 50afd9a6c4e7ceb65ef2396778e3fc0315d0fdc0..8d7420b7bdef2038c140d6b2d2fdd0b67dd21408 100644 |
--- a/fpdfsdk/javascript/app.cpp |
+++ b/fpdfsdk/javascript/app.cpp |
@@ -252,7 +252,7 @@ FX_BOOL app::activeDocs(IJS_Context* cc, |
if (aDocs.GetLength() > 0) |
vp << aDocs; |
else |
- vp.SetNull(); |
+ vp.GetJSValue()->SetNull(pRuntime); |
return TRUE; |
} |
@@ -405,41 +405,41 @@ FX_BOOL app::alert(IJS_Context* cc, |
CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); |
if (!pApp) { |
- vRet = 0; |
+ vRet = CJS_Value(pRuntime, 0); |
return TRUE; |
} |
CFX_WideString swMsg; |
if (newParams[0].GetType() == CJS_Value::VT_object) { |
CJS_Array carray; |
- if (newParams[0].ConvertToArray(carray)) { |
+ if (newParams[0].ConvertToArray(pRuntime->GetIsolate(), carray)) { |
swMsg = L"["; |
CJS_Value element(pRuntime); |
for (int i = 0; i < carray.GetLength(); ++i) { |
if (i) |
swMsg += L", "; |
carray.GetElement(pRuntime->GetIsolate(), i, element); |
- swMsg += element.ToCFXWideString(); |
+ swMsg += element.ToCFXWideString(pRuntime->GetIsolate()); |
} |
swMsg += L"]"; |
} else { |
- swMsg = newParams[0].ToCFXWideString(); |
+ swMsg = newParams[0].ToCFXWideString(pRuntime->GetIsolate()); |
} |
} else { |
- swMsg = newParams[0].ToCFXWideString(); |
+ swMsg = newParams[0].ToCFXWideString(pRuntime->GetIsolate()); |
} |
int iIcon = 0; |
if (newParams[1].GetType() != CJS_Value::VT_unknown) |
- iIcon = newParams[1].ToInt(); |
+ iIcon = newParams[1].ToInt(pRuntime->GetIsolate()); |
int iType = 0; |
if (newParams[2].GetType() != CJS_Value::VT_unknown) |
- iType = newParams[2].ToInt(); |
+ iType = newParams[2].ToInt(pRuntime->GetIsolate()); |
CFX_WideString swTitle; |
if (newParams[3].GetType() != CJS_Value::VT_unknown) |
- swTitle = newParams[3].ToCFXWideString(); |
+ swTitle = newParams[3].ToCFXWideString(pRuntime->GetIsolate()); |
else |
swTitle = JSGetStringFromID(pContext, IDS_STRING_JSALERT); |
@@ -447,7 +447,8 @@ FX_BOOL app::alert(IJS_Context* cc, |
if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) |
pDoc->KillFocusAnnot(); |
- vRet = pApp->JS_appAlert(swMsg.c_str(), swTitle.c_str(), iType, iIcon); |
+ vRet = CJS_Value(pRuntime, pApp->JS_appAlert(swMsg.c_str(), swTitle.c_str(), |
+ iType, iIcon)); |
pRuntime->EndBlock(); |
return TRUE; |
} |
@@ -460,7 +461,7 @@ FX_BOOL app::beep(IJS_Context* cc, |
CJS_Context* pContext = (CJS_Context*)cc; |
CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp(); |
- pEnv->JS_appBeep(params[0].ToInt()); |
+ pEnv->JS_appBeep(params[0].ToInt(pRuntime->GetIsolate())); |
return TRUE; |
} |
@@ -491,19 +492,23 @@ FX_BOOL app::setInterval(IJS_Context* cc, |
CJS_Value& vRet, |
CFX_WideString& sError) { |
CJS_Context* pContext = (CJS_Context*)cc; |
+ CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
+ |
if (params.size() > 2 || params.size() == 0) { |
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
return FALSE; |
} |
- CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L""; |
+ CFX_WideString script = |
+ params.size() > 0 ? params[0].ToCFXWideString(pRuntime->GetIsolate()) |
+ : L""; |
if (script.IsEmpty()) { |
sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE); |
return TRUE; |
} |
- CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
- uint32_t dwInterval = params.size() > 1 ? params[1].ToInt() : 1000; |
+ uint32_t dwInterval = |
+ params.size() > 1 ? params[1].ToInt(pRuntime->GetIsolate()) : 1000; |
CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); |
m_Timers.push_back(std::unique_ptr<GlobalTimer>( |
new GlobalTimer(this, pApp, pRuntime, 0, script, dwInterval, 0))); |
@@ -515,7 +520,7 @@ FX_BOOL app::setInterval(IJS_Context* cc, |
TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject()); |
pTimerObj->SetTimer(m_Timers.back().get()); |
- vRet = pRetObj; |
+ vRet = CJS_Value(pRuntime, pRetObj); |
return TRUE; |
} |
@@ -524,19 +529,21 @@ FX_BOOL app::setTimeOut(IJS_Context* cc, |
CJS_Value& vRet, |
CFX_WideString& sError) { |
CJS_Context* pContext = static_cast<CJS_Context*>(cc); |
+ CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
+ |
if (params.size() > 2 || params.size() == 0) { |
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
return FALSE; |
} |
- CFX_WideString script = params[0].ToCFXWideString(); |
+ CFX_WideString script = params[0].ToCFXWideString(pRuntime->GetIsolate()); |
if (script.IsEmpty()) { |
sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE); |
return TRUE; |
} |
- uint32_t dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000; |
- CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
+ uint32_t dwTimeOut = |
+ params.size() > 1 ? params[1].ToInt(pRuntime->GetIsolate()) : 1000; |
CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); |
m_Timers.push_back(std::unique_ptr<GlobalTimer>( |
new GlobalTimer(this, pApp, pRuntime, 1, script, dwTimeOut, dwTimeOut))); |
@@ -550,7 +557,7 @@ FX_BOOL app::setTimeOut(IJS_Context* cc, |
TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject()); |
pTimerObj->SetTimer(m_Timers.back().get()); |
- vRet = pRetObj; |
+ vRet = CJS_Value(pRuntime, pRetObj); |
return TRUE; |
} |
@@ -586,11 +593,11 @@ void app::ClearTimerCommon(const CJS_Value& param) { |
if (param.GetType() != CJS_Value::VT_object) |
return; |
- v8::Local<v8::Object> pObj = param.ToV8Object(); |
+ v8::Local<v8::Object> pObj = param.ToV8Object(GetJSObject()->GetIsolate()); |
if (FXJS_GetObjDefnID(pObj) != CJS_TimerObj::g_nObjDefnID) |
return; |
- CJS_Object* pJSObj = param.ToCJSObject(); |
+ CJS_Object* pJSObj = param.ToCJSObject(GetJSObject()->GetIsolate()); |
if (!pJSObj) |
return; |
@@ -664,11 +671,11 @@ FX_BOOL app::mailMsg(IJS_Context* cc, |
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
return FALSE; |
} |
- bool bUI = newParams[0].ToBool(); |
+ bool bUI = newParams[0].ToBool(pRuntime->GetIsolate()); |
CFX_WideString cTo; |
if (newParams[1].GetType() != CJS_Value::VT_unknown) { |
- cTo = newParams[1].ToCFXWideString(); |
+ cTo = newParams[1].ToCFXWideString(pRuntime->GetIsolate()); |
} else { |
if (!bUI) { |
// cTo parameter required when UI not invoked. |
@@ -679,19 +686,19 @@ FX_BOOL app::mailMsg(IJS_Context* cc, |
CFX_WideString cCc; |
if (newParams[2].GetType() != CJS_Value::VT_unknown) |
- cCc = newParams[2].ToCFXWideString(); |
+ cCc = newParams[2].ToCFXWideString(pRuntime->GetIsolate()); |
CFX_WideString cBcc; |
if (newParams[3].GetType() != CJS_Value::VT_unknown) |
- cBcc = newParams[3].ToCFXWideString(); |
+ cBcc = newParams[3].ToCFXWideString(pRuntime->GetIsolate()); |
CFX_WideString cSubject; |
if (newParams[4].GetType() != CJS_Value::VT_unknown) |
- cSubject = newParams[4].ToCFXWideString(); |
+ cSubject = newParams[4].ToCFXWideString(pRuntime->GetIsolate()); |
CFX_WideString cMsg; |
if (newParams[5].GetType() != CJS_Value::VT_unknown) |
- cMsg = newParams[5].ToCFXWideString(); |
+ cMsg = newParams[5].ToCFXWideString(pRuntime->GetIsolate()); |
pRuntime->BeginBlock(); |
pContext->GetReaderApp()->JS_docmailForm(nullptr, 0, bUI, cTo.c_str(), |
@@ -787,23 +794,24 @@ FX_BOOL app::response(IJS_Context* cc, |
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
return FALSE; |
} |
- CFX_WideString swQuestion = newParams[0].ToCFXWideString(); |
+ CFX_WideString swQuestion = |
+ newParams[0].ToCFXWideString(pRuntime->GetIsolate()); |
CFX_WideString swTitle = L"PDF"; |
if (newParams[1].GetType() != CJS_Value::VT_unknown) |
- swTitle = newParams[1].ToCFXWideString(); |
+ swTitle = newParams[1].ToCFXWideString(pRuntime->GetIsolate()); |
CFX_WideString swDefault; |
if (newParams[2].GetType() != CJS_Value::VT_unknown) |
- swDefault = newParams[2].ToCFXWideString(); |
+ swDefault = newParams[2].ToCFXWideString(pRuntime->GetIsolate()); |
bool bPassword = false; |
if (newParams[3].GetType() != CJS_Value::VT_unknown) |
- bPassword = newParams[3].ToBool(); |
+ bPassword = newParams[3].ToBool(pRuntime->GetIsolate()); |
CFX_WideString swLabel; |
if (newParams[4].GetType() != CJS_Value::VT_unknown) |
- swLabel = newParams[4].ToCFXWideString(); |
+ swLabel = newParams[4].ToCFXWideString(pRuntime->GetIsolate()); |
const int MAX_INPUT_BYTES = 2048; |
std::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]); |
@@ -818,9 +826,11 @@ FX_BOOL app::response(IJS_Context* cc, |
return FALSE; |
} |
- vRet = CFX_WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.get()), |
- nLengthBytes / sizeof(uint16_t)) |
- .c_str(); |
+ vRet = CJS_Value(pRuntime, CFX_WideString::FromUTF16LE( |
+ reinterpret_cast<uint16_t*>(pBuff.get()), |
+ nLengthBytes / sizeof(uint16_t)) |
+ .c_str()); |
+ |
return TRUE; |
} |