Split off CFXJSE_Engine::GetScriptObject() from GetThisObject().
Two separate methods are cleaner than passing a fixed boolean that
changes the meaning of the call.
Change-Id: Ie4ef4716c4c6b7ac950141a579ef443ec84a9813
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/72552
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp
index 77f22517..f43a777 100644
--- a/fxjs/xfa/cfxjse_engine.cpp
+++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -191,7 +191,7 @@
CFXJSE_Engine* lpScriptContext = pDoc->GetScriptContext();
CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
if (lpOrginalNode->IsThisProxy())
- pRefNode = ToNode(lpScriptContext->GetVariablesThis(lpOrginalNode, false));
+ pRefNode = ToNode(lpScriptContext->GetVariablesThis(lpOrginalNode));
WideString wsPropName = WideString::FromUTF8(szPropName);
if (lpScriptContext->QueryNodeByFlag(
@@ -252,8 +252,7 @@
CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
if (pOriginalObject->IsThisProxy()) {
- pRefNode =
- ToNode(lpScriptContext->GetVariablesThis(pOriginalObject, false));
+ pRefNode = ToNode(lpScriptContext->GetVariablesThis(pOriginalObject));
}
if (lpScriptContext->QueryNodeByFlag(
pRefNode, wsPropName.AsStringView(), pValue,
@@ -269,7 +268,7 @@
}
CXFA_Object* pScriptObject =
- lpScriptContext->GetVariablesThis(pOriginalObject, true);
+ lpScriptContext->GetVariablesScript(pOriginalObject);
if (pScriptObject && lpScriptContext->QueryVariableValue(
pScriptObject->AsNode(), szPropName, pValue, true)) {
return;
@@ -305,7 +304,7 @@
return FXJSE_ClassPropType_None;
CFXJSE_Engine* lpScriptContext = pObject->GetDocument()->GetScriptContext();
- pObject = lpScriptContext->GetVariablesThis(pObject, false);
+ pObject = lpScriptContext->GetVariablesThis(pObject);
WideString wsPropName = WideString::FromUTF8(szPropName);
if (pObject->JSObject()->HasMethod(wsPropName))
return FXJSE_ClassPropType_Method;
@@ -325,8 +324,7 @@
WideString wsPropName = WideString::FromUTF8(szPropName);
CFXJSE_Engine* lpScriptContext =
pOriginalObject->GetDocument()->GetScriptContext();
- CXFA_Object* pObject =
- lpScriptContext->GetVariablesThis(pOriginalObject, false);
+ CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOriginalObject);
if (wsPropName.EqualsASCII("xfa")) {
CFXJSE_Value* pValue = lpScriptContext->GetOrCreateJSBindingFromMap(
lpScriptContext->GetDocument()->GetRoot());
@@ -353,7 +351,7 @@
return;
CXFA_Object* pScriptObject =
- lpScriptContext->GetVariablesThis(pOriginalObject, true);
+ lpScriptContext->GetVariablesScript(pOriginalObject);
if (!pScriptObject)
return;
@@ -403,8 +401,7 @@
CFXJSE_Engine* lpScriptContext =
pOriginalObject->GetDocument()->GetScriptContext();
- CXFA_Object* pObject =
- lpScriptContext->GetVariablesThis(pOriginalObject, false);
+ CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOriginalObject);
WideString wsPropName = WideString::FromUTF8(szPropName);
WideStringView wsPropNameView = wsPropName.AsStringView();
Optional<XFA_SCRIPTATTRIBUTEINFO> info =
@@ -442,7 +439,7 @@
}
CXFA_Object* pScriptObject =
- lpScriptContext->GetVariablesThis(pOriginalObject, true);
+ lpScriptContext->GetVariablesScript(pOriginalObject);
if (pScriptObject) {
lpScriptContext->QueryVariableValue(ToNode(pScriptObject), szPropName,
pReturnValue, false);
@@ -457,7 +454,7 @@
return FXJSE_ClassPropType_None;
CFXJSE_Engine* lpScriptContext = pObject->GetDocument()->GetScriptContext();
- pObject = lpScriptContext->GetVariablesThis(pObject, false);
+ pObject = lpScriptContext->GetVariablesThis(pObject);
XFA_Element eType = pObject->GetElementType();
WideString wsPropName = WideString::FromUTF8(szPropName);
if (pObject->JSObject()->HasMethod(wsPropName))
@@ -478,7 +475,7 @@
return CJS_Result::Failure(L"no Holder() present.");
CFXJSE_Engine* lpScriptContext = pObject->GetDocument()->GetScriptContext();
- pObject = lpScriptContext->GetVariablesThis(pObject, false);
+ pObject = lpScriptContext->GetVariablesThis(pObject);
std::vector<v8::Local<v8::Value>> parameters;
for (int i = 0; i < info.Length(); i++)
@@ -511,13 +508,14 @@
return pResult;
}
-CXFA_Object* CFXJSE_Engine::GetVariablesThis(CXFA_Object* pObject,
- bool bScriptNode) {
+CXFA_Object* CFXJSE_Engine::GetVariablesThis(CXFA_Object* pObject) {
CXFA_ThisProxy* pProxy = ToThisProxy(pObject);
- if (!pProxy)
- return pObject;
+ return pProxy ? pProxy->GetThisNode() : pObject;
+}
- return bScriptNode ? pProxy->GetScriptNode() : pProxy->GetThisNode();
+CXFA_Object* CFXJSE_Engine::GetVariablesScript(CXFA_Object* pObject) {
+ CXFA_ThisProxy* pProxy = ToThisProxy(pObject);
+ return pProxy ? pProxy->GetScriptNode() : pObject;
}
bool CFXJSE_Engine::RunVariablesScript(CXFA_Node* pScriptNode) {
diff --git a/fxjs/xfa/cfxjse_engine.h b/fxjs/xfa/cfxjse_engine.h
index 8ca1d01..0f64095 100644
--- a/fxjs/xfa/cfxjse_engine.h
+++ b/fxjs/xfa/cfxjse_engine.h
@@ -112,7 +112,8 @@
uint32_t dwFlag,
bool bSetting);
bool IsStrictScopeInJavaScript();
- CXFA_Object* GetVariablesThis(CXFA_Object* pObject, bool bScriptNode);
+ CXFA_Object* GetVariablesThis(CXFA_Object* pObject);
+ CXFA_Object* GetVariablesScript(CXFA_Object* pObject);
bool QueryVariableValue(CXFA_Node* pScriptNode,
ByteStringView szPropName,
CFXJSE_Value* pValue,