Remove pointer to isolate from CFXJSE_Value
Task #1 from the referenced bug.
Bug: pdfium:1610
Change-Id: I44a6347e9384216f08baeaa879fd774587816f15
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/75870
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
diff --git a/fxjs/xfa/cfxjse_class.cpp b/fxjs/xfa/cfxjse_class.cpp
index 86512c5..21c4258 100644
--- a/fxjs/xfa/cfxjse_class.cpp
+++ b/fxjs/xfa/cfxjse_class.cpp
@@ -122,10 +122,10 @@
int32_t nPropType =
lpClass->dynPropTypeGetter == nullptr
? FXJSE_ClassPropType_Property
- : lpClass->dynPropTypeGetter(pObject, szPropName, false);
+ : lpClass->dynPropTypeGetter(pIsolate, pObject, szPropName, false);
if (nPropType == FXJSE_ClassPropType_Property) {
if (lpClass->dynPropGetter)
- lpClass->dynPropGetter(pObject, szPropName, pValue);
+ lpClass->dynPropGetter(pIsolate, pObject, szPropName, pValue);
} else if (nPropType == FXJSE_ClassPropType_Method) {
if (lpClass->dynMethodCall && pValue) {
v8::HandleScope hscope(pIsolate);
@@ -140,6 +140,7 @@
hCallBackInfo->SetInternalField(
1, fxv8::NewStringHelper(pIsolate, szPropName));
pValue->ForceSetValue(
+ pIsolate,
v8::Function::New(pIsolate->GetCurrentContext(),
DynPropGetterAdapter_MethodCallback, hCallBackInfo,
0, v8::ConstructorBehavior::kThrow)
@@ -148,7 +149,8 @@
}
}
-void DynPropSetterAdapter(const FXJSE_CLASS_DESCRIPTOR* lpClass,
+void DynPropSetterAdapter(v8::Isolate* pIsolate,
+ const FXJSE_CLASS_DESCRIPTOR* lpClass,
CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue) {
@@ -156,21 +158,22 @@
int32_t nPropType =
lpClass->dynPropTypeGetter == nullptr
? FXJSE_ClassPropType_Property
- : lpClass->dynPropTypeGetter(pObject, szPropName, false);
+ : lpClass->dynPropTypeGetter(pIsolate, pObject, szPropName, false);
if (nPropType != FXJSE_ClassPropType_Method) {
if (lpClass->dynPropSetter)
- lpClass->dynPropSetter(pObject, szPropName, pValue);
+ lpClass->dynPropSetter(pIsolate, pObject, szPropName, pValue);
}
}
-bool DynPropQueryAdapter(const FXJSE_CLASS_DESCRIPTOR* lpClass,
+bool DynPropQueryAdapter(v8::Isolate* pIsolate,
+ const FXJSE_CLASS_DESCRIPTOR* lpClass,
CFXJSE_Value* pObject,
ByteStringView szPropName) {
ASSERT(lpClass);
int32_t nPropType =
lpClass->dynPropTypeGetter == nullptr
? FXJSE_ClassPropType_Property
- : lpClass->dynPropTypeGetter(pObject, szPropName, true);
+ : lpClass->dynPropTypeGetter(pIsolate, pObject, szPropName, true);
return nPropType != FXJSE_ClassPropType_None;
}
@@ -187,8 +190,9 @@
v8::String::Utf8Value szPropName(info.GetIsolate(), property);
ByteStringView szFxPropName(*szPropName, szPropName.length());
auto lpThisValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- lpThisValue->ForceSetValue(thisObject);
- if (DynPropQueryAdapter(lpClass, lpThisValue.get(), szFxPropName)) {
+ lpThisValue->ForceSetValue(info.GetIsolate(), thisObject);
+ if (DynPropQueryAdapter(info.GetIsolate(), lpClass, lpThisValue.get(),
+ szFxPropName)) {
info.GetReturnValue().Set(v8::DontDelete);
return;
}
@@ -208,7 +212,7 @@
v8::String::Utf8Value szPropName(info.GetIsolate(), property);
ByteStringView szFxPropName(*szPropName, szPropName.length());
auto lpThisValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- lpThisValue->ForceSetValue(thisObject);
+ lpThisValue->ForceSetValue(info.GetIsolate(), thisObject);
auto lpNewValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
DynPropGetterAdapter(info.GetIsolate(), lpClass, lpThisValue.get(),
szFxPropName, lpNewValue.get());
@@ -228,11 +232,11 @@
v8::String::Utf8Value szPropName(info.GetIsolate(), property);
ByteStringView szFxPropName(*szPropName, szPropName.length());
auto lpThisValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- lpThisValue->ForceSetValue(thisObject);
+ lpThisValue->ForceSetValue(info.GetIsolate(), thisObject);
auto lpNewValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- lpNewValue->ForceSetValue(value);
- DynPropSetterAdapter(lpClass, lpThisValue.get(), szFxPropName,
- lpNewValue.get());
+ lpNewValue->ForceSetValue(info.GetIsolate(), value);
+ DynPropSetterAdapter(info.GetIsolate(), lpClass, lpThisValue.get(),
+ szFxPropName, lpNewValue.get());
info.GetReturnValue().Set(value);
}
diff --git a/fxjs/xfa/cfxjse_context.cpp b/fxjs/xfa/cfxjse_context.cpp
index 27196b4..54fd290 100644
--- a/fxjs/xfa/cfxjse_context.cpp
+++ b/fxjs/xfa/cfxjse_context.cpp
@@ -224,7 +224,7 @@
v8::Local<v8::Context>::New(GetIsolate(), m_hContext);
v8::Local<v8::Object> hGlobalObject =
hContext->Global()->GetPrototype().As<v8::Object>();
- pValue->ForceSetValue(hGlobalObject);
+ pValue->ForceSetValue(GetIsolate(), hGlobalObject);
return pValue;
}
@@ -266,12 +266,13 @@
if (hScript->Run(hContext).ToLocal(&hValue)) {
ASSERT(!trycatch.HasCaught());
if (lpRetValue)
- lpRetValue->ForceSetValue(hValue);
+ lpRetValue->ForceSetValue(GetIsolate(), hValue);
return true;
}
}
if (lpRetValue)
- lpRetValue->ForceSetValue(CreateReturnValue(GetIsolate(), &trycatch));
+ lpRetValue->ForceSetValue(GetIsolate(),
+ CreateReturnValue(GetIsolate(), &trycatch));
return false;
}
@@ -292,7 +293,7 @@
.ToLocal(&hValue)) {
ASSERT(!trycatch.HasCaught());
if (lpRetValue)
- lpRetValue->ForceSetValue(hValue);
+ lpRetValue->ForceSetValue(GetIsolate(), hValue);
return true;
}
}
@@ -311,7 +312,9 @@
}
#endif // NDEBUG
- if (lpRetValue)
- lpRetValue->ForceSetValue(CreateReturnValue(GetIsolate(), &trycatch));
+ if (lpRetValue) {
+ lpRetValue->ForceSetValue(GetIsolate(),
+ CreateReturnValue(GetIsolate(), &trycatch));
+ }
return false;
}
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp
index 46ed7bf..7764232 100644
--- a/fxjs/xfa/cfxjse_engine.cpp
+++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -77,11 +77,12 @@
// static
CXFA_Object* CFXJSE_Engine::ToObject(
const v8::FunctionCallbackInfo<v8::Value>& info) {
- return ToObject(info.Holder());
+ return ToObject(info.GetIsolate(), info.Holder());
}
// static
-CXFA_Object* CFXJSE_Engine::ToObject(v8::Local<v8::Value> value) {
+CXFA_Object* CFXJSE_Engine::ToObject(v8::Isolate* pIsolate,
+ v8::Local<v8::Value> value) {
if (!value->IsObject())
return nullptr;
@@ -89,8 +90,9 @@
}
// static.
-CXFA_Object* CFXJSE_Engine::ToObject(CFXJSE_Value* pValue) {
- return ToObject(pValue->ToHostObject());
+CXFA_Object* CFXJSE_Engine::ToObject(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue) {
+ return ToObject(pValue->ToHostObject(pIsolate));
}
// static
@@ -125,7 +127,7 @@
// This is what ensures that the v8 object bound to a CJX_Object
// no longer retains that binding since it will outlive that object.
for (const auto& pair : m_mapObjectToValue)
- pair.second->ClearHostObject();
+ pair.second->ClearHostObject(GetIsolate());
}
bool CFXJSE_Engine::RunScript(CXFA_Script::Type eScriptType,
@@ -143,7 +145,7 @@
Optional<CFX_WideTextBuf> wsJavaScript =
CFXJSE_FormCalcContext::Translate(m_pDocument->GetHeap(), wsScript);
if (!wsJavaScript.has_value()) {
- hRetValue->SetUndefined();
+ hRetValue->SetUndefined(GetIsolate());
return false;
}
btScript = FX_UTF8Encode(wsJavaScript.value().AsStringView());
@@ -171,24 +173,26 @@
if (!ResolveObjects(refNode, propname, &resolveRs, dwFlag, nullptr))
return false;
if (resolveRs.dwFlags == XFA_ResolveNodeRS::Type::kNodes) {
- pValue->Assign(
- GetOrCreateJSBindingFromMap(resolveRs.objects.front().Get()));
+ pValue->Assign(GetIsolate(), GetOrCreateJSBindingFromMap(
+ resolveRs.objects.front().Get()));
return true;
}
if (resolveRs.dwFlags == XFA_ResolveNodeRS::Type::kAttribute &&
resolveRs.script_attribute.callback) {
CJX_Object* jsObject = resolveRs.objects.front()->JSObject();
(*resolveRs.script_attribute.callback)(
- jsObject, pValue, bSetting, resolveRs.script_attribute.attribute);
+ GetIsolate(), jsObject, pValue, bSetting,
+ resolveRs.script_attribute.attribute);
}
return true;
}
// static
-void CFXJSE_Engine::GlobalPropertySetter(CFXJSE_Value* pObject,
+void CFXJSE_Engine::GlobalPropertySetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue) {
- CXFA_Object* lpOrginalNode = ToObject(pObject);
+ CXFA_Object* lpOrginalNode = ToObject(pIsolate, pObject);
CXFA_Document* pDoc = lpOrginalNode->GetDocument();
CFXJSE_Engine* lpScriptContext = pDoc->GetScriptContext();
CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
@@ -204,8 +208,8 @@
true)) {
return;
}
- if (lpOrginalNode->IsThisProxy() && pValue && pValue->IsUndefined()) {
- pObject->DeleteObjectProperty(szPropName);
+ if (lpOrginalNode->IsThisProxy() && pValue && pValue->IsUndefined(pIsolate)) {
+ pObject->DeleteObjectProperty(lpScriptContext->GetIsolate(), szPropName);
return;
}
CXFA_FFNotify* pNotify = pDoc->GetNotify();
@@ -225,15 +229,16 @@
}
// static
-void CFXJSE_Engine::GlobalPropertyGetter(CFXJSE_Value* pObject,
+void CFXJSE_Engine::GlobalPropertyGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue) {
- CXFA_Object* pOriginalObject = ToObject(pObject);
+ CXFA_Object* pOriginalObject = ToObject(pIsolate, pObject);
CXFA_Document* pDoc = pOriginalObject->GetDocument();
CFXJSE_Engine* lpScriptContext = pDoc->GetScriptContext();
WideString wsPropName = WideString::FromUTF8(szPropName);
- pValue->SetUndefined(); // Assume failure.
+ pValue->SetUndefined(pIsolate); // Assume failure.
if (lpScriptContext->GetType() == CXFA_Script::Type::Formcalc) {
if (szPropName == kFormCalcRuntime) {
lpScriptContext->m_FM2JSContext->GlobalPropertyGetter(pValue);
@@ -245,7 +250,8 @@
CXFA_Object* pObj =
lpScriptContext->GetDocument()->GetXFAObject(uHashCode);
if (pObj) {
- pValue->Assign(lpScriptContext->GetOrCreateJSBindingFromMap(pObj));
+ pValue->Assign(pIsolate,
+ lpScriptContext->GetOrCreateJSBindingFromMap(pObj));
return;
}
}
@@ -293,13 +299,15 @@
if (temp_value.IsEmpty())
return;
- pValue->ForceSetValue(temp_value);
+ pValue->ForceSetValue(pIsolate, temp_value);
}
-int32_t CFXJSE_Engine::GlobalPropTypeGetter(CFXJSE_Value* pOriginalValue,
+// static
+int32_t CFXJSE_Engine::GlobalPropTypeGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pOriginalValue,
ByteStringView szPropName,
bool bQueryIn) {
- CXFA_Object* pObject = ToObject(pOriginalValue);
+ CXFA_Object* pObject = ToObject(pIsolate, pOriginalValue);
if (!pObject)
return FXJSE_ClassPropType_None;
@@ -313,11 +321,12 @@
}
// static
-void CFXJSE_Engine::NormalPropertyGetter(CFXJSE_Value* pOriginalValue,
+void CFXJSE_Engine::NormalPropertyGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pOriginalValue,
ByteStringView szPropName,
CFXJSE_Value* pReturnValue) {
- pReturnValue->SetUndefined(); // Assume failure.
- CXFA_Object* pOriginalObject = ToObject(pOriginalValue);
+ pReturnValue->SetUndefined(pIsolate); // Assume failure.
+ CXFA_Object* pOriginalObject = ToObject(pIsolate, pOriginalValue);
if (!pOriginalObject)
return;
@@ -328,7 +337,7 @@
if (wsPropName.EqualsASCII("xfa")) {
CFXJSE_Value* pValue = lpScriptContext->GetOrCreateJSBindingFromMap(
lpScriptContext->GetDocument()->GetRoot());
- pReturnValue->Assign(pValue);
+ pReturnValue->Assign(pIsolate, pValue);
return;
}
@@ -364,7 +373,7 @@
pObject->GetElementType(), wsPropName.AsStringView());
if (info.has_value()) {
CJX_Object* jsObject = pObject->JSObject();
- (*info.value().callback)(jsObject, pReturnValue, false,
+ (*info.value().callback)(pIsolate, jsObject, pReturnValue, false,
info.value().attribute);
return;
}
@@ -387,14 +396,15 @@
if (temp_local.IsEmpty())
return;
- pReturnValue->ForceSetValue(temp_local);
+ pReturnValue->ForceSetValue(lpScriptContext->GetIsolate(), temp_local);
}
// static
-void CFXJSE_Engine::NormalPropertySetter(CFXJSE_Value* pOriginalValue,
+void CFXJSE_Engine::NormalPropertySetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pOriginalValue,
ByteStringView szPropName,
CFXJSE_Value* pReturnValue) {
- CXFA_Object* pOriginalObject = ToObject(pOriginalValue);
+ CXFA_Object* pOriginalObject = ToObject(pIsolate, pOriginalValue);
if (!pOriginalObject)
return;
@@ -407,7 +417,7 @@
XFA_GetScriptAttributeByName(pObject->GetElementType(), wsPropNameView);
if (info.has_value()) {
CJX_Object* jsObject = pObject->JSObject();
- (*info.value().callback)(jsObject, pReturnValue, true,
+ (*info.value().callback)(pIsolate, jsObject, pReturnValue, true,
info.value().attribute);
return;
}
@@ -430,8 +440,8 @@
info = XFA_GetScriptAttributeByName(pPropOrChild->GetElementType(),
L"{default}");
if (info.has_value()) {
- pPropOrChild->JSObject()->ScriptSomDefaultValue(pReturnValue, true,
- XFA_Attribute::Unknown);
+ pPropOrChild->JSObject()->ScriptSomDefaultValue(
+ pIsolate, pReturnValue, true, XFA_Attribute::Unknown);
return;
}
}
@@ -445,10 +455,11 @@
}
}
-int32_t CFXJSE_Engine::NormalPropTypeGetter(CFXJSE_Value* pOriginalValue,
+int32_t CFXJSE_Engine::NormalPropTypeGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pOriginalValue,
ByteStringView szPropName,
bool bQueryIn) {
- CXFA_Object* pObject = ToObject(pOriginalValue);
+ CXFA_Object* pObject = ToObject(pIsolate, pOriginalValue);
if (!pObject)
return FXJSE_ClassPropType_None;
@@ -573,20 +584,20 @@
std::unique_ptr<CFXJSE_Value> pObject = pVariableContext->GetGlobalObject();
auto hVariableValue = std::make_unique<CFXJSE_Value>(GetIsolate());
if (!bGetter) {
- pObject->SetObjectOwnProperty(szPropName, pValue);
+ pObject->SetObjectOwnProperty(GetIsolate(), szPropName, pValue);
return true;
}
- if (!pObject->HasObjectOwnProperty(szPropName, false))
+ if (!pObject->HasObjectOwnProperty(GetIsolate(), szPropName, false))
return false;
- pObject->GetObjectProperty(szPropName, hVariableValue.get());
- if (hVariableValue->IsFunction())
- pValue->SetFunctionBind(hVariableValue.get(), pObject.get());
+ pObject->GetObjectProperty(GetIsolate(), szPropName, hVariableValue.get());
+ if (hVariableValue->IsFunction(GetIsolate()))
+ pValue->SetFunctionBind(GetIsolate(), hVariableValue.get(), pObject.get());
else if (bGetter)
- pValue->Assign(hVariableValue.get());
+ pValue->Assign(GetIsolate(), hVariableValue.get());
else
- hVariableValue.get()->Assign(pValue);
+ hVariableValue.get()->Assign(GetIsolate(), pValue);
return true;
}
@@ -595,8 +606,8 @@
std::unique_ptr<CFXJSE_Value> pObject = pContext->GetGlobalObject();
auto hProp = std::make_unique<CFXJSE_Value>(GetIsolate());
for (const auto& obj : kObjNames) {
- if (pObject->GetObjectProperty(obj, hProp.get()))
- pObject->DeleteObjectProperty(obj);
+ if (pObject->GetObjectProperty(GetIsolate(), obj, hProp.get()))
+ pObject->DeleteObjectProperty(GetIsolate(), obj);
}
}
@@ -685,7 +696,7 @@
rndFind.m_CurObject = findObjects[i++].Get();
rndFind.m_nLevel = nLevel;
rndFind.m_dwFlag = XFA_ResolveNodeRS::Type::kNodes;
- if (!m_ResolveProcessor->Resolve(rndFind))
+ if (!m_ResolveProcessor->Resolve(GetIsolate(), rndFind))
continue;
if (rndFind.m_dwFlag == XFA_ResolveNodeRS::Type::kAttribute &&
@@ -695,9 +706,10 @@
auto pValue = std::make_unique<CFXJSE_Value>(GetIsolate());
CJX_Object* jsObject = rndFind.m_Objects.front()->JSObject();
(*rndFind.m_ScriptAttribute.callback)(
- jsObject, pValue.get(), false, rndFind.m_ScriptAttribute.attribute);
+ GetIsolate(), jsObject, pValue.get(), false,
+ rndFind.m_ScriptAttribute.attribute);
if (!pValue->IsEmpty())
- rndFind.m_Objects.front() = ToObject(pValue.get());
+ rndFind.m_Objects.front() = ToObject(GetIsolate(), pValue.get());
}
if (!m_upObjectArray.empty())
m_upObjectArray.pop_back();
@@ -777,7 +789,7 @@
return iter->second.get();
auto jsValue = std::make_unique<CFXJSE_Value>(GetIsolate());
- jsValue->SetHostObject(pCJXObject, m_pJsClass.Get());
+ jsValue->SetHostObject(GetIsolate(), pCJXObject, m_pJsClass.Get());
CFXJSE_Value* pValue = jsValue.get();
m_mapObjectToValue[pCJXObject] = std::move(jsValue);
diff --git a/fxjs/xfa/cfxjse_engine.h b/fxjs/xfa/cfxjse_engine.h
index ba3c2a8..19e5225 100644
--- a/fxjs/xfa/cfxjse_engine.h
+++ b/fxjs/xfa/cfxjse_engine.h
@@ -43,28 +43,35 @@
class CFXJSE_Engine final : public CFX_V8 {
public:
static CXFA_Object* ToObject(const v8::FunctionCallbackInfo<v8::Value>& info);
- static CXFA_Object* ToObject(v8::Local<v8::Value> value);
- static CXFA_Object* ToObject(CFXJSE_Value* pValue);
+ static CXFA_Object* ToObject(v8::Isolate* pIsolate,
+ v8::Local<v8::Value> value);
+ static CXFA_Object* ToObject(v8::Isolate* pIsolate, CFXJSE_Value* pValue);
static CXFA_Object* ToObject(CFXJSE_HostObject* pHostObj);
- static void GlobalPropertyGetter(CFXJSE_Value* pObject,
+ static void GlobalPropertyGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue);
- static void GlobalPropertySetter(CFXJSE_Value* pObject,
+ static void GlobalPropertySetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue);
- static void NormalPropertyGetter(CFXJSE_Value* pObject,
+ static void NormalPropertyGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue);
- static void NormalPropertySetter(CFXJSE_Value* pObject,
+ static void NormalPropertySetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue);
static CJS_Result NormalMethodCall(
const v8::FunctionCallbackInfo<v8::Value>& info,
const WideString& functionName);
- static int32_t NormalPropTypeGetter(CFXJSE_Value* pObject,
+ static int32_t NormalPropTypeGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
bool bQueryIn);
- static int32_t GlobalPropTypeGetter(CFXJSE_Value* pObject,
+ static int32_t GlobalPropTypeGetter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
bool bQueryIn);
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index ea79b20..0052af5 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -1319,22 +1319,26 @@
return ByteString(strBuf);
}
-void GetObjectDefaultValue(CFXJSE_Value* pValue, CFXJSE_Value* pDefaultValue) {
- CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
+void GetObjectDefaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
+ CFXJSE_Value* pDefaultValue) {
+ CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pIsolate, pValue));
if (!pNode) {
- pDefaultValue->SetNull();
+ pDefaultValue->SetNull(pIsolate);
return;
}
- pNode->JSObject()->ScriptSomDefaultValue(pDefaultValue, false,
+ pNode->JSObject()->ScriptSomDefaultValue(pIsolate, pDefaultValue, false,
XFA_Attribute::Unknown);
}
-bool SetObjectDefaultValue(CFXJSE_Value* pValue, CFXJSE_Value* hNewValue) {
- CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
+bool SetObjectDefaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
+ CFXJSE_Value* hNewValue) {
+ CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pIsolate, pValue));
if (!pNode)
return false;
- pNode->JSObject()->ScriptSomDefaultValue(hNewValue, true,
+ pNode->JSObject()->ScriptSomDefaultValue(pIsolate, hNewValue, true,
XFA_Attribute::Unknown);
return true;
}
@@ -1362,7 +1366,7 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1383,35 +1387,36 @@
return;
}
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
uint32_t uCount = 0;
double dSum = 0.0;
for (int32_t i = 0; i < argc; i++) {
auto argValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[i]);
- if (argValue->IsNull())
+ if (argValue->IsNull(pIsolate))
continue;
- if (!argValue->IsArray()) {
+ if (!argValue->IsArray(pIsolate)) {
dSum += ValueToDouble(pThis, argValue.get());
uCount++;
continue;
}
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ argValue->GetObjectProperty(pIsolate, "length", lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(pIsolate);
if (iLength > 2) {
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectPropertyByIdx(1, propertyValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- if (propertyValue->IsNull()) {
+ if (propertyValue->IsNull(pIsolate)) {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
auto defaultPropValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(jsObjectValue.get(), defaultPropValue.get());
- if (defaultPropValue->IsNull())
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ defaultPropValue.get());
+ if (defaultPropValue->IsNull(pIsolate))
continue;
dSum += ValueToDouble(pThis, defaultPropValue.get());
@@ -1419,11 +1424,12 @@
}
} else {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
dSum += ValueToDouble(pThis, newPropertyValue.get());
@@ -1450,7 +1456,7 @@
}
std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argValue.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1463,18 +1469,18 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
int32_t iCount = 0;
for (int32_t i = 0; i < info.Length(); i++) {
auto argValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[i]);
- if (argValue->IsNull())
+ if (argValue->IsNull(pIsolate))
continue;
- if (argValue->IsArray()) {
+ if (argValue->IsArray(pIsolate)) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
+ argValue->GetObjectProperty(pIsolate, "length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ int32_t iLength = lengthValue->ToInteger(pIsolate);
if (iLength <= 2) {
pContext->ThrowArgumentMismatchException();
return;
@@ -1483,27 +1489,29 @@
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectPropertyByIdx(1, propertyValue.get());
- argValue->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
+ argValue->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
- if (!newPropertyValue->IsNull())
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
+ if (!newPropertyValue->IsNull(pIsolate))
iCount++;
}
} else {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
- iCount += newPropertyValue->IsNull() ? 0 : 1;
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
+ iCount += newPropertyValue->IsNull(pIsolate) ? 0 : 1;
}
}
- } else if (argValue->IsObject()) {
+ } else if (argValue->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(argValue.get(), newPropertyValue.get());
- if (!newPropertyValue->IsNull())
+ GetObjectDefaultValue(pIsolate, argValue.get(), newPropertyValue.get());
+ if (!newPropertyValue->IsNull(pIsolate))
iCount++;
} else {
iCount++;
@@ -1522,7 +1530,7 @@
}
std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argValue.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1535,18 +1543,19 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
uint32_t uCount = 0;
double dMaxValue = 0.0;
for (int32_t i = 0; i < info.Length(); i++) {
auto argValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[i]);
- if (argValue->IsNull())
+ if (argValue->IsNull(info.GetIsolate()))
continue;
- if (argValue->IsArray()) {
+ if (argValue->IsArray(info.GetIsolate())) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ argValue->GetObjectProperty(info.GetIsolate(), "length",
+ lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(info.GetIsolate());
if (iLength <= 2) {
pContext->ThrowArgumentMismatchException();
return;
@@ -1555,13 +1564,14 @@
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectPropertyByIdx(1, propertyValue.get());
- argValue->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
+ argValue->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1570,10 +1580,11 @@
}
} else {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1581,10 +1592,10 @@
dMaxValue = (uCount == 1) ? dValue : std::max(dMaxValue, dValue);
}
}
- } else if (argValue->IsObject()) {
+ } else if (argValue->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(argValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ GetObjectDefaultValue(pIsolate, argValue.get(), newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1608,18 +1619,18 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
uint32_t uCount = 0;
double dMinValue = 0.0;
for (int32_t i = 0; i < info.Length(); i++) {
auto argValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[i]);
- if (argValue->IsNull())
+ if (argValue->IsNull(pIsolate))
continue;
- if (argValue->IsArray()) {
+ if (argValue->IsArray(pIsolate)) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ argValue->GetObjectProperty(pIsolate, "length", lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(pIsolate);
if (iLength <= 2) {
pContext->ThrowArgumentMismatchException();
return;
@@ -1628,13 +1639,14 @@
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectPropertyByIdx(1, propertyValue.get());
- argValue->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
+ argValue->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1643,10 +1655,11 @@
}
} else {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1654,10 +1667,10 @@
dMinValue = uCount == 1 ? dValue : std::min(dMinValue, dValue);
}
}
- } else if (argValue->IsObject()) {
+ } else if (argValue->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(argValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ GetObjectDefaultValue(pIsolate, argValue.get(), newPropertyValue.get());
+ if (newPropertyValue->IsNull(pIsolate))
continue;
uCount++;
@@ -1689,7 +1702,7 @@
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
auto argTwo = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[1]);
- if (argOne->IsNull() || argTwo->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate()) || argTwo->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1724,7 +1737,7 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1739,7 +1752,7 @@
uint8_t uPrecision = 0;
if (argc > 1) {
auto argTwo = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[1]);
- if (argTwo->IsNull()) {
+ if (argTwo->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1769,32 +1782,35 @@
}
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
uint32_t uCount = 0;
double dSum = 0.0;
for (int32_t i = 0; i < argc; i++) {
auto argValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[i]);
- if (argValue->IsNull())
+ if (argValue->IsNull(info.GetIsolate()))
continue;
- if (argValue->IsArray()) {
- auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ if (argValue->IsArray(info.GetIsolate())) {
+ auto lengthValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ argValue->GetObjectProperty(info.GetIsolate(), "length",
+ lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(info.GetIsolate());
if (iLength <= 2) {
pContext->ThrowArgumentMismatchException();
return;
}
- auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectPropertyByIdx(1, propertyValue.get());
- auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- if (propertyValue->IsNull()) {
+ auto propertyValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ argValue->GetObjectPropertyByIdx(info.GetIsolate(), 1,
+ propertyValue.get());
+ auto jsObjectValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ auto newPropertyValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ if (propertyValue->IsNull(info.GetIsolate())) {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ argValue->GetObjectPropertyByIdx(info.GetIsolate(), j,
+ jsObjectValue.get());
+ GetObjectDefaultValue(info.GetIsolate(), jsObjectValue.get(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(info.GetIsolate()))
continue;
dSum += ValueToDouble(pThis, jsObjectValue.get());
@@ -1802,20 +1818,24 @@
}
} else {
for (int32_t j = 2; j < iLength; j++) {
- argValue->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ argValue->GetObjectPropertyByIdx(info.GetIsolate(), j,
+ jsObjectValue.get());
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ info.GetIsolate(),
+ propertyValue->ToString(info.GetIsolate()).AsStringView(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(info.GetIsolate()))
continue;
dSum += ValueToDouble(pThis, newPropertyValue.get());
uCount++;
}
}
- } else if (argValue->IsObject()) {
- auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(argValue.get(), newPropertyValue.get());
- if (newPropertyValue->IsNull())
+ } else if (argValue->IsObject(info.GetIsolate())) {
+ auto newPropertyValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ GetObjectDefaultValue(info.GetIsolate(), argValue.get(),
+ newPropertyValue.get());
+ if (newPropertyValue->IsNull(info.GetIsolate()))
continue;
dSum += ValueToDouble(pThis, argValue.get());
@@ -1863,30 +1883,30 @@
}
std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, dateValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, dateValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsDate = ValueToUTF8String(dateValue.get());
+ ByteString bsDate = ValueToUTF8String(pThis, dateValue.get());
ByteString bsFormat;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> formatValue = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, formatValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, formatValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsFormat = ValueToUTF8String(formatValue.get());
+ bsFormat = ValueToUTF8String(pThis, formatValue.get());
}
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, localeValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, localeValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
ByteString bsIsoDate =
@@ -1908,7 +1928,7 @@
int32_t iStyle = 0;
if (argc > 0) {
std::unique_ptr<CFXJSE_Value> infotyle = GetSimpleValue(pThis, info, 0);
- if (infotyle->IsNull()) {
+ if (infotyle->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -1921,11 +1941,11 @@
ByteString bsLocale;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> argLocale = GetSimpleValue(pThis, info, 1);
- if (argLocale->IsNull()) {
+ if (argLocale->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(argLocale.get());
+ bsLocale = ValueToUTF8String(pThis, argLocale.get());
}
ByteString bsFormat =
@@ -1943,11 +1963,11 @@
return;
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsArg = ValueToUTF8String(argOne.get());
+ ByteString bsArg = ValueToUTF8String(pThis, argOne.get());
info.GetReturnValue().Set(DateString2Num(bsArg.AsStringView()));
}
@@ -1962,14 +1982,14 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
CXFA_Document* pDoc = pContext->GetDocument();
CXFA_LocaleMgr* pMgr = pDoc->GetLocaleMgr();
- ByteString bsArg = ValueToUTF8String(argOne.get());
+ ByteString bsArg = ValueToUTF8String(pThis, argOne.get());
auto pos = bsArg.Find('T', 0);
if (!pos.has_value() || pos.value() == bsArg.GetLength() - 1) {
info.GetReturnValue().Set(0);
@@ -2018,7 +2038,7 @@
int32_t iStyle = 0;
if (argc > 0) {
std::unique_ptr<CFXJSE_Value> infotyle = GetSimpleValue(pThis, info, 0);
- if (infotyle->IsNull()) {
+ if (infotyle->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2030,11 +2050,11 @@
ByteString bsLocale;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> argLocale = GetSimpleValue(pThis, info, 1);
- if (argLocale->IsNull()) {
+ if (argLocale->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(argLocale.get());
+ bsLocale = ValueToUTF8String(pThis, argLocale.get());
}
ByteString bsFormat =
@@ -2056,7 +2076,7 @@
int32_t iStyle = 0;
if (argc > 0) {
std::unique_ptr<CFXJSE_Value> infotyle = GetSimpleValue(pThis, info, 0);
- if (infotyle->IsNull()) {
+ if (infotyle->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2068,11 +2088,11 @@
ByteString bsLocale;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> argLocale = GetSimpleValue(pThis, info, 1);
- if (argLocale->IsNull()) {
+ if (argLocale->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(argLocale.get());
+ bsLocale = ValueToUTF8String(pThis, argLocale.get());
}
ByteString bsFormat =
@@ -2092,7 +2112,7 @@
}
std::unique_ptr<CFXJSE_Value> dateValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, dateValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, dateValue.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2105,21 +2125,21 @@
ByteString bsFormat;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> formatValue = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, formatValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, formatValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsFormat = ValueToUTF8String(formatValue.get());
+ bsFormat = ValueToUTF8String(pThis, formatValue.get());
}
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, localeValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, localeValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
int32_t iYear = 1900;
@@ -2233,7 +2253,7 @@
}
std::unique_ptr<CFXJSE_Value> timeValue = GetSimpleValue(pThis, info, 0);
- if (timeValue->IsNull()) {
+ if (timeValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2246,21 +2266,21 @@
ByteString bsFormat;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> formatValue = GetSimpleValue(pThis, info, 1);
- if (formatValue->IsNull()) {
+ if (formatValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsFormat = ValueToUTF8String(formatValue.get());
+ bsFormat = ValueToUTF8String(pThis, formatValue.get());
}
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (localeValue->IsNull()) {
+ if (localeValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
ByteString bsGMTTime = Num2AllTime(pThis, iTime, bsFormat.AsStringView(),
@@ -2280,7 +2300,7 @@
}
std::unique_ptr<CFXJSE_Value> timeValue = GetSimpleValue(pThis, info, 0);
- if (timeValue->IsNull()) {
+ if (timeValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2293,21 +2313,21 @@
ByteString bsFormat;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> formatValue = GetSimpleValue(pThis, info, 1);
- if (formatValue->IsNull()) {
+ if (formatValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsFormat = ValueToUTF8String(formatValue.get());
+ bsFormat = ValueToUTF8String(pThis, formatValue.get());
}
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (localeValue->IsNull()) {
+ if (localeValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
ByteString bsLocalTime =
@@ -2345,30 +2365,30 @@
ByteString bsTime;
std::unique_ptr<CFXJSE_Value> timeValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, timeValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, timeValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsTime = ValueToUTF8String(timeValue.get());
+ bsTime = ValueToUTF8String(pThis, timeValue.get());
ByteString bsFormat;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> formatValue = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, formatValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, formatValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsFormat = ValueToUTF8String(formatValue.get());
+ bsFormat = ValueToUTF8String(pThis, formatValue.get());
}
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, localeValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, localeValue.get())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
CXFA_Document* pDoc = ToFormCalcContext(pThis)->GetDocument();
@@ -2431,7 +2451,7 @@
int32_t iStyle = 0;
if (argc > 0) {
std::unique_ptr<CFXJSE_Value> infotyle = GetSimpleValue(pThis, info, 0);
- if (infotyle->IsNull()) {
+ if (infotyle->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2443,11 +2463,11 @@
ByteString bsLocale;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> argLocale = GetSimpleValue(pThis, info, 1);
- if (argLocale->IsNull()) {
+ if (argLocale->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(argLocale.get());
+ bsLocale = ValueToUTF8String(pThis, argLocale.get());
}
ByteString bsFormat =
@@ -2607,8 +2627,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2660,8 +2681,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2691,8 +2713,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2734,9 +2757,11 @@
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
std::unique_ptr<CFXJSE_Value> argFour = GetSimpleValue(pThis, info, 3);
std::unique_ptr<CFXJSE_Value> argFive = GetSimpleValue(pThis, info, 4);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get()) || ValueIsNull(pThis, argFour.get()) ||
- ValueIsNull(pThis, argFive.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argFour.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argFive.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2788,7 +2813,7 @@
}
std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argValue.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2802,7 +2827,7 @@
std::vector<double> data;
for (int32_t i = 1; i < argc; i++) {
argValue = GetSimpleValue(pThis, info, i);
- if (ValueIsNull(pThis, argValue.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argValue.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2832,8 +2857,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2869,9 +2895,11 @@
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
std::unique_ptr<CFXJSE_Value> argFour = GetSimpleValue(pThis, info, 3);
std::unique_ptr<CFXJSE_Value> argFive = GetSimpleValue(pThis, info, 4);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get()) || ValueIsNull(pThis, argFour.get()) ||
- ValueIsNull(pThis, argFive.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argFour.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argFive.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2925,8 +2953,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2960,8 +2989,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -2991,8 +3021,9 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get()) ||
- ValueIsNull(pThis, argThree.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argThree.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -3021,7 +3052,7 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -3036,14 +3067,15 @@
bool bStopCounterFlags = false;
int32_t iArgIndex = 1;
int32_t iValueIndex = 0;
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
while (!bFound && !bStopCounterFlags && (iArgIndex < argc)) {
auto argIndexValue =
std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[iArgIndex]);
- if (argIndexValue->IsArray()) {
+ if (argIndexValue->IsArray(info.GetIsolate())) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argIndexValue->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ argIndexValue->GetObjectProperty(info.GetIsolate(), "length",
+ lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(info.GetIsolate());
if (iLength > 3)
bStopCounterFlags = true;
@@ -3052,16 +3084,21 @@
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argIndexValue->GetObjectPropertyByIdx(1, propertyValue.get());
+ argIndexValue->GetObjectPropertyByIdx(info.GetIsolate(), 1,
+ propertyValue.get());
argIndexValue->GetObjectPropertyByIdx(
- (iLength - 1) - (iValueIndex - iIndex), jsObjectValue.get());
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
+ info.GetIsolate(), (iLength - 1) - (iValueIndex - iIndex),
+ jsObjectValue.get());
+ if (propertyValue->IsNull(info.GetIsolate())) {
+ GetObjectDefaultValue(info.GetIsolate(), jsObjectValue.get(),
+ newPropertyValue.get());
} else {
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), newPropertyValue.get());
+ info.GetIsolate(),
+ propertyValue->ToString(info.GetIsolate()).AsStringView(),
+ newPropertyValue.get());
}
- ByteString bsChosen = ValueToUTF8String(newPropertyValue.get());
+ ByteString bsChosen = ValueToUTF8String(pThis, newPropertyValue.get());
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsChosen.AsStringView()));
bFound = true;
@@ -3069,7 +3106,7 @@
} else {
iValueIndex++;
if (iValueIndex == iIndex) {
- ByteString bsChosen = ValueToUTF8String(argIndexValue.get());
+ ByteString bsChosen = ValueToUTF8String(pThis, argIndexValue.get());
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsChosen.AsStringView()));
bFound = true;
@@ -3090,7 +3127,8 @@
return;
}
auto temp = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- info.GetReturnValue().Set(static_cast<int>(temp->IsObject()));
+ info.GetReturnValue().Set(
+ static_cast<int>(temp->IsObject(info.GetIsolate())));
}
// static
@@ -3103,13 +3141,14 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (!argOne->IsString()) {
+ if (!argOne->IsString(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argOne->IsNumber() || argOne->IsBoolean()));
+ static_cast<int>(argOne->IsNumber(info.GetIsolate()) ||
+ argOne->IsBoolean(info.GetIsolate())));
return;
}
- ByteString bsValue = argOne->ToString();
+ ByteString bsValue = argOne->ToString(info.GetIsolate());
bsValue.TrimLeft();
info.GetReturnValue().Set(static_cast<int>(!bsValue.IsEmpty()));
}
@@ -3143,14 +3182,14 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetUndefined();
return;
}
std::unique_ptr<CFXJSE_Value> argLow = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> argHigh = GetSimpleValue(pThis, info, 2);
- if (argOne->IsNumber()) {
+ if (argOne->IsNumber(info.GetIsolate())) {
float oneNumber = ValueToFloat(pThis, argOne.get());
float lowNumber = ValueToFloat(pThis, argLow.get());
float heightNumber = ValueToFloat(pThis, argHigh.get());
@@ -3159,9 +3198,9 @@
return;
}
- ByteString bsOne = ValueToUTF8String(argOne.get());
- ByteString bsLow = ValueToUTF8String(argLow.get());
- ByteString bsHeight = ValueToUTF8String(argHigh.get());
+ ByteString bsOne = ValueToUTF8String(pThis, argOne.get());
+ ByteString bsLow = ValueToUTF8String(pThis, argLow.get());
+ ByteString bsHeight = ValueToUTF8String(pThis, argHigh.get());
info.GetReturnValue().Set(
static_cast<int>((bsOne.Compare(bsLow.AsStringView()) >= 0) &&
(bsOne.Compare(bsHeight.AsStringView()) <= 0)));
@@ -3177,7 +3216,7 @@
}
std::unique_ptr<CFXJSE_Value> value =
- GetSimpleValue(pThis, info, 0)->ToBoolean()
+ GetSimpleValue(pThis, info, 0)->ToBoolean(info.GetIsolate())
? GetSimpleValue(pThis, info, 1)
: GetSimpleValue(pThis, info, 2);
@@ -3194,9 +3233,9 @@
return;
}
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
std::unique_ptr<CFXJSE_Value> scriptValue = GetSimpleValue(pThis, info, 0);
- ByteString bsUtf8Script = ValueToUTF8String(scriptValue.get());
+ ByteString bsUtf8Script = ValueToUTF8String(pThis, scriptValue.get());
if (bsUtf8Script.IsEmpty()) {
info.GetReturnValue().SetNull();
return;
@@ -3226,20 +3265,26 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
if (info.Length() != 1) {
pContext->ThrowParamCountMismatchException(L"Ref");
return;
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (!argOne->IsArray() && !argOne->IsObject() && !argOne->IsBoolean() &&
- !argOne->IsString() && !argOne->IsNull() && !argOne->IsNumber()) {
+ if (!argOne->IsArray(info.GetIsolate()) &&
+ !argOne->IsObject(info.GetIsolate()) &&
+ !argOne->IsBoolean(info.GetIsolate()) &&
+ !argOne->IsString(info.GetIsolate()) &&
+ !argOne->IsNull(info.GetIsolate()) &&
+ !argOne->IsNumber(info.GetIsolate())) {
pContext->ThrowArgumentMismatchException();
return;
}
- if (argOne->IsBoolean() || argOne->IsString() || argOne->IsNumber()) {
+ if (argOne->IsBoolean(info.GetIsolate()) ||
+ argOne->IsString(info.GetIsolate()) ||
+ argOne->IsNumber(info.GetIsolate())) {
info.GetReturnValue().Set(argOne->DirectGetValue());
return;
}
@@ -3249,36 +3294,37 @@
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
int intVal = 3;
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
// TODO(dsinclair): Why is this 4 when the others are all 3?
intVal = 4;
- values[2]->SetNull();
- } else if (argOne->IsArray()) {
+ values[2]->SetNull(info.GetIsolate());
+ } else if (argOne->IsArray(info.GetIsolate())) {
#ifndef NDEBUG
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectProperty("length", lengthValue.get());
- ASSERT(lengthValue->ToInteger() >= 3);
+ argOne->GetObjectProperty(info.GetIsolate(), "length", lengthValue.get());
+ ASSERT(lengthValue->ToInteger(info.GetIsolate()) >= 3);
#endif
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectPropertyByIdx(1, propertyValue.get());
- argOne->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (!propertyValue->IsNull() || jsObjectValue->IsNull()) {
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 1, propertyValue.get());
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 2, jsObjectValue.get());
+ if (!propertyValue->IsNull(info.GetIsolate()) ||
+ jsObjectValue->IsNull(info.GetIsolate())) {
pContext->ThrowArgumentMismatchException();
return;
}
- values[2]->Assign(jsObjectValue.get());
- } else if (argOne->IsObject()) {
- values[2]->Assign(argOne.get());
+ values[2]->Assign(info.GetIsolate(), jsObjectValue.get());
+ } else if (argOne->IsObject(info.GetIsolate())) {
+ values[2]->Assign(info.GetIsolate(), argOne.get());
}
- values[0]->SetInteger(intVal);
- values[1]->SetNull();
+ values[0]->SetInteger(info.GetIsolate(), intVal);
+ values[1]->SetNull(info.GetIsolate());
auto temp = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- temp->SetArray(values);
+ temp->SetArray(info.GetIsolate(), values);
info.GetReturnValue().Set(temp->DirectGetValue());
}
@@ -3292,12 +3338,12 @@
}
std::unique_ptr<CFXJSE_Value> unitspanValue = GetSimpleValue(pThis, info, 0);
- if (unitspanValue->IsNull()) {
+ if (unitspanValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsUnitspan = ValueToUTF8String(unitspanValue.get());
+ ByteString bsUnitspan = ValueToUTF8String(pThis, unitspanValue.get());
if (bsUnitspan.IsEmpty()) {
info.GetReturnValue().SetEmptyString();
return;
@@ -3400,12 +3446,12 @@
}
std::unique_ptr<CFXJSE_Value> unitspanValue = GetSimpleValue(pThis, info, 0);
- if (unitspanValue->IsNull()) {
+ if (unitspanValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsUnitspan = ValueToUTF8String(unitspanValue.get());
+ ByteString bsUnitspan = ValueToUTF8String(pThis, unitspanValue.get());
const char* pData = bsUnitspan.c_str();
if (!pData) {
info.GetReturnValue().Set(0);
@@ -3441,7 +3487,7 @@
ByteString bsUnit;
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> unitValue = GetSimpleValue(pThis, info, 1);
- ByteString bsUnitTemp = ValueToUTF8String(unitValue.get());
+ ByteString bsUnitTemp = ValueToUTF8String(pThis, unitValue.get());
const char* pChar = bsUnitTemp.c_str();
size_t uVal = 0;
while (IsWhitespace(pChar[uVal]))
@@ -3539,18 +3585,19 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString stringTwo = ValueToUTF8String(argTwo.get());
+ ByteString stringTwo = ValueToUTF8String(pThis, argTwo.get());
if (stringTwo.IsEmpty()) {
info.GetReturnValue().Set(1);
return;
}
- ByteString stringOne = ValueToUTF8String(argOne.get());
+ ByteString stringOne = ValueToUTF8String(pThis, argOne.get());
auto pos = stringOne.Find(stringTwo.AsStringView());
info.GetReturnValue().Set(
static_cast<int>(pos.has_value() ? pos.value() + 1 : 0));
@@ -3570,11 +3617,11 @@
bool bAllNull = true;
for (int32_t i = 0; i < argc; i++) {
std::unique_ptr<CFXJSE_Value> value = GetSimpleValue(pThis, info, i);
- if (ValueIsNull(pThis, value.get()))
+ if (ValueIsNull(info.GetIsolate(), pThis, value.get()))
continue;
bAllNull = false;
- bsResult += ValueToUTF8String(value.get());
+ bsResult += ValueToUTF8String(pThis, value.get());
}
if (bAllNull) {
@@ -3597,13 +3644,13 @@
if (argc == 1) {
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
- WideString decoded = DecodeURL(
- WideString::FromUTF8(ValueToUTF8String(argOne.get()).AsStringView()));
+ WideString decoded = DecodeURL(WideString::FromUTF8(
+ ValueToUTF8String(pThis, argOne.get()).AsStringView()));
auto result = FX_UTF8Encode(decoded.AsStringView());
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
@@ -3612,13 +3659,14 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsToDecode = ValueToUTF8String(argOne.get());
- ByteString bsIdentify = ValueToUTF8String(argTwo.get());
+ ByteString bsToDecode = ValueToUTF8String(pThis, argOne.get());
+ ByteString bsIdentify = ValueToUTF8String(pThis, argTwo.get());
WideString decoded;
WideString wsToDecode = WideString::FromUTF8(bsToDecode.AsStringView());
@@ -3647,11 +3695,11 @@
if (argc == 1) {
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
- WideString encoded = EncodeURL(ValueToUTF8String(argOne.get()));
+ WideString encoded = EncodeURL(ValueToUTF8String(pThis, argOne.get()));
auto result = FX_UTF8Encode(encoded.AsStringView());
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
@@ -3660,13 +3708,14 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, argOne.get()) || ValueIsNull(pThis, argTwo.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, argTwo.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsToEncode = ValueToUTF8String(argOne.get());
- ByteString bsIdentify = ValueToUTF8String(argTwo.get());
+ ByteString bsToEncode = ValueToUTF8String(pThis, argOne.get());
+ ByteString bsIdentify = ValueToUTF8String(pThis, argTwo.get());
WideString encoded;
if (bsIdentify.EqualNoCase("html"))
encoded = EncodeHTML(bsToEncode);
@@ -3691,10 +3740,10 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- ByteString bsPattern = ValueToUTF8String(argOne.get());
+ ByteString bsPattern = ValueToUTF8String(pThis, argOne.get());
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- ByteString bsValue = ValueToUTF8String(argTwo.get());
+ ByteString bsValue = ValueToUTF8String(pThis, argTwo.get());
CXFA_Document* pDoc = pContext->GetDocument();
CXFA_LocaleMgr* pMgr = pDoc->GetLocaleMgr();
@@ -3771,13 +3820,13 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if ((ValueIsNull(pThis, argOne.get())) ||
- (ValueIsNull(pThis, argTwo.get()))) {
+ if ((ValueIsNull(info.GetIsolate(), pThis, argOne.get())) ||
+ (ValueIsNull(info.GetIsolate(), pThis, argTwo.get()))) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(argOne.get());
+ ByteString bsSource = ValueToUTF8String(pThis, argOne.get());
int32_t count = std::max(0, ValueToInteger(pThis, argTwo.get()));
info.GetReturnValue().Set(fxv8::NewStringHelper(
info.GetIsolate(), bsSource.First(count).AsStringView()));
@@ -3793,12 +3842,12 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(argOne.get());
+ ByteString bsSource = ValueToUTF8String(pThis, argOne.get());
info.GetReturnValue().Set(static_cast<int>(bsSource.GetLength()));
}
@@ -3813,13 +3862,13 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
CFX_WideTextBuf szLowBuf;
- ByteString bsArg = ValueToUTF8String(argOne.get());
+ ByteString bsArg = ValueToUTF8String(pThis, argOne.get());
WideString wsArg = WideString::FromUTF8(bsArg.AsStringView());
for (wchar_t ch : wsArg) {
if ((ch >= 0x41 && ch <= 0x5A) || (ch >= 0xC0 && ch <= 0xDE))
@@ -3843,12 +3892,12 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(argOne.get());
+ ByteString bsSource = ValueToUTF8String(pThis, argOne.get());
bsSource.TrimLeft();
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsSource.AsStringView()));
@@ -3866,13 +3915,13 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if (ValueIsNull(pThis, argTwo.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argTwo.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsPattern = ValueToUTF8String(argOne.get());
- ByteString bsValue = ValueToUTF8String(argTwo.get());
+ ByteString bsPattern = ValueToUTF8String(pThis, argOne.get());
+ ByteString bsValue = ValueToUTF8String(pThis, argTwo.get());
CXFA_Document* pDoc = pContext->GetDocument();
CXFA_LocaleMgr* pMgr = pDoc->GetLocaleMgr();
CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
@@ -4012,15 +4061,16 @@
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
ByteString bsOne;
ByteString bsTwo;
- if (!ValueIsNull(pThis, argOne.get()) && !ValueIsNull(pThis, argTwo.get())) {
- bsOne = ValueToUTF8String(argOne.get());
- bsTwo = ValueToUTF8String(argTwo.get());
+ if (!ValueIsNull(info.GetIsolate(), pThis, argOne.get()) &&
+ !ValueIsNull(info.GetIsolate(), pThis, argTwo.get())) {
+ bsOne = ValueToUTF8String(pThis, argOne.get());
+ bsTwo = ValueToUTF8String(pThis, argTwo.get());
}
ByteString bsThree;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- bsThree = ValueToUTF8String(argThree.get());
+ bsThree = ValueToUTF8String(pThis, argThree.get());
}
bsOne.Replace(bsTwo.AsStringView(), bsThree.AsStringView());
@@ -4039,13 +4089,13 @@
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- if ((ValueIsNull(pThis, argOne.get())) ||
- (ValueIsNull(pThis, argTwo.get()))) {
+ if ((ValueIsNull(info.GetIsolate(), pThis, argOne.get())) ||
+ (ValueIsNull(info.GetIsolate(), pThis, argTwo.get()))) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(argOne.get());
+ ByteString bsSource = ValueToUTF8String(pThis, argOne.get());
int32_t count = std::max(0, ValueToInteger(pThis, argTwo.get()));
info.GetReturnValue().Set(fxv8::NewStringHelper(
info.GetIsolate(), bsSource.Last(count).AsStringView()));
@@ -4061,12 +4111,12 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(argOne.get());
+ ByteString bsSource = ValueToUTF8String(pThis, argOne.get());
bsSource.TrimRight();
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsSource.AsStringView()));
@@ -4082,7 +4132,7 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4110,7 +4160,7 @@
}
std::unique_ptr<CFXJSE_Value> numberValue = GetSimpleValue(pThis, info, 0);
- if (numberValue->IsNull()) {
+ if (numberValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4235,9 +4285,10 @@
std::unique_ptr<CFXJSE_Value> sourceValue = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> deleteValue = GetSimpleValue(pThis, info, 2);
- if (!sourceValue->IsNull() && !startValue->IsNull() &&
- !deleteValue->IsNull()) {
- bsSource = ValueToUTF8String(sourceValue.get());
+ if (!sourceValue->IsNull(info.GetIsolate()) &&
+ !startValue->IsNull(info.GetIsolate()) &&
+ !deleteValue->IsNull(info.GetIsolate())) {
+ bsSource = ValueToUTF8String(pThis, sourceValue.get());
iLength = bsSource.GetLength();
iStart = pdfium::clamp(
static_cast<int32_t>(ValueToFloat(pThis, startValue.get())), 1,
@@ -4248,7 +4299,7 @@
if (argc > 3) {
std::unique_ptr<CFXJSE_Value> insertValue = GetSimpleValue(pThis, info, 3);
- bsInsert = ValueToUTF8String(insertValue.get());
+ bsInsert = ValueToUTF8String(pThis, insertValue.get());
}
--iStart;
@@ -4281,14 +4332,14 @@
std::unique_ptr<CFXJSE_Value> string_value = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> start_value = GetSimpleValue(pThis, info, 1);
std::unique_ptr<CFXJSE_Value> end_value = GetSimpleValue(pThis, info, 2);
- if (ValueIsNull(pThis, string_value.get()) ||
- ValueIsNull(pThis, start_value.get()) ||
- ValueIsNull(pThis, end_value.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, string_value.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, start_value.get()) ||
+ ValueIsNull(info.GetIsolate(), pThis, end_value.get())) {
info.GetReturnValue().SetNull();
return;
}
- ByteString bsSource = ValueToUTF8String(string_value.get());
+ ByteString bsSource = ValueToUTF8String(pThis, string_value.get());
size_t iLength = bsSource.GetLength();
if (iLength == 0) {
info.GetReturnValue().SetEmptyString();
@@ -4340,13 +4391,13 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (ValueIsNull(pThis, argOne.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argOne.get())) {
info.GetReturnValue().SetNull();
return;
}
CFX_WideTextBuf upperStringBuf;
- ByteString bsArg = ValueToUTF8String(argOne.get());
+ ByteString bsArg = ValueToUTF8String(pThis, argOne.get());
WideString wsArg = WideString::FromUTF8(bsArg.AsStringView());
const wchar_t* pData = wsArg.c_str();
size_t i = 0;
@@ -4376,7 +4427,7 @@
}
std::unique_ptr<CFXJSE_Value> numberValue = GetSimpleValue(pThis, info, 0);
- if (numberValue->IsNull()) {
+ if (numberValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4386,7 +4437,7 @@
if (argc > 1) {
std::unique_ptr<CFXJSE_Value> identifierValue =
GetSimpleValue(pThis, info, 1);
- if (identifierValue->IsNull()) {
+ if (identifierValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4397,11 +4448,11 @@
ByteString bsLocale;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> localeValue = GetSimpleValue(pThis, info, 2);
- if (localeValue->IsNull()) {
+ if (localeValue->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
- bsLocale = ValueToUTF8String(localeValue.get());
+ bsLocale = ValueToUTF8String(pThis, localeValue.get());
}
if (std::isnan(fNumber) || fNumber < 0.0f ||
@@ -4434,7 +4485,7 @@
return;
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- ByteString bsUrl = ValueToUTF8String(argOne.get());
+ ByteString bsUrl = ValueToUTF8String(pThis, argOne.get());
RetainPtr<IFX_SeekableReadStream> pFile =
pAppProvider->DownloadURL(WideString::FromUTF8(bsUrl.AsStringView()));
if (!pFile)
@@ -4467,27 +4518,27 @@
return;
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- ByteString bsURL = ValueToUTF8String(argOne.get());
+ ByteString bsURL = ValueToUTF8String(pThis, argOne.get());
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- ByteString bsData = ValueToUTF8String(argTwo.get());
+ ByteString bsData = ValueToUTF8String(pThis, argTwo.get());
ByteString bsContentType;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- bsContentType = ValueToUTF8String(argThree.get());
+ bsContentType = ValueToUTF8String(pThis, argThree.get());
}
ByteString bsEncode;
if (argc > 3) {
std::unique_ptr<CFXJSE_Value> argFour = GetSimpleValue(pThis, info, 3);
- bsEncode = ValueToUTF8String(argFour.get());
+ bsEncode = ValueToUTF8String(pThis, argFour.get());
}
ByteString bsHeader;
if (argc > 4) {
std::unique_ptr<CFXJSE_Value> argFive = GetSimpleValue(pThis, info, 4);
- bsHeader = ValueToUTF8String(argFive.get());
+ bsHeader = ValueToUTF8String(pThis, argFive.get());
}
WideString decodedResponse;
@@ -4524,15 +4575,15 @@
return;
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- ByteString bsURL = ValueToUTF8String(argOne.get());
+ ByteString bsURL = ValueToUTF8String(pThis, argOne.get());
std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, info, 1);
- ByteString bsData = ValueToUTF8String(argTwo.get());
+ ByteString bsData = ValueToUTF8String(pThis, argTwo.get());
ByteString bsEncode;
if (argc > 2) {
std::unique_ptr<CFXJSE_Value> argThree = GetSimpleValue(pThis, info, 2);
- bsEncode = ValueToUTF8String(argThree.get());
+ bsEncode = ValueToUTF8String(pThis, argThree.get());
}
if (!pAppProvider->PutRequestURL(
WideString::FromUTF8(bsURL.AsStringView()),
@@ -4556,31 +4607,35 @@
ByteStringView bsFuncName("asgn_val_op");
auto lValue = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
std::unique_ptr<CFXJSE_Value> rValue = GetSimpleValue(pThis, info, 1);
- if (lValue->IsArray()) {
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ if (lValue->IsArray(info.GetIsolate())) {
+ v8::Isolate* pIsolate = pContext->GetIsolate();
auto leftLengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- lValue->GetObjectProperty("length", leftLengthValue.get());
- int32_t iLeftLength = leftLengthValue->ToInteger();
+ lValue->GetObjectProperty(info.GetIsolate(), "length",
+ leftLengthValue.get());
+ int32_t iLeftLength = leftLengthValue->ToInteger(info.GetIsolate());
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- lValue->GetObjectPropertyByIdx(1, propertyValue.get());
- if (propertyValue->IsNull()) {
+ lValue->GetObjectPropertyByIdx(info.GetIsolate(), 1, propertyValue.get());
+ if (propertyValue->IsNull(info.GetIsolate())) {
for (int32_t i = 2; i < iLeftLength; i++) {
- lValue->GetObjectPropertyByIdx(i, jsObjectValue.get());
- if (!SetObjectDefaultValue(jsObjectValue.get(), rValue.get())) {
+ lValue->GetObjectPropertyByIdx(info.GetIsolate(), i,
+ jsObjectValue.get());
+ if (!SetObjectDefaultValue(info.GetIsolate(), jsObjectValue.get(),
+ rValue.get())) {
pContext->ThrowNoDefaultPropertyException(bsFuncName);
return;
}
}
} else {
for (int32_t i = 2; i < iLeftLength; i++) {
- lValue->GetObjectPropertyByIdx(i, jsObjectValue.get());
+ lValue->GetObjectPropertyByIdx(pIsolate, i, jsObjectValue.get());
jsObjectValue->SetObjectProperty(
- propertyValue->ToString().AsStringView(), rValue.get());
+ info.GetIsolate(), propertyValue->ToString(pIsolate).AsStringView(),
+ rValue.get());
}
}
- } else if (lValue->IsObject()) {
- if (!SetObjectDefaultValue(lValue.get(), rValue.get())) {
+ } else if (lValue->IsObject(info.GetIsolate())) {
+ if (!SetObjectDefaultValue(info.GetIsolate(), lValue.get(), rValue.get())) {
pContext->ThrowNoDefaultPropertyException(bsFuncName);
return;
}
@@ -4599,7 +4654,8 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> infoecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() && infoecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) &&
+ infoecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4620,7 +4676,8 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> infoecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() && infoecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) &&
+ infoecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4646,15 +4703,19 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> infoecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || infoecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ infoecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argFirst->IsNull() && infoecond->IsNull()));
+ static_cast<int>(argFirst->IsNull(info.GetIsolate()) &&
+ infoecond->IsNull(info.GetIsolate())));
return;
}
- if (argFirst->IsString() && infoecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ infoecond->IsString(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argFirst->ToString() == infoecond->ToString()));
+ static_cast<int>(argFirst->ToString(info.GetIsolate()) ==
+ infoecond->ToString(info.GetIsolate())));
return;
}
@@ -4679,15 +4740,19 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> infoecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || infoecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ infoecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(!argFirst->IsNull() || !infoecond->IsNull()));
+ static_cast<int>(!argFirst->IsNull(info.GetIsolate()) ||
+ !infoecond->IsNull(info.GetIsolate())));
return;
}
- if (argFirst->IsString() && infoecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ infoecond->IsString(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argFirst->ToString() != infoecond->ToString()));
+ static_cast<int>(argFirst->ToString(info.GetIsolate()) !=
+ infoecond->ToString(info.GetIsolate())));
return;
}
@@ -4702,25 +4767,29 @@
const v8::FunctionCallbackInfo<v8::Value>& info) {
auto argFirst = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
auto argSecond = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[1]);
- if (!argFirst->IsArray() || !argSecond->IsArray())
+ if (!argFirst->IsArray(info.GetIsolate()) ||
+ !argSecond->IsArray(info.GetIsolate()))
return false;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
- auto firstFlagValue = std::make_unique<CFXJSE_Value>(pIsolate);
- auto secondFlagValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argFirst->GetObjectPropertyByIdx(0, firstFlagValue.get());
- argSecond->GetObjectPropertyByIdx(0, secondFlagValue.get());
- if (firstFlagValue->ToInteger() != 3 || secondFlagValue->ToInteger() != 3)
+ auto firstFlagValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ auto secondFlagValue = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ argFirst->GetObjectPropertyByIdx(info.GetIsolate(), 0, firstFlagValue.get());
+ argSecond->GetObjectPropertyByIdx(info.GetIsolate(), 0,
+ secondFlagValue.get());
+ if (firstFlagValue->ToInteger(info.GetIsolate()) != 3 ||
+ secondFlagValue->ToInteger(info.GetIsolate()) != 3)
return false;
- auto firstJSObject = std::make_unique<CFXJSE_Value>(pIsolate);
- auto secondJSObject = std::make_unique<CFXJSE_Value>(pIsolate);
- argFirst->GetObjectPropertyByIdx(2, firstJSObject.get());
- argSecond->GetObjectPropertyByIdx(2, secondJSObject.get());
- if (firstJSObject->IsNull() || secondJSObject->IsNull())
+ auto firstJSObject = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ auto secondJSObject = std::make_unique<CFXJSE_Value>(info.GetIsolate());
+ argFirst->GetObjectPropertyByIdx(info.GetIsolate(), 2, firstJSObject.get());
+ argSecond->GetObjectPropertyByIdx(info.GetIsolate(), 2, secondJSObject.get());
+ if (firstJSObject->IsNull(info.GetIsolate()) ||
+ secondJSObject->IsNull(info.GetIsolate()))
return false;
- return firstJSObject->ToHostObject() == secondJSObject->ToHostObject();
+ return firstJSObject->ToHostObject(info.GetIsolate()) ==
+ secondJSObject->ToHostObject(info.GetIsolate());
}
// static
@@ -4734,14 +4803,17 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(0);
return;
}
- if (argFirst->IsString() && argSecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ argSecond->IsString(info.GetIsolate())) {
int result =
- argFirst->ToString().Compare(argSecond->ToString().AsStringView()) < 0;
+ argFirst->ToString(info.GetIsolate())
+ .Compare(argSecond->ToString(info.GetIsolate()).AsStringView()) < 0;
info.GetReturnValue().Set(result);
return;
}
@@ -4762,15 +4834,20 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argFirst->IsNull() && argSecond->IsNull()));
+ static_cast<int>(argFirst->IsNull(info.GetIsolate()) &&
+ argSecond->IsNull(info.GetIsolate())));
return;
}
- if (argFirst->IsString() && argSecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ argSecond->IsString(info.GetIsolate())) {
int result =
- argFirst->ToString().Compare(argSecond->ToString().AsStringView()) <= 0;
+ argFirst->ToString(info.GetIsolate())
+ .Compare(argSecond->ToString(info.GetIsolate()).AsStringView()) <=
+ 0;
info.GetReturnValue().Set(result);
return;
}
@@ -4791,14 +4868,17 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(0);
return;
}
- if (argFirst->IsString() && argSecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ argSecond->IsString(info.GetIsolate())) {
int result =
- argFirst->ToString().Compare(argSecond->ToString().AsStringView()) > 0;
+ argFirst->ToString(info.GetIsolate())
+ .Compare(argSecond->ToString(info.GetIsolate()).AsStringView()) > 0;
info.GetReturnValue().Set(result);
return;
}
@@ -4819,15 +4899,20 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() || argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) ||
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().Set(
- static_cast<int>(argFirst->IsNull() && argSecond->IsNull()));
+ static_cast<int>(argFirst->IsNull(info.GetIsolate()) &&
+ argSecond->IsNull(info.GetIsolate())));
return;
}
- if (argFirst->IsString() && argSecond->IsString()) {
+ if (argFirst->IsString(info.GetIsolate()) &&
+ argSecond->IsString(info.GetIsolate())) {
int result =
- argFirst->ToString().Compare(argSecond->ToString().AsStringView()) >= 0;
+ argFirst->ToString(info.GetIsolate())
+ .Compare(argSecond->ToString(info.GetIsolate()).AsStringView()) >=
+ 0;
info.GetReturnValue().Set(result);
return;
}
@@ -4848,8 +4933,8 @@
auto argFirst = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
auto argSecond = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[1]);
- if (ValueIsNull(pThis, argFirst.get()) &&
- ValueIsNull(pThis, argSecond.get())) {
+ if (ValueIsNull(info.GetIsolate(), pThis, argFirst.get()) &&
+ ValueIsNull(info.GetIsolate(), pThis, argSecond.get())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4870,7 +4955,8 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() && argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) &&
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4891,7 +4977,8 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() && argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) &&
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4913,7 +5000,8 @@
std::unique_ptr<CFXJSE_Value> argFirst = GetSimpleValue(pThis, info, 0);
std::unique_ptr<CFXJSE_Value> argSecond = GetSimpleValue(pThis, info, 1);
- if (argFirst->IsNull() && argSecond->IsNull()) {
+ if (argFirst->IsNull(info.GetIsolate()) &&
+ argSecond->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4938,7 +5026,7 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4955,7 +5043,7 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -4972,7 +5060,7 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- if (argOne->IsNull()) {
+ if (argOne->IsNull(info.GetIsolate())) {
info.GetReturnValue().SetNull();
return;
}
@@ -5006,7 +5094,7 @@
}
std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, info, 0);
- ByteString bsArg = ValueToUTF8String(argOne.get());
+ ByteString bsArg = ValueToUTF8String(pThis, argOne.get());
if (bsArg.IsEmpty()) {
pContext->ThrowArgumentMismatchException();
return;
@@ -5034,7 +5122,7 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- info.GetReturnValue().Set(argOne->IsObject());
+ info.GetReturnValue().Set(argOne->IsObject(info.GetIsolate()));
}
// static
@@ -5047,7 +5135,7 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- info.GetReturnValue().Set(argOne->IsArray());
+ info.GetReturnValue().Set(argOne->IsArray(info.GetIsolate()));
}
// static
@@ -5061,29 +5149,32 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (argOne->IsArray()) {
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ if (argOne->IsArray(info.GetIsolate())) {
+ v8::Isolate* pIsolate = pContext->GetIsolate();
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectPropertyByIdx(1, propertyValue.get());
- argOne->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 1, propertyValue.get());
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 2, jsObjectValue.get());
+ if (propertyValue->IsNull(info.GetIsolate())) {
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- GetObjectDefaultValue(jsObjectValue.get(), pReturn.get());
+ GetObjectDefaultValue(info.GetIsolate(), jsObjectValue.get(),
+ pReturn.get());
info.GetReturnValue().Set(pReturn->DirectGetValue());
return;
}
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- pReturn.get());
+ jsObjectValue->GetObjectProperty(
+ info.GetIsolate(),
+ propertyValue->ToString(info.GetIsolate()).AsStringView(),
+ pReturn.get());
info.GetReturnValue().Set(pReturn->DirectGetValue());
return;
}
- if (argOne->IsObject()) {
+ if (argOne->IsObject(info.GetIsolate())) {
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- GetObjectDefaultValue(argOne.get(), pReturn.get());
+ GetObjectDefaultValue(info.GetIsolate(), argOne.get(), pReturn.get());
info.GetReturnValue().Set(pReturn->DirectGetValue());
return;
}
@@ -5101,21 +5192,21 @@
}
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (!argOne->IsArray()) {
+ if (!argOne->IsArray(info.GetIsolate())) {
info.GetReturnValue().Set(argOne->DirectGetValue());
return;
}
#ifndef NDEBUG
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectProperty("length", lengthValue.get());
- ASSERT(lengthValue->ToInteger() >= 3);
+ argOne->GetObjectProperty(info.GetIsolate(), "length", lengthValue.get());
+ ASSERT(lengthValue->ToInteger(info.GetIsolate()) >= 3);
#endif
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- argOne->GetObjectPropertyByIdx(2, pReturn.get());
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 2, pReturn.get());
info.GetReturnValue().Set(pReturn->DirectGetValue());
}
@@ -5129,9 +5220,9 @@
return;
}
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
auto argOne = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (!argOne->IsArray()) {
+ if (!argOne->IsArray(info.GetIsolate())) {
std::unique_ptr<CFXJSE_Value> simpleValue = GetSimpleValue(pThis, info, 0);
info.GetReturnValue().Set(simpleValue->DirectGetValue());
return;
@@ -5139,13 +5230,13 @@
#ifndef NDEBUG
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectProperty("length", lengthValue.get());
- ASSERT(lengthValue->ToInteger() >= 3);
+ argOne->GetObjectProperty(info.GetIsolate(), "length", lengthValue.get());
+ ASSERT(lengthValue->ToInteger(info.GetIsolate()) >= 3);
#endif
auto flagsValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectPropertyByIdx(0, flagsValue.get());
- int32_t iFlags = flagsValue->ToInteger();
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 0, flagsValue.get());
+ int32_t iFlags = flagsValue->ToInteger(info.GetIsolate());
if (iFlags != 3 && iFlags != 4) {
std::unique_ptr<CFXJSE_Value> simpleValue = GetSimpleValue(pThis, info, 0);
info.GetReturnValue().Set(simpleValue->DirectGetValue());
@@ -5157,18 +5248,18 @@
for (int32_t i = 0; i < 3; i++)
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- values[0]->SetInteger(3);
- values[1]->SetNull();
- values[2]->SetNull();
+ values[0]->SetInteger(info.GetIsolate(), 3);
+ values[1]->SetNull(info.GetIsolate());
+ values[2]->SetNull(info.GetIsolate());
auto pResult = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- pResult->SetArray(values);
+ pResult->SetArray(info.GetIsolate(), values);
info.GetReturnValue().Set(pResult->DirectGetValue());
return;
}
auto objectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argOne->GetObjectPropertyByIdx(2, objectValue.get());
- if (objectValue->IsNull()) {
+ argOne->GetObjectPropertyByIdx(info.GetIsolate(), 2, objectValue.get());
+ if (objectValue->IsNull(info.GetIsolate())) {
pContext->ThrowCompilerErrorException();
return;
}
@@ -5179,24 +5270,26 @@
void CFXJSE_FormCalcContext::concat_fm_object(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
std::vector<std::unique_ptr<CFXJSE_Value>> returnValues;
for (int32_t i = 0; i < info.Length(); ++i) {
auto argValue = std::make_unique<CFXJSE_Value>(pIsolate, info[i]);
- if (argValue->IsArray()) {
+ if (argValue->IsArray(info.GetIsolate())) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argValue->GetObjectProperty("length", lengthValue.get());
- int32_t length = lengthValue->ToInteger();
+ argValue->GetObjectProperty(info.GetIsolate(), "length",
+ lengthValue.get());
+ int32_t length = lengthValue->ToInteger(info.GetIsolate());
for (int32_t j = 2; j < length; j++) {
returnValues.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- argValue->GetObjectPropertyByIdx(j, returnValues.back().get());
+ argValue->GetObjectPropertyByIdx(info.GetIsolate(), j,
+ returnValues.back().get());
}
}
returnValues.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- returnValues.back()->Assign(argValue.get());
+ returnValues.back()->Assign(info.GetIsolate(), argValue.get());
}
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- pReturn->SetArray(returnValues);
+ pReturn->SetArray(info.GetIsolate(), returnValues);
info.GetReturnValue().Set(pReturn->DirectGetValue());
}
@@ -5205,90 +5298,95 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info,
uint32_t index) {
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
ASSERT(index < (uint32_t)info.Length());
auto argIndex =
std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[index]);
- if (!argIndex->IsArray() && !argIndex->IsObject())
+ if (!argIndex->IsArray(info.GetIsolate()) &&
+ !argIndex->IsObject(info.GetIsolate()))
return argIndex;
- if (argIndex->IsArray()) {
+ if (argIndex->IsArray(info.GetIsolate())) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argIndex->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ argIndex->GetObjectProperty(info.GetIsolate(), "length", lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(info.GetIsolate());
auto simpleValue = std::make_unique<CFXJSE_Value>(pIsolate);
if (iLength < 3) {
- simpleValue.get()->SetUndefined();
+ simpleValue.get()->SetUndefined(info.GetIsolate());
return simpleValue;
}
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argIndex->GetObjectPropertyByIdx(1, propertyValue.get());
- argIndex->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), simpleValue.get());
+ argIndex->GetObjectPropertyByIdx(info.GetIsolate(), 1, propertyValue.get());
+ argIndex->GetObjectPropertyByIdx(info.GetIsolate(), 2, jsObjectValue.get());
+ if (propertyValue->IsNull(info.GetIsolate())) {
+ GetObjectDefaultValue(info.GetIsolate(), jsObjectValue.get(),
+ simpleValue.get());
return simpleValue;
}
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- simpleValue.get());
+ jsObjectValue->GetObjectProperty(
+ info.GetIsolate(),
+ propertyValue->ToString(info.GetIsolate()).AsStringView(),
+ simpleValue.get());
return simpleValue;
}
auto defaultValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(argIndex.get(), defaultValue.get());
+ GetObjectDefaultValue(info.GetIsolate(), argIndex.get(), defaultValue.get());
return defaultValue;
}
// static
-bool CFXJSE_FormCalcContext::ValueIsNull(CFXJSE_HostObject* pThis,
+bool CFXJSE_FormCalcContext::ValueIsNull(v8::Isolate* pIsolate,
+ CFXJSE_HostObject* pThis,
CFXJSE_Value* arg) {
- if (!arg || arg->IsNull())
+ if (!arg || arg->IsNull(pIsolate))
return true;
- if (!arg->IsArray() && !arg->IsObject())
+ if (!arg->IsArray(pIsolate) && !arg->IsObject(pIsolate))
return false;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
- if (arg->IsArray()) {
+ if (arg->IsArray(pIsolate)) {
int32_t iLength = hvalue_get_array_length(pThis, arg);
if (iLength < 3)
return true;
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectPropertyByIdx(1, propertyValue.get());
- arg->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
+ arg->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
auto defaultValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(jsObjectValue.get(), defaultValue.get());
- return defaultValue->IsNull();
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(), defaultValue.get());
+ return defaultValue->IsNull(pIsolate);
}
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- newPropertyValue.get());
- return newPropertyValue->IsNull();
+ jsObjectValue->GetObjectProperty(
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
+ return newPropertyValue->IsNull(pIsolate);
}
auto defaultValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(arg, defaultValue.get());
- return defaultValue->IsNull();
+ GetObjectDefaultValue(pIsolate, arg, defaultValue.get());
+ return defaultValue->IsNull(pIsolate);
}
// static
int32_t CFXJSE_FormCalcContext::hvalue_get_array_length(
CFXJSE_HostObject* pThis,
CFXJSE_Value* arg) {
- if (!arg || !arg->IsArray())
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (!arg || !arg->IsArray(pIsolate))
return 0;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectProperty("length", lengthValue.get());
- return lengthValue->ToInteger();
+ arg->GetObjectProperty(pIsolate, "length", lengthValue.get());
+ return lengthValue->ToInteger(pIsolate);
}
// static
@@ -5298,20 +5396,22 @@
if (!firstValue)
return false;
- if (firstValue->IsString()) {
- ByteString bsFirst = ValueToUTF8String(firstValue);
- ByteString bsSecond = ValueToUTF8String(secondValue);
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (firstValue->IsString(pIsolate)) {
+ ByteString bsFirst = ValueToUTF8String(pThis, firstValue);
+ ByteString bsSecond = ValueToUTF8String(pThis, secondValue);
return bsFirst == bsSecond;
}
- if (firstValue->IsNumber()) {
+ if (firstValue->IsNumber(pIsolate)) {
float first = ValueToFloat(pThis, firstValue);
float second = ValueToFloat(pThis, secondValue);
return first == second;
}
- if (firstValue->IsBoolean())
- return firstValue->ToBoolean() == secondValue->ToBoolean();
+ if (firstValue->IsBoolean(pIsolate))
+ return firstValue->ToBoolean(pIsolate) == secondValue->ToBoolean(pIsolate);
- return firstValue->IsNull() && secondValue && secondValue->IsNull();
+ return firstValue->IsNull(pIsolate) && secondValue &&
+ secondValue->IsNull(pIsolate);
}
// static
@@ -5319,36 +5419,38 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) {
std::vector<std::unique_ptr<CFXJSE_Value>> results;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
for (int32_t i = 1; i < info.Length(); ++i) {
auto arg = std::make_unique<CFXJSE_Value>(pIsolate, info[i]);
- if (arg->IsArray()) {
+ if (arg->IsArray(pIsolate)) {
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ arg->GetObjectProperty(pIsolate, "length", lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(pIsolate);
if (iLength < 3)
continue;
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectPropertyByIdx(1, propertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
for (int32_t j = 2; j < iLength; j++) {
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectPropertyByIdx(j, jsObjectValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, j, jsObjectValue.get());
results.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), results.back().get());
+ if (propertyValue->IsNull(pIsolate)) {
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ results.back().get());
} else {
jsObjectValue->GetObjectProperty(
- propertyValue->ToString().AsStringView(), results.back().get());
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ results.back().get());
}
}
- } else if (arg->IsObject()) {
+ } else if (arg->IsObject(pIsolate)) {
results.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- GetObjectDefaultValue(arg.get(), results.back().get());
+ GetObjectDefaultValue(pIsolate, arg.get(), results.back().get());
} else {
results.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- results.back()->Assign(arg.get());
+ results.back()->Assign(pIsolate, arg.get());
}
}
return results;
@@ -5401,8 +5503,9 @@
WideString::FromUTF8(bsAccessorName).AsStringView(), &resolveNodeRS,
dwFlags, nullptr);
if (bRet && resolveNodeRS.dwFlags == XFA_ResolveNodeRS::Type::kNodes) {
- accessorValue->Assign(pScriptContext->GetOrCreateJSBindingFromMap(
- resolveNodeRS.objects.front().Get()));
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ accessorValue->Assign(pIsolate, pScriptContext->GetOrCreateJSBindingFromMap(
+ resolveNodeRS.objects.front().Get()));
return true;
}
return false;
@@ -5419,16 +5522,17 @@
if (!pDoc)
return false;
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
WideString wsSomExpression = WideString::FromUTF8(bsSomExp);
CFXJSE_Engine* pScriptContext = pDoc->GetScriptContext();
CXFA_Object* pNode = nullptr;
uint32_t dFlags = 0UL;
if (bDotAccessor) {
- if (pRefValue && pRefValue->IsNull()) {
+ if (pRefValue && pRefValue->IsNull(pIsolate)) {
pNode = pScriptContext->GetThisObject();
dFlags = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent;
} else {
- pNode = CFXJSE_Engine::ToObject(pRefValue);
+ pNode = CFXJSE_Engine::ToObject(pIsolate, pRefValue);
if (!pNode)
return false;
@@ -5453,7 +5557,7 @@
}
}
} else {
- pNode = CFXJSE_Engine::ToObject(pRefValue);
+ pNode = CFXJSE_Engine::ToObject(pIsolate, pRefValue);
dFlags = XFA_RESOLVENODE_AnyChild;
}
return pScriptContext->ResolveObjects(pNode, wsSomExpression.AsStringView(),
@@ -5472,7 +5576,7 @@
resultValues->clear();
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
if (resolveNodeRS.dwFlags == XFA_ResolveNodeRS::Type::kNodes) {
*bAttribute = false;
@@ -5480,7 +5584,7 @@
for (auto& pObject : resolveNodeRS.objects) {
resultValues->push_back(std::make_unique<CFXJSE_Value>(pIsolate));
resultValues->back()->Assign(
- pScriptContext->GetOrCreateJSBindingFromMap(pObject.Get()));
+ pIsolate, pScriptContext->GetOrCreateJSBindingFromMap(pObject.Get()));
}
return;
}
@@ -5492,7 +5596,7 @@
auto pValue = std::make_unique<CFXJSE_Value>(pIsolate);
CJX_Object* jsObject = pObject->JSObject();
(*resolveNodeRS.script_attribute.callback)(
- jsObject, pValue.get(), false,
+ pIsolate, jsObject, pValue.get(), false,
resolveNodeRS.script_attribute.attribute);
resultValues->push_back(std::move(pValue));
*bAttribute = false;
@@ -5500,11 +5604,11 @@
}
if (!*bAttribute)
return;
- if (!pParentValue || !pParentValue->IsObject())
+ if (!pParentValue || !pParentValue->IsObject(pIsolate))
return;
resultValues->push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- resultValues->back()->Assign(pParentValue);
+ resultValues->back()->Assign(pIsolate, pParentValue);
}
// static
@@ -5513,30 +5617,32 @@
if (!pValue || pValue->IsEmpty())
return 0;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
- if (pValue->IsArray()) {
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (pValue->IsArray(pIsolate)) {
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- pValue->GetObjectPropertyByIdx(1, propertyValue.get());
- pValue->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
+ pValue->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ pValue->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
return ValueToInteger(pThis, newPropertyValue.get());
}
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- newPropertyValue.get());
+ jsObjectValue->GetObjectProperty(
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
return ValueToInteger(pThis, newPropertyValue.get());
}
- if (pValue->IsObject()) {
+ if (pValue->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(pValue, newPropertyValue.get());
+ GetObjectDefaultValue(pIsolate, pValue, newPropertyValue.get());
return ValueToInteger(pThis, newPropertyValue.get());
}
- if (pValue->IsString())
- return FXSYS_atoi(pValue->ToString().c_str());
- return pValue->ToInteger();
+ if (pValue->IsString(pIsolate))
+ return FXSYS_atoi(pValue->ToString(pIsolate).c_str());
+ return pValue->ToInteger(pIsolate);
}
// static
@@ -5545,31 +5651,33 @@
if (!arg)
return 0.0f;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
- if (arg->IsArray()) {
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (arg->IsArray(pIsolate)) {
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectPropertyByIdx(1, propertyValue.get());
- arg->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
return ValueToFloat(pThis, newPropertyValue.get());
}
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- newPropertyValue.get());
+ jsObjectValue->GetObjectProperty(
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
return ValueToFloat(pThis, newPropertyValue.get());
}
- if (arg->IsObject()) {
+ if (arg->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(arg, newPropertyValue.get());
+ GetObjectDefaultValue(pIsolate, arg, newPropertyValue.get());
return ValueToFloat(pThis, newPropertyValue.get());
}
- if (arg->IsString())
- return strtof(arg->ToString().c_str(), nullptr);
- if (arg->IsUndefined() || arg->IsEmpty())
+ if (arg->IsString(pIsolate))
+ return strtof(arg->ToString(pIsolate).c_str(), nullptr);
+ if (arg->IsUndefined(pIsolate) || arg->IsEmpty())
return 0.0f;
- return arg->ToFloat();
+ return arg->ToFloat(pIsolate);
}
// static
@@ -5578,31 +5686,33 @@
if (!arg)
return 0;
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
- if (arg->IsArray()) {
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (arg->IsArray(pIsolate)) {
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- arg->GetObjectPropertyByIdx(1, propertyValue.get());
- arg->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull()) {
- GetObjectDefaultValue(jsObjectValue.get(), newPropertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ arg->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate)) {
+ GetObjectDefaultValue(pIsolate, jsObjectValue.get(),
+ newPropertyValue.get());
return ValueToDouble(pThis, newPropertyValue.get());
}
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- newPropertyValue.get());
+ jsObjectValue->GetObjectProperty(
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
return ValueToDouble(pThis, newPropertyValue.get());
}
- if (arg->IsObject()) {
+ if (arg->IsObject(pIsolate)) {
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- GetObjectDefaultValue(arg, newPropertyValue.get());
+ GetObjectDefaultValue(pIsolate, arg, newPropertyValue.get());
return ValueToDouble(pThis, newPropertyValue.get());
}
- if (arg->IsString())
- return strtod(arg->ToString().c_str(), nullptr);
- if (arg->IsUndefined() || arg->IsEmpty())
+ if (arg->IsString(pIsolate))
+ return strtod(arg->ToString(pIsolate).c_str(), nullptr);
+ if (arg->IsUndefined(pIsolate) || arg->IsEmpty())
return 0;
- return arg->ToDouble();
+ return arg->ToDouble(pIsolate);
}
// static.
@@ -5615,13 +5725,13 @@
if (!src)
return 0;
- if (!src->IsArray())
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (!src->IsArray(pIsolate))
return ValueToDouble(pThis, src);
- v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetScriptRuntime();
auto lengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- src->GetObjectProperty("length", lengthValue.get());
- int32_t iLength = lengthValue->ToInteger();
+ src->GetObjectProperty(pIsolate, "length", lengthValue.get());
+ int32_t iLength = lengthValue->ToInteger(pIsolate);
if (iLength <= 2) {
*ret = false;
return 0.0;
@@ -5629,24 +5739,28 @@
auto propertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
auto jsObjectValue = std::make_unique<CFXJSE_Value>(pIsolate);
- src->GetObjectPropertyByIdx(1, propertyValue.get());
- src->GetObjectPropertyByIdx(2, jsObjectValue.get());
- if (propertyValue->IsNull())
+ src->GetObjectPropertyByIdx(pIsolate, 1, propertyValue.get());
+ src->GetObjectPropertyByIdx(pIsolate, 2, jsObjectValue.get());
+ if (propertyValue->IsNull(pIsolate))
return ValueToDouble(pThis, jsObjectValue.get());
auto newPropertyValue = std::make_unique<CFXJSE_Value>(pIsolate);
- jsObjectValue->GetObjectProperty(propertyValue->ToString().AsStringView(),
- newPropertyValue.get());
+ jsObjectValue->GetObjectProperty(
+ pIsolate, propertyValue->ToString(pIsolate).AsStringView(),
+ newPropertyValue.get());
return ValueToDouble(pThis, newPropertyValue.get());
}
// static
-ByteString CFXJSE_FormCalcContext::ValueToUTF8String(CFXJSE_Value* arg) {
- if (!arg || arg->IsNull() || arg->IsUndefined() || arg->IsEmpty())
+ByteString CFXJSE_FormCalcContext::ValueToUTF8String(CFXJSE_HostObject* pThis,
+ CFXJSE_Value* arg) {
+ v8::Isolate* pIsolate = ToFormCalcContext(pThis)->GetIsolate();
+ if (!arg || arg->IsNull(pIsolate) || arg->IsUndefined(pIsolate) ||
+ arg->IsEmpty())
return ByteString();
- if (arg->IsBoolean())
- return arg->ToBoolean() ? "1" : "0";
- return arg->ToString();
+ if (arg->IsBoolean(pIsolate))
+ return arg->ToBoolean(pIsolate) ? "1" : "0";
+ return arg->ToString(pIsolate);
}
Optional<CFX_WideTextBuf> CFXJSE_FormCalcContext::Translate(
@@ -5672,14 +5786,14 @@
return wsJavaScript;
}
-CFXJSE_FormCalcContext::CFXJSE_FormCalcContext(v8::Isolate* pScriptIsolate,
+CFXJSE_FormCalcContext::CFXJSE_FormCalcContext(v8::Isolate* pIsolate,
CFXJSE_Context* pScriptContext,
CXFA_Document* pDoc)
- : m_pIsolate(pScriptIsolate),
- m_pValue(std::make_unique<CFXJSE_Value>(pScriptIsolate)),
+ : m_pIsolate(pIsolate),
+ m_pValue(std::make_unique<CFXJSE_Value>(pIsolate)),
m_pDocument(pDoc) {
m_pValue->SetHostObject(
- this,
+ pIsolate, this,
CFXJSE_Class::Create(pScriptContext, &kFormCalcFM2JSDescriptor, false));
}
@@ -5690,7 +5804,7 @@
}
void CFXJSE_FormCalcContext::GlobalPropertyGetter(CFXJSE_Value* pValue) {
- pValue->Assign(m_pValue.get());
+ pValue->Assign(GetIsolate(), m_pValue.get());
}
// static
@@ -5699,7 +5813,7 @@
const v8::FunctionCallbackInfo<v8::Value>& info,
bool bDotAccessor) {
CFXJSE_FormCalcContext* pContext = ToFormCalcContext(pThis);
- v8::Isolate* pIsolate = pContext->GetScriptRuntime();
+ v8::Isolate* pIsolate = pContext->GetIsolate();
int32_t argc = info.Length();
if (argc < 4 || argc > 5) {
pContext->ThrowCompilerErrorException();
@@ -5723,10 +5837,11 @@
bIsStar);
auto argAccessor = std::make_unique<CFXJSE_Value>(info.GetIsolate(), info[0]);
- if (argAccessor->IsArray()) {
+ if (argAccessor->IsArray(info.GetIsolate())) {
auto pLengthValue = std::make_unique<CFXJSE_Value>(pIsolate);
- argAccessor->GetObjectProperty("length", pLengthValue.get());
- int32_t iLength = pLengthValue->ToInteger();
+ argAccessor->GetObjectProperty(info.GetIsolate(), "length",
+ pLengthValue.get());
+ int32_t iLength = pLengthValue->ToInteger(info.GetIsolate());
if (iLength < 3) {
pContext->ThrowArgumentMismatchException();
return;
@@ -5738,7 +5853,8 @@
bool bAttribute = false;
bool bAllEmpty = true;
for (int32_t i = 2; i < iLength; i++) {
- argAccessor->GetObjectPropertyByIdx(i, hJSObjValue.get());
+ argAccessor->GetObjectPropertyByIdx(info.GetIsolate(), i,
+ hJSObjValue.get());
XFA_ResolveNodeRS resolveNodeRS;
if (ResolveObjects(pThis, hJSObjValue.get(), bsSomExp.AsStringView(),
&resolveNodeRS, bDotAccessor, bHasNoResolveName)) {
@@ -5756,21 +5872,21 @@
std::vector<std::unique_ptr<CFXJSE_Value>> values;
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- values.back()->SetInteger(1);
+ values.back()->SetInteger(pIsolate, 1);
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
if (bAttribute)
- values.back()->SetString(bsName.AsStringView());
+ values.back()->SetString(pIsolate, bsName.AsStringView());
else
- values.back()->SetNull();
+ values.back()->SetNull(pIsolate);
for (int32_t i = 0; i < iLength - 2; i++) {
for (size_t j = 0; j < resolveValues[i].size(); j++) {
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- values.back()->Assign(resolveValues[i][j].get());
+ values.back()->Assign(pIsolate, resolveValues[i][j].get());
}
}
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- pReturn->SetArray(values);
+ pReturn->SetArray(pIsolate, values);
info.GetReturnValue().Set(pReturn->DirectGetValue());
return;
}
@@ -5779,11 +5895,11 @@
bool bRet = false;
ByteString bsAccessorName =
fxv8::ReentrantToByteStringHelper(info.GetIsolate(), info[1]);
- if (argAccessor->IsObject() ||
- (argAccessor->IsNull() && bsAccessorName.IsEmpty())) {
+ if (argAccessor->IsObject(pIsolate) ||
+ (argAccessor->IsNull(pIsolate) && bsAccessorName.IsEmpty())) {
bRet = ResolveObjects(pThis, argAccessor.get(), bsSomExp.AsStringView(),
&resolveNodeRS, bDotAccessor, bHasNoResolveName);
- } else if (!argAccessor->IsObject() && !bsAccessorName.IsEmpty() &&
+ } else if (!argAccessor->IsObject(pIsolate) && !bsAccessorName.IsEmpty() &&
GetObjectForName(pThis, argAccessor.get(),
bsAccessorName.AsStringView())) {
bRet = ResolveObjects(pThis, argAccessor.get(), bsSomExp.AsStringView(),
@@ -5805,17 +5921,17 @@
for (size_t i = 0; i < resolveValues.size() + 2; i++)
values.push_back(std::make_unique<CFXJSE_Value>(pIsolate));
- values[0]->SetInteger(1);
+ values[0]->SetInteger(pIsolate, 1);
if (bAttribute)
- values[1]->SetString(bsName.AsStringView());
+ values[1]->SetString(pIsolate, bsName.AsStringView());
else
- values[1]->SetNull();
+ values[1]->SetNull(pIsolate);
for (size_t i = 0; i < resolveValues.size(); i++)
- values[i + 2]->Assign(resolveValues[i].get());
+ values[i + 2]->Assign(pIsolate, resolveValues[i].get());
auto pReturn = std::make_unique<CFXJSE_Value>(info.GetIsolate());
- pReturn->SetArray(values);
+ pReturn->SetArray(pIsolate, values);
info.GetReturnValue().Set(pReturn->DirectGetValue());
}
diff --git a/fxjs/xfa/cfxjse_formcalc_context.h b/fxjs/xfa/cfxjse_formcalc_context.h
index 1a005f5..19b88ca 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.h
+++ b/fxjs/xfa/cfxjse_formcalc_context.h
@@ -25,7 +25,7 @@
class CFXJSE_FormCalcContext final : public CFXJSE_HostObject {
public:
- CFXJSE_FormCalcContext(v8::Isolate* pScriptIsolate,
+ CFXJSE_FormCalcContext(v8::Isolate* pIsolate,
CFXJSE_Context* pScriptContext,
CXFA_Document* pDoc);
~CFXJSE_FormCalcContext() override;
@@ -295,11 +295,14 @@
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info,
uint32_t index);
- static bool ValueIsNull(CFXJSE_HostObject* pThis, CFXJSE_Value* pValue);
+ static bool ValueIsNull(v8::Isolate* pIsolate,
+ CFXJSE_HostObject* pThis,
+ CFXJSE_Value* pValue);
static int32_t ValueToInteger(CFXJSE_HostObject* pThis, CFXJSE_Value* pValue);
static float ValueToFloat(CFXJSE_HostObject* pThis, CFXJSE_Value* pValue);
static double ValueToDouble(CFXJSE_HostObject* pThis, CFXJSE_Value* pValue);
- static ByteString ValueToUTF8String(CFXJSE_Value* pValue);
+ static ByteString ValueToUTF8String(CFXJSE_HostObject* pThis,
+ CFXJSE_Value* pValue);
static double ExtractDouble(CFXJSE_HostObject* pThis,
CFXJSE_Value* src,
bool* ret);
@@ -313,7 +316,7 @@
const v8::FunctionCallbackInfo<v8::Value>& info,
bool bDotAccessor);
- v8::Isolate* GetScriptRuntime() const { return m_pIsolate.Get(); }
+ v8::Isolate* GetIsolate() const { return m_pIsolate.Get(); }
CXFA_Document* GetDocument() const { return m_pDocument.Get(); }
void ThrowNoDefaultPropertyException(ByteStringView name) const;
diff --git a/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp b/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp
index 97b7b87..545c3d8 100644
--- a/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp
@@ -16,7 +16,7 @@
protected:
bool ExecuteExpectNull(ByteStringView input) {
- return Execute(input) && GetValue()->IsNull();
+ return Execute(input) && GetValue()->IsNull(isolate());
}
};
@@ -38,8 +38,8 @@
EXPECT_TRUE(Execute(input));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(123, value->ToInteger()) << "Program: " << input;
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(123, value->ToInteger(isolate())) << "Program: " << input;
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, Numeric) {
@@ -77,8 +77,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -98,10 +98,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -139,8 +139,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger()) << "Program: " << tests[i].program;
- EXPECT_EQ(tests[i].result, value->ToBoolean())
+ EXPECT_TRUE(value->IsInteger(isolate())) << "Program: " << tests[i].program;
+ EXPECT_EQ(tests[i].result, value->ToBoolean(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -157,8 +157,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -175,8 +175,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -193,8 +193,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -211,8 +211,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -231,8 +231,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -251,8 +251,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -273,8 +273,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -291,8 +291,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -312,8 +312,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber()) << "Program: " << tests[i].program;
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate())) << "Program: " << tests[i].program;
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -332,8 +332,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -371,8 +371,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -394,10 +394,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -417,8 +417,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -435,8 +435,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -456,10 +456,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -478,10 +478,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -503,10 +503,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString()) << "Program: " << tests[i].program;
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate())) << "Program: " << tests[i].program;
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -527,10 +527,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -547,10 +547,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -582,8 +582,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -605,10 +605,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -625,8 +625,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_NEAR(tests[i].result, value->ToFloat(), 0.000001)
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_NEAR(tests[i].result, value->ToFloat(isolate()), 0.000001)
<< "Program: " << tests[i].program;
}
}
@@ -647,8 +647,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -666,8 +666,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -686,8 +686,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -706,8 +706,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber()) << "Program: " << tests[i].program;
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate())) << "Program: " << tests[i].program;
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -725,8 +725,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -747,8 +747,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -768,8 +768,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -787,8 +787,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_NEAR(tests[i].result, value->ToFloat(), 0.000001)
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_NEAR(tests[i].result, value->ToFloat(isolate()), 0.000001)
<< "Program: " << tests[i].program;
}
}
@@ -806,8 +806,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -828,10 +828,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -840,8 +840,8 @@
EXPECT_TRUE(Execute("Exists(\"hello world\")"));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_FALSE(value->ToBoolean());
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_FALSE(value->ToBoolean(isolate()));
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, HasValue) {
@@ -856,8 +856,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger()) << "Program: " << tests[i].program;
- EXPECT_EQ(tests[i].result, value->ToBoolean())
+ EXPECT_TRUE(value->IsInteger(isolate())) << "Program: " << tests[i].program;
+ EXPECT_EQ(tests[i].result, value->ToBoolean(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -881,8 +881,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger()) << "Program: " << tests[i].program;
- EXPECT_EQ(tests[i].result, value->ToBoolean())
+ EXPECT_TRUE(value->IsInteger(isolate())) << "Program: " << tests[i].program;
+ EXPECT_EQ(tests[i].result, value->ToBoolean(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -901,8 +901,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger()) << "Program: " << tests[i].program;
- EXPECT_EQ(tests[i].result, value->ToBoolean())
+ EXPECT_TRUE(value->IsInteger(isolate())) << "Program: " << tests[i].program;
+ EXPECT_EQ(tests[i].result, value->ToBoolean(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -919,8 +919,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -938,17 +938,17 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
EXPECT_TRUE(Execute("Null() + 5"));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(5, value->ToInteger());
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(5, value->ToInteger(isolate()));
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, Ref) {
@@ -963,10 +963,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -987,10 +987,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1011,8 +1011,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat())
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(tests[i].result, value->ToFloat(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -1031,8 +1031,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -1053,10 +1053,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1096,10 +1096,10 @@
for (size_t i = 0; i < pdfium::size(tests); ++i) {
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1133,10 +1133,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1153,10 +1153,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1173,10 +1173,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1193,8 +1193,8 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsInteger());
- EXPECT_EQ(tests[i].result, value->ToInteger())
+ EXPECT_TRUE(value->IsInteger(isolate()));
+ EXPECT_EQ(tests[i].result, value->ToInteger(isolate()))
<< "Program: " << tests[i].program;
}
}
@@ -1213,10 +1213,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1243,10 +1243,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1262,16 +1262,16 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
EXPECT_TRUE(Execute("Parse(\"$9,999,999.99\", \"$1,234,567.89\")"));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsNumber());
- EXPECT_FLOAT_EQ(1234567.89f, value->ToFloat());
+ EXPECT_TRUE(value->IsNumber(isolate()));
+ EXPECT_FLOAT_EQ(1234567.89f, value->ToFloat(isolate()));
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, Replace) {
@@ -1288,10 +1288,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1308,10 +1308,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1328,10 +1328,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1348,10 +1348,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1370,10 +1370,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1392,10 +1392,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1439,10 +1439,10 @@
EXPECT_TRUE(Execute(test.program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(test.result, value->ToString().c_str())
- << "Program: " << test.program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(test.result, value->ToString(isolate()).c_str())
+ << "Program: " << test.program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1452,7 +1452,7 @@
EXPECT_TRUE(Execute("Uuid()"));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
+ EXPECT_TRUE(value->IsString(isolate()));
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, Upper) {
@@ -1469,10 +1469,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1495,10 +1495,10 @@
EXPECT_TRUE(Execute(tests[i].program));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ(tests[i].result, value->ToString().c_str())
- << "Program: " << tests[i].program << " Result: '" << value->ToString()
- << "'";
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ(tests[i].result, value->ToString(isolate()).c_str())
+ << "Program: " << tests[i].program << " Result: '"
+ << value->ToString(isolate()) << "'";
}
}
@@ -1536,8 +1536,8 @@
EXPECT_TRUE(Execute(test));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ("12.7mm", value->ToString().c_str());
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ("12.7mm", value->ToString(isolate()).c_str());
}
TEST_F(CFXJSE_FormCalcContextEmbedderTest, GetXFAEventChange) {
@@ -1553,8 +1553,8 @@
EXPECT_TRUE(Execute(test));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsString());
- EXPECT_STREQ("changed", value->ToString().c_str());
+ EXPECT_TRUE(value->IsString(isolate()));
+ EXPECT_STREQ("changed", value->ToString(isolate()).c_str());
context->SetEventParam(nullptr);
}
@@ -1654,8 +1654,8 @@
EXPECT_TRUE(Execute("xfa.event.cancelAction"));
CFXJSE_Value* value = GetValue();
- EXPECT_TRUE(value->IsBoolean());
- EXPECT_FALSE(value->ToBoolean());
+ EXPECT_TRUE(value->IsBoolean(isolate()));
+ EXPECT_FALSE(value->ToBoolean(isolate()));
EXPECT_TRUE(Execute("xfa.event.cancelAction = \"true\""));
EXPECT_TRUE(params.m_bCancelAction);
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.cpp b/fxjs/xfa/cfxjse_resolveprocessor.cpp
index 0d6d566..968bca4 100644
--- a/fxjs/xfa/cfxjse_resolveprocessor.cpp
+++ b/fxjs/xfa/cfxjse_resolveprocessor.cpp
@@ -26,7 +26,8 @@
namespace {
-void DoPredicateFilter(WideString wsCondition,
+void DoPredicateFilter(v8::Isolate* pIsolate,
+ WideString wsCondition,
size_t iFoundCount,
CFXJSE_ResolveNodeData* pRnd) {
ASSERT(iFoundCount == pRnd->m_Objects.size());
@@ -45,7 +46,7 @@
bool bRet =
pRnd->m_pSC->RunScript(eLangType, wsExpression.AsStringView(),
pRetValue.get(), pRnd->m_Objects[i - 1].Get());
- if (!bRet || !pRetValue->ToBoolean())
+ if (!bRet || !pRetValue->ToBoolean(pIsolate))
pRnd->m_Objects.erase(pRnd->m_Objects.begin() + i - 1);
}
}
@@ -57,7 +58,8 @@
CFXJSE_ResolveProcessor::~CFXJSE_ResolveProcessor() = default;
-bool CFXJSE_ResolveProcessor::Resolve(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::Resolve(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
if (!rnd.m_CurObject)
return false;
@@ -69,22 +71,22 @@
return false;
}
if (rnd.m_dwStyles & XFA_RESOLVENODE_AnyChild)
- return ResolveAnyChild(rnd);
+ return ResolveAnyChild(pIsolate, rnd);
if (rnd.m_wsName.GetLength()) {
wchar_t wch = rnd.m_wsName[0];
switch (wch) {
case '$':
- return ResolveDollar(rnd);
+ return ResolveDollar(pIsolate, rnd);
case '!':
- return ResolveExcalmatory(rnd);
+ return ResolveExcalmatory(pIsolate, rnd);
case '#':
- return ResolveNumberSign(rnd);
+ return ResolveNumberSign(pIsolate, rnd);
case '*':
return ResolveAsterisk(rnd);
// TODO(dsinclair): We could probably remove this.
case '.':
- return ResolveAnyChild(rnd);
+ return ResolveAnyChild(pIsolate, rnd);
default:
break;
}
@@ -106,17 +108,18 @@
return true;
}
if (!rnd.m_Objects.empty())
- FilterCondition(rnd.m_wsCondition, &rnd);
+ FilterCondition(pIsolate, rnd.m_wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
- if (!ResolveNormal(rnd) && rnd.m_uHashName == XFA_HASHCODE_Xfa)
+ if (!ResolveNormal(pIsolate, rnd) && rnd.m_uHashName == XFA_HASHCODE_Xfa)
rnd.m_Objects.emplace_back(rnd.m_pSC->GetDocument()->GetRoot());
return !rnd.m_Objects.empty();
}
-bool CFXJSE_ResolveProcessor::ResolveAnyChild(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::ResolveAnyChild(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
CXFA_Node* pParent = ToNode(rnd.m_CurObject.Get());
if (!pParent)
return false;
@@ -144,11 +147,12 @@
nodes.insert(nodes.end(), siblings.begin(), siblings.end());
rnd.m_Objects =
std::vector<UnownedPtr<CXFA_Object>>(nodes.begin(), nodes.end());
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
-bool CFXJSE_ResolveProcessor::ResolveDollar(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::ResolveDollar(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
WideString wsName = rnd.m_wsName;
WideString wsCondition = rnd.m_wsCondition;
int32_t iNameLen = wsName.GetLength();
@@ -169,11 +173,12 @@
rnd.m_Objects.emplace_back(pObjNode);
}
if (!rnd.m_Objects.empty())
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
-bool CFXJSE_ResolveProcessor::ResolveExcalmatory(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::ResolveExcalmatory(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
if (rnd.m_nLevel > 0)
return false;
@@ -190,14 +195,15 @@
rndFind.m_nLevel = rnd.m_nLevel + 1;
rndFind.m_dwStyles = XFA_RESOLVENODE_Children;
rndFind.m_wsCondition = rnd.m_wsCondition;
- Resolve(rndFind);
+ Resolve(pIsolate, rndFind);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
return !rnd.m_Objects.empty();
}
-bool CFXJSE_ResolveProcessor::ResolveNumberSign(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::ResolveNumberSign(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
WideString wsName = rnd.m_wsName.Last(rnd.m_wsName.GetLength() - 1);
WideString wsCondition = rnd.m_wsCondition;
CXFA_Node* curNode = ToNode(rnd.m_CurObject.Get());
@@ -214,7 +220,7 @@
FX_HashCode_GetW(rndFind.m_wsName.AsStringView(), false));
rndFind.m_wsCondition = wsCondition;
rndFind.m_CurObject = curNode;
- ResolveNormal(rndFind);
+ ResolveNormal(pIsolate, rndFind);
if (rndFind.m_Objects.empty())
return false;
@@ -241,7 +247,8 @@
return true;
}
-bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) {
+bool CFXJSE_ResolveProcessor::ResolveNormal(v8::Isolate* pIsolate,
+ CFXJSE_ResolveNodeData& rnd) {
if (rnd.m_nLevel > 32 || !rnd.m_CurObject->IsNode())
return false;
@@ -284,14 +291,14 @@
rndFind.m_CurObject = pVariablesNode;
SetStylesForChild(dwStyles, rndFind);
WideString wsSaveCondition = std::move(rndFind.m_wsCondition);
- ResolveNormal(rndFind);
+ ResolveNormal(pIsolate, rndFind);
rndFind.m_wsCondition = std::move(wsSaveCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
rndFind.m_Objects.clear();
}
if (rnd.m_Objects.size() > nNum) {
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
}
@@ -318,7 +325,7 @@
rndFind.m_CurObject = child;
WideString wsSaveCondition = std::move(rndFind.m_wsCondition);
- ResolveNormal(rndFind);
+ ResolveNormal(pIsolate, rndFind);
rndFind.m_wsCondition = std::move(wsSaveCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
@@ -342,7 +349,7 @@
rnd.m_Objects.front() = pSaveObject;
}
}
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
}
@@ -364,7 +371,7 @@
}
}
if (rnd.m_Objects.size() > nNum) {
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
@@ -395,7 +402,7 @@
if (!parentNode) {
if (uCurClassHash == uNameHash) {
rnd.m_Objects.emplace_back(curNode);
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
if (!rnd.m_Objects.empty())
return true;
}
@@ -452,7 +459,7 @@
WideString wsOriginCondition = std::move(rndFind.m_wsCondition);
uint32_t dwOriginStyle = rndFind.m_dwStyles;
rndFind.m_dwStyles = dwOriginStyle | XFA_RESOLVENODE_ALL;
- ResolveNormal(rndFind);
+ ResolveNormal(pIsolate, rndFind);
rndFind.m_dwStyles = dwOriginStyle;
rndFind.m_wsCondition = std::move(wsOriginCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
@@ -476,7 +483,7 @@
rnd.m_Objects.front() = pSaveObject;
}
}
- FilterCondition(wsCondition, &rnd);
+ FilterCondition(pIsolate, wsCondition, &rnd);
return !rnd.m_Objects.empty();
}
}
@@ -492,7 +499,7 @@
rndFind.m_dwStyles = dwSubStyles;
rndFind.m_CurObject = parentNode;
rnd.m_pSC->GetUpObjectArray()->push_back(parentNode);
- ResolveNormal(rndFind);
+ ResolveNormal(pIsolate, rndFind);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
rndFind.m_Objects.clear();
@@ -646,7 +653,8 @@
}
}
-void CFXJSE_ResolveProcessor::FilterCondition(WideString wsCondition,
+void CFXJSE_ResolveProcessor::FilterCondition(v8::Isolate* pIsolate,
+ WideString wsCondition,
CFXJSE_ResolveNodeData* pRnd) {
size_t iCurIndex = 0;
const auto* pArray = pRnd->m_pSC->GetUpObjectArray();
@@ -690,7 +698,7 @@
return;
case '.':
if (iLen > 1 && (wsCondition[1] == '[' || wsCondition[1] == '('))
- DoPredicateFilter(wsCondition, iFoundCount, pRnd);
+ DoPredicateFilter(pIsolate, wsCondition, iFoundCount, pRnd);
return;
case '(':
case '"':
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.h b/fxjs/xfa/cfxjse_resolveprocessor.h
index ebde16e..139b79a 100644
--- a/fxjs/xfa/cfxjse_resolveprocessor.h
+++ b/fxjs/xfa/cfxjse_resolveprocessor.h
@@ -44,7 +44,7 @@
CFXJSE_ResolveProcessor();
~CFXJSE_ResolveProcessor();
- bool Resolve(CFXJSE_ResolveNodeData& rnd);
+ bool Resolve(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
int32_t GetFilter(WideStringView wsExpression,
int32_t nStart,
CFXJSE_ResolveNodeData& rnd);
@@ -59,19 +59,21 @@
bool ResolveForAttributeRs(CXFA_Object* curNode,
CFXJSE_ResolveNodeData& rnd,
WideStringView strAttr);
- bool ResolveAnyChild(CFXJSE_ResolveNodeData& rnd);
- bool ResolveDollar(CFXJSE_ResolveNodeData& rnd);
- bool ResolveExcalmatory(CFXJSE_ResolveNodeData& rnd);
- bool ResolveNumberSign(CFXJSE_ResolveNodeData& rnd);
+ bool ResolveAnyChild(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
+ bool ResolveDollar(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
+ bool ResolveExcalmatory(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
+ bool ResolveNumberSign(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
bool ResolveAsterisk(CFXJSE_ResolveNodeData& rnd);
- bool ResolveNormal(CFXJSE_ResolveNodeData& rnd);
+ bool ResolveNormal(v8::Isolate* pIsolate, CFXJSE_ResolveNodeData& rnd);
void SetStylesForChild(uint32_t dwParentStyles, CFXJSE_ResolveNodeData& rnd);
void ConditionArray(size_t iCurIndex,
WideString wsCondition,
size_t iFoundCount,
CFXJSE_ResolveNodeData* pRnd);
- void FilterCondition(WideString wsCondition, CFXJSE_ResolveNodeData* pRnd);
+ void FilterCondition(v8::Isolate* pIsolate,
+ WideString wsCondition,
+ CFXJSE_ResolveNodeData* pRnd);
int32_t m_iCurStart = 0;
std::unique_ptr<CFXJSE_NodeHelper> const m_pNodeHelper;
diff --git a/fxjs/xfa/cfxjse_value.cpp b/fxjs/xfa/cfxjse_value.cpp
index c034808..993f964 100644
--- a/fxjs/xfa/cfxjse_value.cpp
+++ b/fxjs/xfa/cfxjse_value.cpp
@@ -65,167 +65,170 @@
pIsolate->ThrowException(hError);
}
-CFXJSE_Value::CFXJSE_Value(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {}
+CFXJSE_Value::CFXJSE_Value(v8::Isolate* pIsolate) {}
-CFXJSE_Value::CFXJSE_Value(v8::Isolate* pIsolate, v8::Local<v8::Value> value)
- : m_pIsolate(pIsolate) {
- ForceSetValue(value);
+CFXJSE_Value::CFXJSE_Value(v8::Isolate* pIsolate, v8::Local<v8::Value> value) {
+ ForceSetValue(pIsolate, value);
}
CFXJSE_Value::~CFXJSE_Value() = default;
-CFXJSE_HostObject* CFXJSE_Value::ToHostObject() const {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+CFXJSE_HostObject* CFXJSE_Value::ToHostObject(v8::Isolate* pIsolate) const {
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
return CFXJSE_HostObject::FromV8(
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue));
+ v8::Local<v8::Value>::New(pIsolate, m_hValue));
}
-void CFXJSE_Value::SetHostObject(CFXJSE_HostObject* pObject,
+void CFXJSE_Value::SetHostObject(v8::Isolate* pIsolate,
+ CFXJSE_HostObject* pObject,
CFXJSE_Class* pClass) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- m_hValue.Reset(GetIsolate(),
- pObject->NewBoundV8Object(GetIsolate(),
- pClass->GetTemplate(GetIsolate())));
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ m_hValue.Reset(pIsolate, pObject->NewBoundV8Object(
+ pIsolate, pClass->GetTemplate(pIsolate)));
}
-void CFXJSE_Value::ClearHostObject() {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- FXJSE_ClearObjectBinding(m_hValue.Get(GetIsolate()).As<v8::Object>());
- v8::Local<v8::Value> hValue = v8::Null(GetIsolate());
- m_hValue.Reset(GetIsolate(), hValue);
+void CFXJSE_Value::ClearHostObject(v8::Isolate* pIsolate) {
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ FXJSE_ClearObjectBinding(m_hValue.Get(pIsolate).As<v8::Object>());
+ v8::Local<v8::Value> hValue = v8::Null(pIsolate);
+ m_hValue.Reset(pIsolate, hValue);
}
void CFXJSE_Value::SetArray(
+ v8::Isolate* pIsolate,
const std::vector<std::unique_ptr<CFXJSE_Value>>& values) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Array> hArrayObject =
- v8::Array::New(GetIsolate(), values.size());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Array> hArrayObject = v8::Array::New(pIsolate, values.size());
uint32_t count = 0;
for (auto& v : values) {
if (v->IsEmpty())
- v->SetUndefined();
- fxv8::ReentrantPutArrayElementHelper(GetIsolate(), hArrayObject, count++,
- v->GetValue());
+ v->SetUndefined(pIsolate);
+ fxv8::ReentrantPutArrayElementHelper(pIsolate, hArrayObject, count++,
+ v->GetValue(pIsolate));
}
- m_hValue.Reset(GetIsolate(), hArrayObject);
+ m_hValue.Reset(pIsolate, hArrayObject);
}
-void CFXJSE_Value::SetFloat(float fFloat) {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(),
- fxv8::NewNumberHelper(GetIsolate(), ftod(fFloat)));
+void CFXJSE_Value::SetFloat(v8::Isolate* pIsolate, float fFloat) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, ftod(fFloat)));
}
-bool CFXJSE_Value::SetObjectProperty(ByteStringView szPropName,
+bool CFXJSE_Value::SetObjectProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
CFXJSE_Value* lpPropValue) {
if (lpPropValue->IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject = GetValue();
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = GetValue(pIsolate);
if (!hObject->IsObject())
return false;
return fxv8::ReentrantPutObjectPropertyHelper(
- GetIsolate(), hObject.As<v8::Object>(), szPropName,
- lpPropValue->GetValue());
+ pIsolate, hObject.As<v8::Object>(), szPropName,
+ lpPropValue->GetValue(pIsolate));
}
-bool CFXJSE_Value::GetObjectProperty(ByteStringView szPropName,
+bool CFXJSE_Value::GetObjectProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
CFXJSE_Value* lpPropValue) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject = GetValue();
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = GetValue(pIsolate);
if (!hObject->IsObject())
return false;
- lpPropValue->ForceSetValue(fxv8::ReentrantGetObjectPropertyHelper(
- GetIsolate(), hObject.As<v8::Object>(), szPropName));
+ lpPropValue->ForceSetValue(
+ pIsolate, fxv8::ReentrantGetObjectPropertyHelper(
+ pIsolate, hObject.As<v8::Object>(), szPropName));
return true;
}
-bool CFXJSE_Value::GetObjectPropertyByIdx(uint32_t uPropIdx,
+bool CFXJSE_Value::GetObjectPropertyByIdx(v8::Isolate* pIsolate,
+ uint32_t uPropIdx,
CFXJSE_Value* lpPropValue) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject = GetValue();
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = GetValue(pIsolate);
if (!hObject->IsArray())
return false;
- lpPropValue->ForceSetValue(fxv8::ReentrantGetArrayElementHelper(
- GetIsolate(), hObject.As<v8::Array>(), uPropIdx));
+ lpPropValue->ForceSetValue(pIsolate,
+ fxv8::ReentrantGetArrayElementHelper(
+ pIsolate, hObject.As<v8::Array>(), uPropIdx));
return true;
}
-bool CFXJSE_Value::DeleteObjectProperty(ByteStringView szPropName) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+bool CFXJSE_Value::DeleteObjectProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName) {
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hObject->IsObject() &&
hObject.As<v8::Object>()
- ->Delete(GetIsolate()->GetCurrentContext(),
- fxv8::NewStringHelper(GetIsolate(), szPropName))
+ ->Delete(pIsolate->GetCurrentContext(),
+ fxv8::NewStringHelper(pIsolate, szPropName))
.FromJust();
}
-bool CFXJSE_Value::HasObjectOwnProperty(ByteStringView szPropName,
+bool CFXJSE_Value::HasObjectOwnProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
bool bUseTypeGetter) {
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = v8::Local<v8::Value>::New(pIsolate, m_hValue);
if (!hObject->IsObject())
return false;
- v8::Local<v8::String> hKey = fxv8::NewStringHelper(GetIsolate(), szPropName);
+ v8::Local<v8::String> hKey = fxv8::NewStringHelper(pIsolate, szPropName);
return hObject.As<v8::Object>()
- ->HasRealNamedProperty(GetIsolate()->GetCurrentContext(), hKey)
+ ->HasRealNamedProperty(pIsolate->GetCurrentContext(), hKey)
.FromJust() ||
(bUseTypeGetter &&
hObject.As<v8::Object>()
- ->HasOwnProperty(GetIsolate()->GetCurrentContext(), hKey)
+ ->HasOwnProperty(pIsolate->GetCurrentContext(), hKey)
.FromMaybe(false));
}
-bool CFXJSE_Value::SetObjectOwnProperty(ByteStringView szPropName,
+bool CFXJSE_Value::SetObjectOwnProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
CFXJSE_Value* lpPropValue) {
ASSERT(lpPropValue);
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
- v8::Local<v8::Value> hObject =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
+ v8::Local<v8::Value> hObject = v8::Local<v8::Value>::New(pIsolate, m_hValue);
if (!hObject->IsObject())
return false;
- v8::Local<v8::String> hPropName =
- fxv8::NewStringHelper(GetIsolate(), szPropName);
+ v8::Local<v8::String> hPropName = fxv8::NewStringHelper(pIsolate, szPropName);
v8::Local<v8::Value> pValue =
- v8::Local<v8::Value>::New(GetIsolate(), lpPropValue->m_hValue);
+ v8::Local<v8::Value>::New(pIsolate, lpPropValue->m_hValue);
return hObject.As<v8::Object>()
- ->DefineOwnProperty(GetIsolate()->GetCurrentContext(), hPropName, pValue)
+ ->DefineOwnProperty(pIsolate->GetCurrentContext(), hPropName, pValue)
.FromMaybe(false);
}
-bool CFXJSE_Value::SetFunctionBind(CFXJSE_Value* lpOldFunction,
+bool CFXJSE_Value::SetFunctionBind(v8::Isolate* pIsolate,
+ CFXJSE_Value* lpOldFunction,
CFXJSE_Value* lpNewThis) {
ASSERT(lpOldFunction);
ASSERT(lpNewThis);
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
v8::Local<v8::Value> rgArgs[2];
v8::Local<v8::Value> hOldFunction =
- v8::Local<v8::Value>::New(GetIsolate(), lpOldFunction->DirectGetValue());
+ v8::Local<v8::Value>::New(pIsolate, lpOldFunction->DirectGetValue());
if (!fxv8::IsFunction(hOldFunction))
return false;
rgArgs[0] = hOldFunction;
v8::Local<v8::Value> hNewThis =
- v8::Local<v8::Value>::New(GetIsolate(), lpNewThis->DirectGetValue());
+ v8::Local<v8::Value>::New(pIsolate, lpNewThis->DirectGetValue());
if (hNewThis.IsEmpty())
return false;
rgArgs[1] = hNewThis;
v8::Local<v8::String> hBinderFuncSource =
- fxv8::NewStringHelper(GetIsolate(),
+ fxv8::NewStringHelper(pIsolate,
"(function (oldfunction, newthis) { return "
"oldfunction.bind(newthis); })");
- v8::Local<v8::Context> hContext = GetIsolate()->GetCurrentContext();
+ v8::Local<v8::Context> hContext = pIsolate->GetCurrentContext();
v8::Local<v8::Function> hBinderFunc =
v8::Script::Compile(hContext, hBinderFuncSource)
.ToLocalChecked()
@@ -238,166 +241,157 @@
if (!fxv8::IsFunction(hBoundFunction))
return false;
- m_hValue.Reset(GetIsolate(), hBoundFunction);
+ m_hValue.Reset(pIsolate, hBoundFunction);
return true;
}
-v8::Local<v8::Value> CFXJSE_Value::GetValue() const {
- return v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+v8::Local<v8::Value> CFXJSE_Value::GetValue(v8::Isolate* pIsolate) const {
+ return v8::Local<v8::Value>::New(pIsolate, m_hValue);
}
bool CFXJSE_Value::IsEmpty() const {
return m_hValue.IsEmpty();
}
-bool CFXJSE_Value::IsUndefined() const {
+bool CFXJSE_Value::IsUndefined(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsUndefined();
}
-bool CFXJSE_Value::IsNull() const {
+bool CFXJSE_Value::IsNull(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsNull();
}
-bool CFXJSE_Value::IsBoolean() const {
+bool CFXJSE_Value::IsBoolean(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsBoolean();
}
-bool CFXJSE_Value::IsString() const {
+bool CFXJSE_Value::IsString(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsString();
}
-bool CFXJSE_Value::IsNumber() const {
+bool CFXJSE_Value::IsNumber(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsNumber();
}
-bool CFXJSE_Value::IsInteger() const {
+bool CFXJSE_Value::IsInteger(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsInt32();
}
-bool CFXJSE_Value::IsObject() const {
+bool CFXJSE_Value::IsObject(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsObject();
}
-bool CFXJSE_Value::IsArray() const {
+bool CFXJSE_Value::IsArray(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsArray();
}
-bool CFXJSE_Value::IsFunction() const {
+bool CFXJSE_Value::IsFunction(v8::Isolate* pIsolate) const {
if (IsEmpty())
return false;
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- v8::Local<v8::Value> hValue =
- v8::Local<v8::Value>::New(GetIsolate(), m_hValue);
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(pIsolate, m_hValue);
return hValue->IsFunction();
}
-bool CFXJSE_Value::ToBoolean() const {
+bool CFXJSE_Value::ToBoolean(v8::Isolate* pIsolate) const {
ASSERT(!IsEmpty());
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
return fxv8::ReentrantToBooleanHelper(
- GetIsolate(), v8::Local<v8::Value>::New(GetIsolate(), m_hValue));
+ pIsolate, v8::Local<v8::Value>::New(pIsolate, m_hValue));
}
-float CFXJSE_Value::ToFloat() const {
- return static_cast<float>(ToDouble());
+float CFXJSE_Value::ToFloat(v8::Isolate* pIsolate) const {
+ return static_cast<float>(ToDouble(pIsolate));
}
-double CFXJSE_Value::ToDouble() const {
+double CFXJSE_Value::ToDouble(v8::Isolate* pIsolate) const {
ASSERT(!IsEmpty());
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
return fxv8::ReentrantToDoubleHelper(
- GetIsolate(), v8::Local<v8::Value>::New(GetIsolate(), m_hValue));
+ pIsolate, v8::Local<v8::Value>::New(pIsolate, m_hValue));
}
-int32_t CFXJSE_Value::ToInteger() const {
+int32_t CFXJSE_Value::ToInteger(v8::Isolate* pIsolate) const {
ASSERT(!IsEmpty());
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
return fxv8::ReentrantToInt32Helper(
- GetIsolate(), v8::Local<v8::Value>::New(GetIsolate(), m_hValue));
+ pIsolate, v8::Local<v8::Value>::New(pIsolate, m_hValue));
}
-ByteString CFXJSE_Value::ToString() const {
+ByteString CFXJSE_Value::ToString(v8::Isolate* pIsolate) const {
ASSERT(!IsEmpty());
- CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
+ CFXJSE_ScopeUtil_IsolateHandleRootContext scope(pIsolate);
return fxv8::ReentrantToByteStringHelper(
- GetIsolate(), v8::Local<v8::Value>::New(GetIsolate(), m_hValue));
+ pIsolate, v8::Local<v8::Value>::New(pIsolate, m_hValue));
}
-void CFXJSE_Value::SetUndefined() {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewUndefinedHelper(GetIsolate()));
+void CFXJSE_Value::SetUndefined(v8::Isolate* pIsolate) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewUndefinedHelper(pIsolate));
}
-void CFXJSE_Value::SetNull() {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewNullHelper(GetIsolate()));
+void CFXJSE_Value::SetNull(v8::Isolate* pIsolate) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewNullHelper(pIsolate));
}
-void CFXJSE_Value::SetBoolean(bool bBoolean) {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewBooleanHelper(GetIsolate(), bBoolean));
+void CFXJSE_Value::SetBoolean(v8::Isolate* pIsolate, bool bBoolean) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewBooleanHelper(pIsolate, bBoolean));
}
-void CFXJSE_Value::SetInteger(int32_t nInteger) {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewNumberHelper(GetIsolate(), nInteger));
+void CFXJSE_Value::SetInteger(v8::Isolate* pIsolate, int32_t nInteger) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, nInteger));
}
-void CFXJSE_Value::SetDouble(double dDouble) {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewNumberHelper(GetIsolate(), dDouble));
+void CFXJSE_Value::SetDouble(v8::Isolate* pIsolate, double dDouble) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewNumberHelper(pIsolate, dDouble));
}
-void CFXJSE_Value::SetString(ByteStringView szString) {
- CFXJSE_ScopeUtil_IsolateHandle scope(GetIsolate());
- m_hValue.Reset(GetIsolate(), fxv8::NewStringHelper(GetIsolate(), szString));
+void CFXJSE_Value::SetString(v8::Isolate* pIsolate, ByteStringView szString) {
+ CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
+ m_hValue.Reset(pIsolate, fxv8::NewStringHelper(pIsolate, szString));
}
diff --git a/fxjs/xfa/cfxjse_value.h b/fxjs/xfa/cfxjse_value.h
index a588633..9d07ad0 100644
--- a/fxjs/xfa/cfxjse_value.h
+++ b/fxjs/xfa/cfxjse_value.h
@@ -25,56 +25,70 @@
~CFXJSE_Value();
bool IsEmpty() const;
- bool IsUndefined() const;
- bool IsNull() const;
- bool IsBoolean() const;
- bool IsString() const;
- bool IsNumber() const;
- bool IsInteger() const;
- bool IsObject() const;
- bool IsArray() const;
- bool IsFunction() const;
- bool ToBoolean() const;
- float ToFloat() const;
- double ToDouble() const;
- int32_t ToInteger() const;
- ByteString ToString() const;
- WideString ToWideString() const {
- return WideString::FromUTF8(ToString().AsStringView());
+ bool IsUndefined(v8::Isolate* pIsolate) const;
+ bool IsNull(v8::Isolate* pIsolate) const;
+ bool IsBoolean(v8::Isolate* pIsolate) const;
+ bool IsString(v8::Isolate* pIsolate) const;
+ bool IsNumber(v8::Isolate* pIsolate) const;
+ bool IsInteger(v8::Isolate* pIsolate) const;
+ bool IsObject(v8::Isolate* pIsolate) const;
+ bool IsArray(v8::Isolate* pIsolate) const;
+ bool IsFunction(v8::Isolate* pIsolate) const;
+ bool ToBoolean(v8::Isolate* pIsolate) const;
+ float ToFloat(v8::Isolate* pIsolate) const;
+ double ToDouble(v8::Isolate* pIsolate) const;
+ int32_t ToInteger(v8::Isolate* pIsolate) const;
+ ByteString ToString(v8::Isolate* pIsolate) const;
+ WideString ToWideString(v8::Isolate* pIsolate) const {
+ return WideString::FromUTF8(ToString(pIsolate).AsStringView());
}
- CFXJSE_HostObject* ToHostObject() const;
+ CFXJSE_HostObject* ToHostObject(v8::Isolate* pIsolate) const;
- void SetUndefined();
- void SetNull();
- void SetBoolean(bool bBoolean);
- void SetInteger(int32_t nInteger);
- void SetDouble(double dDouble);
- void SetString(ByteStringView szString);
- void SetFloat(float fFloat);
+ void SetUndefined(v8::Isolate* pIsolate);
+ void SetNull(v8::Isolate* pIsolate);
+ void SetBoolean(v8::Isolate* pIsolate, bool bBoolean);
+ void SetInteger(v8::Isolate* pIsolate, int32_t nInteger);
+ void SetDouble(v8::Isolate* pIsolate, double dDouble);
+ void SetString(v8::Isolate* pIsolate, ByteStringView szString);
+ void SetFloat(v8::Isolate* pIsolate, float fFloat);
- void SetHostObject(CFXJSE_HostObject* pObject, CFXJSE_Class* pClass);
- void ClearHostObject();
+ void SetHostObject(v8::Isolate* pIsolate,
+ CFXJSE_HostObject* lpObject,
+ CFXJSE_Class* pClass);
+ void ClearHostObject(v8::Isolate* pIsolate);
- void SetArray(const std::vector<std::unique_ptr<CFXJSE_Value>>& values);
+ void SetArray(v8::Isolate* pIsolate,
+ const std::vector<std::unique_ptr<CFXJSE_Value>>& values);
- bool GetObjectProperty(ByteStringView szPropName, CFXJSE_Value* lpPropValue);
- bool SetObjectProperty(ByteStringView szPropName, CFXJSE_Value* lpPropValue);
- bool GetObjectPropertyByIdx(uint32_t uPropIdx, CFXJSE_Value* lpPropValue);
- bool DeleteObjectProperty(ByteStringView szPropName);
- bool HasObjectOwnProperty(ByteStringView szPropName, bool bUseTypeGetter);
- bool SetObjectOwnProperty(ByteStringView szPropName,
+ bool GetObjectProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
+ CFXJSE_Value* lpPropValue);
+ bool SetObjectProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
+ CFXJSE_Value* lpPropValue);
+ bool GetObjectPropertyByIdx(v8::Isolate* pIsolate,
+ uint32_t uPropIdx,
+ CFXJSE_Value* lpPropValue);
+ bool DeleteObjectProperty(v8::Isolate* pIsolate, ByteStringView szPropName);
+ bool HasObjectOwnProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
+ bool bUseTypeGetter);
+ bool SetObjectOwnProperty(v8::Isolate* pIsolate,
+ ByteStringView szPropName,
CFXJSE_Value* lpPropValue);
- bool SetFunctionBind(CFXJSE_Value* lpOldFunction, CFXJSE_Value* lpNewThis);
+ bool SetFunctionBind(v8::Isolate* pIsolate,
+ CFXJSE_Value* lpOldFunction,
+ CFXJSE_Value* lpNewThis);
- v8::Local<v8::Value> GetValue() const;
+ v8::Local<v8::Value> GetValue(v8::Isolate* pIsolate) const;
const v8::Global<v8::Value>& DirectGetValue() const { return m_hValue; }
- void ForceSetValue(v8::Local<v8::Value> hValue) {
- m_hValue.Reset(GetIsolate(), hValue);
+ void ForceSetValue(v8::Isolate* pIsolate, v8::Local<v8::Value> hValue) {
+ m_hValue.Reset(pIsolate, hValue);
}
- void Assign(const CFXJSE_Value* lpValue) {
+ void Assign(v8::Isolate* pIsolate, const CFXJSE_Value* lpValue) {
ASSERT(lpValue);
if (lpValue) {
- m_hValue.Reset(GetIsolate(), lpValue->m_hValue);
+ m_hValue.Reset(pIsolate, lpValue->m_hValue);
} else {
m_hValue.Reset();
}
@@ -85,9 +99,6 @@
CFXJSE_Value(const CFXJSE_Value&) = delete;
CFXJSE_Value& operator=(const CFXJSE_Value&) = delete;
- v8::Isolate* GetIsolate() const { return m_pIsolate.Get(); }
-
- UnownedPtr<v8::Isolate> const m_pIsolate;
v8::Global<v8::Value> m_hValue;
};
diff --git a/fxjs/xfa/cfxjse_value_embeddertest.cpp b/fxjs/xfa/cfxjse_value_embeddertest.cpp
index 4223e5d..42617d5 100644
--- a/fxjs/xfa/cfxjse_value_embeddertest.cpp
+++ b/fxjs/xfa/cfxjse_value_embeddertest.cpp
@@ -19,14 +19,14 @@
auto pValue = std::make_unique<CFXJSE_Value>(isolate());
EXPECT_TRUE(pValue->IsEmpty());
- EXPECT_FALSE(pValue->IsUndefined());
- EXPECT_FALSE(pValue->IsNull());
- EXPECT_FALSE(pValue->IsBoolean());
- EXPECT_FALSE(pValue->IsString());
- EXPECT_FALSE(pValue->IsNumber());
- EXPECT_FALSE(pValue->IsObject());
- EXPECT_FALSE(pValue->IsArray());
- EXPECT_FALSE(pValue->IsFunction());
+ EXPECT_FALSE(pValue->IsUndefined(isolate()));
+ EXPECT_FALSE(pValue->IsNull(isolate()));
+ EXPECT_FALSE(pValue->IsBoolean(isolate()));
+ EXPECT_FALSE(pValue->IsString(isolate()));
+ EXPECT_FALSE(pValue->IsNumber(isolate()));
+ EXPECT_FALSE(pValue->IsObject(isolate()));
+ EXPECT_FALSE(pValue->IsArray(isolate()));
+ EXPECT_FALSE(pValue->IsFunction(isolate()));
}
TEST_F(CFXJSE_ValueEmbedderTest, EmptyArrayInsert) {
@@ -38,6 +38,6 @@
vec.push_back(std::move(pValue));
CFXJSE_Value array(isolate());
- array.SetArray(vec);
- EXPECT_TRUE(array.IsArray());
+ array.SetArray(isolate(), vec);
+ EXPECT_TRUE(array.IsArray(isolate()));
}
diff --git a/fxjs/xfa/cjx_boolean.cpp b/fxjs/xfa/cjx_boolean.cpp
index 5c3f183..75797d8 100644
--- a/fxjs/xfa/cjx_boolean.cpp
+++ b/fxjs/xfa/cjx_boolean.cpp
@@ -17,17 +17,18 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Boolean::defaultValue(CFXJSE_Value* pValue,
+void CJX_Boolean::defaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!bSetting) {
- pValue->SetBoolean(GetContent(true).EqualsASCII("1"));
+ pValue->SetBoolean(pIsolate, GetContent(true).EqualsASCII("1"));
return;
}
ByteString newValue;
- if (pValue && !(pValue->IsNull() || pValue->IsUndefined()))
- newValue = pValue->ToString();
+ if (pValue && !(pValue->IsNull(pIsolate) || pValue->IsUndefined(pIsolate)))
+ newValue = pValue->ToString(pIsolate);
int32_t iValue = FXSYS_atoi(newValue.c_str());
WideString wsNewValue(iValue == 0 ? L"0" : L"1");
@@ -39,8 +40,9 @@
SetContent(wsNewValue, wsFormatValue, true, true, true);
}
-void CJX_Boolean::value(CFXJSE_Value* pValue,
+void CJX_Boolean::value(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- defaultValue(pValue, bSetting, eAttribute);
+ defaultValue(pIsolate, pValue, bSetting, eAttribute);
}
diff --git a/fxjs/xfa/cjx_datawindow.cpp b/fxjs/xfa/cjx_datawindow.cpp
index 9a189ec..7e9ab42 100644
--- a/fxjs/xfa/cjx_datawindow.cpp
+++ b/fxjs/xfa/cjx_datawindow.cpp
@@ -52,18 +52,22 @@
return CJS_Result::Success();
}
-void CJX_DataWindow::recordsBefore(CFXJSE_Value* pValue,
+void CJX_DataWindow::recordsBefore(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::currentRecordNumber(CFXJSE_Value* pValue,
+void CJX_DataWindow::currentRecordNumber(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::recordsAfter(CFXJSE_Value* pValue,
+void CJX_DataWindow::recordsAfter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::isDefined(CFXJSE_Value* pValue,
+void CJX_DataWindow::isDefined(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_delta.cpp b/fxjs/xfa/cjx_delta.cpp
index 9d17eaa..ede7e71 100644
--- a/fxjs/xfa/cjx_delta.cpp
+++ b/fxjs/xfa/cjx_delta.cpp
@@ -32,14 +32,17 @@
return CJS_Result::Success();
}
-void CJX_Delta::currentValue(CFXJSE_Value* pValue,
+void CJX_Delta::currentValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_Delta::savedValue(CFXJSE_Value* pValue,
+void CJX_Delta::savedValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_Delta::target(CFXJSE_Value* pValue,
+void CJX_Delta::target(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_draw.cpp b/fxjs/xfa/cjx_draw.cpp
index 4e8ddc1..5705ecc 100644
--- a/fxjs/xfa/cjx_draw.cpp
+++ b/fxjs/xfa/cjx_draw.cpp
@@ -17,32 +17,33 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Draw::rawValue(CFXJSE_Value* pValue,
+void CJX_Draw::rawValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- defaultValue(pValue, bSetting, eAttribute);
+ defaultValue(pIsolate, pValue, bSetting, eAttribute);
}
-void CJX_Draw::defaultValue(CFXJSE_Value* pValue,
+void CJX_Draw::defaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!bSetting) {
WideString content = GetContent(true);
if (content.IsEmpty())
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
else
- pValue->SetString(content.ToUTF8().AsStringView());
-
+ pValue->SetString(pIsolate, content.ToUTF8().AsStringView());
return;
}
- if (!pValue || !pValue->IsString())
+ if (!pValue || !pValue->IsString(pIsolate))
return;
ASSERT(GetXFANode()->IsWidgetReady());
if (GetXFANode()->GetFFWidgetType() != XFA_FFWidgetType::kText)
return;
- WideString wsNewValue = pValue->ToWideString();
+ WideString wsNewValue = pValue->ToWideString(pIsolate);
SetContent(wsNewValue, wsNewValue, true, true, true);
}
diff --git a/fxjs/xfa/cjx_encrypt.cpp b/fxjs/xfa/cjx_encrypt.cpp
index f50133d..8fa8f9f 100644
--- a/fxjs/xfa/cjx_encrypt.cpp
+++ b/fxjs/xfa/cjx_encrypt.cpp
@@ -16,6 +16,7 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Encrypt::format(CFXJSE_Value* pValue,
+void CJX_Encrypt::format(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index f7d757a..37b01a2 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -19,28 +19,37 @@
namespace {
-void StringProperty(CFXJSE_Value* pReturn, WideString* wsValue, bool bSetting) {
+void StringProperty(v8::Isolate* pIsolate,
+ CFXJSE_Value* pReturn,
+ WideString* wsValue,
+ bool bSetting) {
if (bSetting) {
- *wsValue = pReturn->ToWideString();
+ *wsValue = pReturn->ToWideString(pIsolate);
return;
}
- pReturn->SetString(wsValue->ToUTF8().AsStringView());
+ pReturn->SetString(pIsolate, wsValue->ToUTF8().AsStringView());
}
-void IntegerProperty(CFXJSE_Value* pReturn, int32_t* iValue, bool bSetting) {
+void IntegerProperty(v8::Isolate* pIsolate,
+ CFXJSE_Value* pReturn,
+ int32_t* iValue,
+ bool bSetting) {
if (bSetting) {
- *iValue = pReturn->ToInteger();
+ *iValue = pReturn->ToInteger(pIsolate);
return;
}
- pReturn->SetInteger(*iValue);
+ pReturn->SetInteger(pIsolate, *iValue);
}
-void BooleanProperty(CFXJSE_Value* pReturn, bool* bValue, bool bSetting) {
+void BooleanProperty(v8::Isolate* pIsolate,
+ CFXJSE_Value* pReturn,
+ bool* bValue,
+ bool bSetting) {
if (bSetting) {
- *bValue = pReturn->ToBoolean();
+ *bValue = pReturn->ToBoolean(pIsolate);
return;
}
- pReturn->SetBoolean(*bValue);
+ pReturn->SetBoolean(pIsolate, *bValue);
}
} // namespace
@@ -60,49 +69,57 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_EventPseudoModel::cancelAction(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::cancelAction(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::CancelAction, bSetting);
+ Property(pIsolate, pValue, XFA_Event::CancelAction, bSetting);
}
-void CJX_EventPseudoModel::change(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::change(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Change, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Change, bSetting);
}
-void CJX_EventPseudoModel::commitKey(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::commitKey(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::CommitKey, bSetting);
+ Property(pIsolate, pValue, XFA_Event::CommitKey, bSetting);
}
-void CJX_EventPseudoModel::fullText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::fullText(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::FullText, bSetting);
+ Property(pIsolate, pValue, XFA_Event::FullText, bSetting);
}
-void CJX_EventPseudoModel::keyDown(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::keyDown(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Keydown, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Keydown, bSetting);
}
-void CJX_EventPseudoModel::modifier(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::modifier(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Modifier, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Modifier, bSetting);
}
-void CJX_EventPseudoModel::newContentType(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::newContentType(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::NewContentType, bSetting);
+ Property(pIsolate, pValue, XFA_Event::NewContentType, bSetting);
}
-void CJX_EventPseudoModel::newText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::newText(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting)
@@ -113,61 +130,71 @@
if (!pEventParam)
return;
- pValue->SetString(pEventParam->GetNewText().ToUTF8().AsStringView());
+ pValue->SetString(pIsolate,
+ pEventParam->GetNewText().ToUTF8().AsStringView());
}
-void CJX_EventPseudoModel::prevContentType(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::prevContentType(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::PreviousContentType, bSetting);
+ Property(pIsolate, pValue, XFA_Event::PreviousContentType, bSetting);
}
-void CJX_EventPseudoModel::prevText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::prevText(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::PreviousText, bSetting);
+ Property(pIsolate, pValue, XFA_Event::PreviousText, bSetting);
}
-void CJX_EventPseudoModel::reenter(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::reenter(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Reenter, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Reenter, bSetting);
}
-void CJX_EventPseudoModel::selEnd(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::selEnd(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::SelectionEnd, bSetting);
+ Property(pIsolate, pValue, XFA_Event::SelectionEnd, bSetting);
}
-void CJX_EventPseudoModel::selStart(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::selStart(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::SelectionStart, bSetting);
+ Property(pIsolate, pValue, XFA_Event::SelectionStart, bSetting);
}
-void CJX_EventPseudoModel::shift(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::shift(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Shift, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Shift, bSetting);
}
-void CJX_EventPseudoModel::soapFaultCode(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::soapFaultCode(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::SoapFaultCode, bSetting);
+ Property(pIsolate, pValue, XFA_Event::SoapFaultCode, bSetting);
}
-void CJX_EventPseudoModel::soapFaultString(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::soapFaultString(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::SoapFaultString, bSetting);
+ Property(pIsolate, pValue, XFA_Event::SoapFaultString, bSetting);
}
-void CJX_EventPseudoModel::target(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::target(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- Property(pValue, XFA_Event::Target, bSetting);
+ Property(pIsolate, pValue, XFA_Event::Target, bSetting);
}
CJS_Result CJX_EventPseudoModel::emit(
@@ -201,7 +228,8 @@
return CJS_Result::Success();
}
-void CJX_EventPseudoModel::Property(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::Property(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
XFA_Event dwFlag,
bool bSetting) {
// Only the cancelAction, selStart, selEnd and change properties are writable.
@@ -218,40 +246,43 @@
switch (dwFlag) {
case XFA_Event::CancelAction:
- BooleanProperty(pValue, &pEventParam->m_bCancelAction, bSetting);
+ BooleanProperty(pIsolate, pValue, &pEventParam->m_bCancelAction,
+ bSetting);
break;
case XFA_Event::Change:
- StringProperty(pValue, &pEventParam->m_wsChange, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsChange, bSetting);
break;
case XFA_Event::CommitKey:
- IntegerProperty(pValue, &pEventParam->m_iCommitKey, bSetting);
+ IntegerProperty(pIsolate, pValue, &pEventParam->m_iCommitKey, bSetting);
break;
case XFA_Event::FullText:
- StringProperty(pValue, &pEventParam->m_wsFullText, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsFullText, bSetting);
break;
case XFA_Event::Keydown:
- BooleanProperty(pValue, &pEventParam->m_bKeyDown, bSetting);
+ BooleanProperty(pIsolate, pValue, &pEventParam->m_bKeyDown, bSetting);
break;
case XFA_Event::Modifier:
- BooleanProperty(pValue, &pEventParam->m_bModifier, bSetting);
+ BooleanProperty(pIsolate, pValue, &pEventParam->m_bModifier, bSetting);
break;
case XFA_Event::NewContentType:
- StringProperty(pValue, &pEventParam->m_wsNewContentType, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsNewContentType,
+ bSetting);
break;
case XFA_Event::NewText:
NOTREACHED();
break;
case XFA_Event::PreviousContentType:
- StringProperty(pValue, &pEventParam->m_wsPrevContentType, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsPrevContentType,
+ bSetting);
break;
case XFA_Event::PreviousText:
- StringProperty(pValue, &pEventParam->m_wsPrevText, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsPrevText, bSetting);
break;
case XFA_Event::Reenter:
- BooleanProperty(pValue, &pEventParam->m_bReenter, bSetting);
+ BooleanProperty(pIsolate, pValue, &pEventParam->m_bReenter, bSetting);
break;
case XFA_Event::SelectionEnd:
- IntegerProperty(pValue, &pEventParam->m_iSelEnd, bSetting);
+ IntegerProperty(pIsolate, pValue, &pEventParam->m_iSelEnd, bSetting);
pEventParam->m_iSelEnd = std::max(0, pEventParam->m_iSelEnd);
pEventParam->m_iSelEnd =
@@ -261,7 +292,7 @@
std::min(pEventParam->m_iSelStart, pEventParam->m_iSelEnd);
break;
case XFA_Event::SelectionStart:
- IntegerProperty(pValue, &pEventParam->m_iSelStart, bSetting);
+ IntegerProperty(pIsolate, pValue, &pEventParam->m_iSelStart, bSetting);
pEventParam->m_iSelStart = std::max(0, pEventParam->m_iSelStart);
pEventParam->m_iSelStart =
std::min(static_cast<size_t>(pEventParam->m_iSelStart),
@@ -270,13 +301,15 @@
std::max(pEventParam->m_iSelStart, pEventParam->m_iSelEnd);
break;
case XFA_Event::Shift:
- BooleanProperty(pValue, &pEventParam->m_bShift, bSetting);
+ BooleanProperty(pIsolate, pValue, &pEventParam->m_bShift, bSetting);
break;
case XFA_Event::SoapFaultCode:
- StringProperty(pValue, &pEventParam->m_wsSoapFaultCode, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsSoapFaultCode,
+ bSetting);
break;
case XFA_Event::SoapFaultString:
- StringProperty(pValue, &pEventParam->m_wsSoapFaultString, bSetting);
+ StringProperty(pIsolate, pValue, &pEventParam->m_wsSoapFaultString,
+ bSetting);
break;
case XFA_Event::Target:
default:
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index a4e741f..e4a698b 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -71,7 +71,10 @@
static const TypeTag static_type__ = TypeTag::EventPseudoModel;
static const CJX_MethodSpec MethodSpecs[];
- void Property(CFXJSE_Value* pValue, XFA_Event dwFlag, bool bSetting);
+ void Property(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
+ XFA_Event dwFlag,
+ bool bSetting);
};
#endif // FXJS_XFA_CJX_EVENTPSEUDOMODEL_H_
diff --git a/fxjs/xfa/cjx_exclgroup.cpp b/fxjs/xfa/cjx_exclgroup.cpp
index 7f17bc8..74807ee 100644
--- a/fxjs/xfa/cjx_exclgroup.cpp
+++ b/fxjs/xfa/cjx_exclgroup.cpp
@@ -115,7 +115,8 @@
value->DirectGetValue().Get(runtime->GetIsolate()));
}
-void CJX_ExclGroup::defaultValue(CFXJSE_Value* pValue,
+void CJX_ExclGroup::defaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Node* node = GetXFANode();
@@ -123,31 +124,34 @@
return;
if (bSetting) {
- node->SetSelectedMemberByValue(pValue->ToWideString().AsStringView(), true,
- true, true);
+ node->SetSelectedMemberByValue(
+ pValue->ToWideString(pIsolate).AsStringView(), true, true, true);
return;
}
WideString wsValue = GetContent(true);
XFA_VERSION curVersion = GetDocument()->GetCurVersionMode();
if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
- pValue->SetString(wsValue.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsValue.ToUTF8().AsStringView());
}
-void CJX_ExclGroup::rawValue(CFXJSE_Value* pValue,
+void CJX_ExclGroup::rawValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- defaultValue(pValue, bSetting, eAttribute);
+ defaultValue(pIsolate, pValue, bSetting, eAttribute);
}
-void CJX_ExclGroup::transient(CFXJSE_Value* pValue,
+void CJX_ExclGroup::transient(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_ExclGroup::errorText(CFXJSE_Value* pValue,
+void CJX_ExclGroup::errorText(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting)
diff --git a/fxjs/xfa/cjx_extras.cpp b/fxjs/xfa/cjx_extras.cpp
index a2e2eea..def230c 100644
--- a/fxjs/xfa/cjx_extras.cpp
+++ b/fxjs/xfa/cjx_extras.cpp
@@ -16,6 +16,7 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Extras::type(CFXJSE_Value* pValue,
+void CJX_Extras::type(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_field.cpp b/fxjs/xfa/cjx_field.cpp
index 4e7bc44..60f534e 100644
--- a/fxjs/xfa/cjx_field.cpp
+++ b/fxjs/xfa/cjx_field.cpp
@@ -242,7 +242,8 @@
runtime->NewBoolean(iRet != XFA_EventError::kError));
}
-void CJX_Field::defaultValue(CFXJSE_Value* pValue,
+void CJX_Field::defaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Node* xfaNode = GetXFANode();
@@ -252,12 +253,12 @@
if (bSetting) {
if (pValue) {
xfaNode->SetPreNull(xfaNode->IsNull());
- xfaNode->SetIsNull(pValue->IsNull());
+ xfaNode->SetIsNull(pValue->IsNull(pIsolate));
}
WideString wsNewText;
- if (pValue && !(pValue->IsNull() || pValue->IsUndefined()))
- wsNewText = pValue->ToWideString();
+ if (pValue && !(pValue->IsNull(pIsolate) || pValue->IsUndefined(pIsolate)))
+ wsNewText = pValue->ToWideString(pIsolate);
if (xfaNode->GetUIChildNode()->GetElementType() == XFA_Element::NumericEdit)
wsNewText = xfaNode->NumericLimit(wsNewText);
@@ -272,7 +273,7 @@
WideString content = GetContent(true);
if (content.IsEmpty()) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
@@ -282,24 +283,25 @@
if (xfaNode->GetUIChildNode()->GetElementType() ==
XFA_Element::NumericEdit &&
(pNode->JSObject()->GetInteger(XFA_Attribute::FracDigits) == -1)) {
- pValue->SetString(content.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, content.ToUTF8().AsStringView());
} else {
CFGAS_Decimal decimal(content.AsStringView());
- pValue->SetFloat(decimal.ToFloat());
+ pValue->SetFloat(pIsolate, decimal.ToFloat());
}
} else if (pNode && pNode->GetElementType() == XFA_Element::Integer) {
- pValue->SetInteger(FXSYS_wtoi(content.c_str()));
+ pValue->SetInteger(pIsolate, FXSYS_wtoi(content.c_str()));
} else if (pNode && pNode->GetElementType() == XFA_Element::Boolean) {
- pValue->SetBoolean(FXSYS_wtoi(content.c_str()) != 0);
+ pValue->SetBoolean(pIsolate, FXSYS_wtoi(content.c_str()) != 0);
} else if (pNode && pNode->GetElementType() == XFA_Element::Float) {
CFGAS_Decimal decimal(content.AsStringView());
- pValue->SetFloat(decimal.ToFloat());
+ pValue->SetFloat(pIsolate, decimal.ToFloat());
} else {
- pValue->SetString(content.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, content.ToUTF8().AsStringView());
}
}
-void CJX_Field::editValue(CFXJSE_Value* pValue,
+void CJX_Field::editValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Node* node = GetXFANode();
@@ -307,20 +309,22 @@
return;
if (bSetting) {
- node->SetValue(XFA_VALUEPICTURE_Edit, pValue->ToWideString());
+ node->SetValue(XFA_VALUEPICTURE_Edit, pValue->ToWideString(pIsolate));
return;
}
pValue->SetString(
- node->GetValue(XFA_VALUEPICTURE_Edit).ToUTF8().AsStringView());
+ pIsolate, node->GetValue(XFA_VALUEPICTURE_Edit).ToUTF8().AsStringView());
}
-void CJX_Field::formatMessage(CFXJSE_Value* pValue,
+void CJX_Field::formatMessage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- ScriptSomMessage(pValue, bSetting, XFA_SOM_FormatMessage);
+ ScriptSomMessage(pIsolate, pValue, bSetting, XFA_SOM_FormatMessage);
}
-void CJX_Field::formattedValue(CFXJSE_Value* pValue,
+void CJX_Field::formattedValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Node* node = GetXFANode();
@@ -328,14 +332,16 @@
return;
if (bSetting) {
- node->SetValue(XFA_VALUEPICTURE_Display, pValue->ToWideString());
+ node->SetValue(XFA_VALUEPICTURE_Display, pValue->ToWideString(pIsolate));
return;
}
pValue->SetString(
+ pIsolate,
node->GetValue(XFA_VALUEPICTURE_Display).ToUTF8().AsStringView());
}
-void CJX_Field::length(CFXJSE_Value* pValue,
+void CJX_Field::length(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -345,23 +351,25 @@
CXFA_Node* node = GetXFANode();
if (!node->IsWidgetReady()) {
- pValue->SetInteger(0);
+ pValue->SetInteger(pIsolate, 0);
return;
}
- pValue->SetInteger(node->CountChoiceListItems(true));
+ pValue->SetInteger(pIsolate, node->CountChoiceListItems(true));
}
-void CJX_Field::parentSubform(CFXJSE_Value* pValue,
+void CJX_Field::parentSubform(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
}
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
}
-void CJX_Field::selectedIndex(CFXJSE_Value* pValue,
+void CJX_Field::selectedIndex(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Node* node = GetXFANode();
@@ -369,11 +377,11 @@
return;
if (!bSetting) {
- pValue->SetInteger(node->GetSelectedItem(0));
+ pValue->SetInteger(pIsolate, node->GetSelectedItem(0));
return;
}
- int32_t iIndex = pValue->ToInteger();
+ int32_t iIndex = pValue->ToInteger(pIsolate);
if (iIndex == -1) {
node->ClearAllSelections();
return;
@@ -382,8 +390,9 @@
node->SetItemState(iIndex, true, true, true, true);
}
-void CJX_Field::rawValue(CFXJSE_Value* pValue,
+void CJX_Field::rawValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- defaultValue(pValue, bSetting, eAttribute);
+ defaultValue(pIsolate, pValue, bSetting, eAttribute);
}
diff --git a/fxjs/xfa/cjx_form.cpp b/fxjs/xfa/cjx_form.cpp
index 6cb6c6b..d398437 100644
--- a/fxjs/xfa/cjx_form.cpp
+++ b/fxjs/xfa/cjx_form.cpp
@@ -130,14 +130,17 @@
runtime->NewBoolean(iRet != XFA_EventError::kError));
}
-void CJX_Form::checksumS(CFXJSE_Value* pValue,
+void CJX_Form::checksumS(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
- SetAttributeByEnum(XFA_Attribute::Checksum, pValue->ToWideString(), false);
+ SetAttributeByEnum(XFA_Attribute::Checksum, pValue->ToWideString(pIsolate),
+ false);
return;
}
Optional<WideString> checksum = TryAttribute(XFA_Attribute::Checksum, false);
- pValue->SetString(checksum ? checksum->ToUTF8().AsStringView() : "");
+ pValue->SetString(pIsolate,
+ checksum ? checksum->ToUTF8().AsStringView() : "");
}
diff --git a/fxjs/xfa/cjx_handler.cpp b/fxjs/xfa/cjx_handler.cpp
index 21be88c..5cdf5b5 100644
--- a/fxjs/xfa/cjx_handler.cpp
+++ b/fxjs/xfa/cjx_handler.cpp
@@ -16,6 +16,7 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Handler::version(CFXJSE_Value* pValue,
+void CJX_Handler::version(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index e4bd454..34be45d 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -76,7 +76,8 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_HostPseudoModel::appType(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::appType(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -87,10 +88,11 @@
ThrowInvalidPropertyException();
return;
}
- pValue->SetString("Exchange");
+ pValue->SetString(pIsolate, "Exchange");
}
-void CJX_HostPseudoModel::calculationsEnabled(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::calculationsEnabled(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -99,13 +101,14 @@
CXFA_FFDoc* hDoc = pNotify->GetFFDoc();
if (bSetting) {
- hDoc->SetCalculationsEnabled(pValue->ToBoolean());
+ hDoc->SetCalculationsEnabled(pValue->ToBoolean(pIsolate));
return;
}
- pValue->SetBoolean(hDoc->IsCalculationsEnabled());
+ pValue->SetBoolean(pIsolate, hDoc->IsCalculationsEnabled());
}
-void CJX_HostPseudoModel::currentPage(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::currentPage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -114,13 +117,14 @@
CXFA_FFDoc* hDoc = pNotify->GetFFDoc();
if (bSetting) {
- hDoc->SetCurrentPage(pValue->ToInteger());
+ hDoc->SetCurrentPage(pValue->ToInteger(pIsolate));
return;
}
- pValue->SetInteger(hDoc->GetCurrentPage());
+ pValue->SetInteger(pIsolate, hDoc->GetCurrentPage());
}
-void CJX_HostPseudoModel::language(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::language(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -132,10 +136,12 @@
return;
}
pValue->SetString(
+ pIsolate,
pNotify->GetAppProvider()->GetLanguage().ToUTF8().AsStringView());
}
-void CJX_HostPseudoModel::numPages(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::numPages(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -147,10 +153,11 @@
ThrowException(WideString::FromASCII("Unable to set numPages value."));
return;
}
- pValue->SetInteger(hDoc->CountPages());
+ pValue->SetInteger(pIsolate, hDoc->CountPages());
}
-void CJX_HostPseudoModel::platform(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::platform(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -162,10 +169,12 @@
return;
}
pValue->SetString(
+ pIsolate,
pNotify->GetAppProvider()->GetPlatform().ToUTF8().AsStringView());
}
-void CJX_HostPseudoModel::title(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::title(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!GetDocument()->GetScriptContext()->IsRunAtClient())
@@ -177,15 +186,16 @@
CXFA_FFDoc* hDoc = pNotify->GetFFDoc();
if (bSetting) {
- hDoc->SetTitle(pValue->ToWideString());
+ hDoc->SetTitle(pValue->ToWideString(pIsolate));
return;
}
WideString wsTitle = hDoc->GetTitle();
- pValue->SetString(wsTitle.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsTitle.ToUTF8().AsStringView());
}
-void CJX_HostPseudoModel::validationsEnabled(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::validationsEnabled(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -194,15 +204,16 @@
CXFA_FFDoc* hDoc = pNotify->GetFFDoc();
if (bSetting) {
- hDoc->SetValidationsEnabled(pValue->ToBoolean());
+ hDoc->SetValidationsEnabled(pValue->ToBoolean(pIsolate));
return;
}
bool bEnabled = hDoc->IsValidationsEnabled();
- pValue->SetBoolean(bEnabled);
+ pValue->SetBoolean(pIsolate, bEnabled);
}
-void CJX_HostPseudoModel::variation(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::variation(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!GetDocument()->GetScriptContext()->IsRunAtClient())
@@ -212,20 +223,22 @@
ThrowException(WideString::FromASCII("Unable to set variation value."));
return;
}
- pValue->SetString("Full");
+ pValue->SetString(pIsolate, "Full");
}
-void CJX_HostPseudoModel::version(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::version(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowException(WideString::FromASCII("Unable to set version value."));
return;
}
- pValue->SetString("11");
+ pValue->SetString(pIsolate, "11");
}
-void CJX_HostPseudoModel::name(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::name(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -237,6 +250,7 @@
return;
}
pValue->SetString(
+ pIsolate,
pNotify->GetAppProvider()->GetAppName().ToUTF8().AsStringView());
}
diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp
index fd3b4cd..7d1fdb6 100644
--- a/fxjs/xfa/cjx_instancemanager.cpp
+++ b/fxjs/xfa/cjx_instancemanager.cpp
@@ -302,7 +302,8 @@
value->DirectGetValue().Get(runtime->GetIsolate()));
}
-void CJX_InstanceManager::max(CFXJSE_Value* pValue,
+void CJX_InstanceManager::max(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -310,10 +311,12 @@
return;
}
CXFA_Occur* occur = GetXFANode()->GetOccurIfExists();
- pValue->SetInteger(occur ? occur->GetMax() : CXFA_Occur::kDefaultMax);
+ pValue->SetInteger(pIsolate,
+ occur ? occur->GetMax() : CXFA_Occur::kDefaultMax);
}
-void CJX_InstanceManager::min(CFXJSE_Value* pValue,
+void CJX_InstanceManager::min(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -321,15 +324,17 @@
return;
}
CXFA_Occur* occur = GetXFANode()->GetOccurIfExists();
- pValue->SetInteger(occur ? occur->GetMin() : CXFA_Occur::kDefaultMin);
+ pValue->SetInteger(pIsolate,
+ occur ? occur->GetMin() : CXFA_Occur::kDefaultMin);
}
-void CJX_InstanceManager::count(CFXJSE_Value* pValue,
+void CJX_InstanceManager::count(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
- SetInstances(pValue->ToInteger());
+ SetInstances(pValue->ToInteger(pIsolate));
return;
}
- pValue->SetInteger(GetXFANode()->GetCount());
+ pValue->SetInteger(pIsolate, GetXFANode()->GetCount());
}
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index e4a6f03..89222fc 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -62,7 +62,8 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_LayoutPseudoModel::ready(CFXJSE_Value* pValue,
+void CJX_LayoutPseudoModel::ready(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -74,7 +75,7 @@
}
int32_t iStatus = pNotify->GetLayoutStatus();
- pValue->SetBoolean(iStatus >= 2);
+ pValue->SetBoolean(pIsolate, iStatus >= 2);
}
CJS_Result CJX_LayoutPseudoModel::HWXY(
diff --git a/fxjs/xfa/cjx_list.cpp b/fxjs/xfa/cjx_list.cpp
index 75d63b3..bd66cb6 100644
--- a/fxjs/xfa/cjx_list.cpp
+++ b/fxjs/xfa/cjx_list.cpp
@@ -97,7 +97,8 @@
pEngine->NewNormalXFAObject(GetXFAList()->Item(cast_index)));
}
-void CJX_List::length(CFXJSE_Value* pValue,
+void CJX_List::length(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -105,5 +106,5 @@
return;
}
pValue->SetInteger(
- pdfium::base::checked_cast<int32_t>(GetXFAList()->GetLength()));
+ pIsolate, pdfium::base::checked_cast<int32_t>(GetXFAList()->GetLength()));
}
diff --git a/fxjs/xfa/cjx_model.cpp b/fxjs/xfa/cjx_model.cpp
index 1c1ae19..fc70823 100644
--- a/fxjs/xfa/cjx_model.cpp
+++ b/fxjs/xfa/cjx_model.cpp
@@ -86,10 +86,12 @@
runtime->NewBoolean(TryNamespace().value_or(WideString()) == nameSpace));
}
-void CJX_Model::context(CFXJSE_Value* pValue,
+void CJX_Model::context(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_Model::aliasNode(CFXJSE_Value* pValue,
+void CJX_Model::aliasNode(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 5034165..db57654 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -448,7 +448,8 @@
return CJS_Result::Success();
}
-void CJX_Node::ns(CFXJSE_Value* pValue,
+void CJX_Node::ns(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -456,31 +457,35 @@
return;
}
pValue->SetString(
- TryNamespace().value_or(WideString()).ToUTF8().AsStringView());
+ pIsolate, TryNamespace().value_or(WideString()).ToUTF8().AsStringView());
}
-void CJX_Node::model(CFXJSE_Value* pValue,
+void CJX_Node::model(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
}
- pValue->Assign(GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
- GetXFANode()->GetModelNode()));
+ pValue->Assign(pIsolate,
+ GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
+ GetXFANode()->GetModelNode()));
}
-void CJX_Node::isContainer(CFXJSE_Value* pValue,
+void CJX_Node::isContainer(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
}
- pValue->SetBoolean(GetXFANode()->IsContainerNode());
+ pValue->SetBoolean(pIsolate, GetXFANode()->IsContainerNode());
}
-void CJX_Node::isNull(CFXJSE_Value* pValue,
+void CJX_Node::isNull(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -488,13 +493,14 @@
return;
}
if (GetXFANode()->GetElementType() == XFA_Element::Subform) {
- pValue->SetBoolean(false);
+ pValue->SetBoolean(pIsolate, false);
return;
}
- pValue->SetBoolean(GetContent(false).IsEmpty());
+ pValue->SetBoolean(pIsolate, GetContent(false).IsEmpty());
}
-void CJX_Node::oneOfChild(CFXJSE_Value* pValue,
+void CJX_Node::oneOfChild(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -506,6 +512,7 @@
GetXFANode()->GetNodeListWithFilter(XFA_NODEFILTER_OneOfProperty);
if (!properties.empty()) {
pValue->Assign(
+ pIsolate,
GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
properties.front()));
}
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index eb975b1..4944a2b 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -125,14 +125,15 @@
return ToNode(GetXFAObject());
}
-void CJX_Object::className(CFXJSE_Value* pValue,
+void CJX_Object::className(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
}
- pValue->SetString(GetXFAObject()->GetClassName());
+ pValue->SetString(pIsolate, GetXFAObject()->GetClassName());
}
int32_t CJX_Object::Subform_and_SubformSet_InstanceIndex() {
@@ -942,15 +943,17 @@
that->calc_data_ = nullptr;
}
-void CJX_Object::ScriptAttributeString(CFXJSE_Value* pValue,
+void CJX_Object::ScriptAttributeString(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!bSetting) {
- pValue->SetString(GetAttributeByEnum(eAttribute).ToUTF8().AsStringView());
+ pValue->SetString(pIsolate,
+ GetAttributeByEnum(eAttribute).ToUTF8().AsStringView());
return;
}
- WideString wsValue = pValue->ToWideString();
+ WideString wsValue = pValue->ToWideString(pIsolate);
SetAttributeByEnum(eAttribute, wsValue, true);
if (eAttribute != XFA_Attribute::Use ||
GetXFAObject()->GetElementType() != XFA_Element::Desc) {
@@ -1009,27 +1012,30 @@
}
}
-void CJX_Object::ScriptAttributeBool(CFXJSE_Value* pValue,
+void CJX_Object::ScriptAttributeBool(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
- SetBoolean(eAttribute, pValue->ToBoolean(), true);
+ SetBoolean(eAttribute, pValue->ToBoolean(pIsolate), true);
return;
}
- pValue->SetString(GetBoolean(eAttribute) ? "1" : "0");
+ pValue->SetString(pIsolate, GetBoolean(eAttribute) ? "1" : "0");
}
-void CJX_Object::ScriptAttributeInteger(CFXJSE_Value* pValue,
+void CJX_Object::ScriptAttributeInteger(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
- SetInteger(eAttribute, pValue->ToInteger(), true);
+ SetInteger(eAttribute, pValue->ToInteger(pIsolate), true);
return;
}
- pValue->SetInteger(GetInteger(eAttribute));
+ pValue->SetInteger(pIsolate, GetInteger(eAttribute));
}
-void CJX_Object::ScriptSomFontColor(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomFontColor(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Font* font = ToNode(object_.Get())->GetOrCreateFontIfPossible();
@@ -1040,7 +1046,7 @@
int32_t r;
int32_t g;
int32_t b;
- std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
+ std::tie(r, g, b) = StrToRGB(pValue->ToWideString(pIsolate));
FX_ARGB color = ArgbEncode(0xff, r, g, b);
font->SetColor(color);
return;
@@ -1051,10 +1057,12 @@
int32_t g;
int32_t b;
std::tie(a, r, g, b) = ArgbDecode(font->GetColor());
- pValue->SetString(ByteString::Format("%d,%d,%d", r, g, b).AsStringView());
+ pValue->SetString(pIsolate,
+ ByteString::Format("%d,%d,%d", r, g, b).AsStringView());
}
-void CJX_Object::ScriptSomFillColor(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomFillColor(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Border* border = ToNode(object_.Get())->GetOrCreateBorderIfPossible();
@@ -1066,7 +1074,7 @@
int32_t r;
int32_t g;
int32_t b;
- std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
+ std::tie(r, g, b) = StrToRGB(pValue->ToWideString(pIsolate));
FX_ARGB color = ArgbEncode(0xff, r, g, b);
borderfill->SetColor(color);
return;
@@ -1079,10 +1087,12 @@
int32_t b;
std::tie(a, r, g, b) = ArgbDecode(color);
pValue->SetString(
+ pIsolate,
WideString::Format(L"%d,%d,%d", r, g, b).ToUTF8().AsStringView());
}
-void CJX_Object::ScriptSomBorderColor(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomBorderColor(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Border* border = ToNode(object_.Get())->GetOrCreateBorderIfPossible();
@@ -1091,7 +1101,7 @@
int32_t r = 0;
int32_t g = 0;
int32_t b = 0;
- std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
+ std::tie(r, g, b) = StrToRGB(pValue->ToWideString(pIsolate));
FX_ARGB rgb = ArgbEncode(100, r, g, b);
for (int32_t i = 0; i < iSize; ++i) {
CXFA_Edge* edge = border->GetEdgeIfExists(i);
@@ -1110,10 +1120,12 @@
int32_t b;
std::tie(a, r, g, b) = ArgbDecode(color);
pValue->SetString(
+ pIsolate,
WideString::Format(L"%d,%d,%d", r, g, b).ToUTF8().AsStringView());
}
-void CJX_Object::ScriptSomBorderWidth(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomBorderWidth(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Border* border = ToNode(object_.Get())->GetOrCreateBorderIfPossible();
@@ -1121,14 +1133,14 @@
CXFA_Edge* edge = border->GetEdgeIfExists(0);
CXFA_Measurement thickness =
edge ? edge->GetMSThickness() : CXFA_Measurement(0.5, XFA_Unit::Pt);
- pValue->SetString(thickness.ToString().ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, thickness.ToString().ToUTF8().AsStringView());
return;
}
if (pValue->IsEmpty())
return;
- WideString wsThickness = pValue->ToWideString();
+ WideString wsThickness = pValue->ToWideString(pIsolate);
for (int32_t i = 0; i < border->CountEdges(); ++i) {
CXFA_Edge* edge = border->GetEdgeIfExists(i);
if (edge)
@@ -1136,7 +1148,8 @@
}
}
-void CJX_Object::ScriptSomMessage(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomMessage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_SOM_MESSAGETYPE iMessageType) {
bool bNew = false;
@@ -1150,13 +1163,13 @@
if (validate) {
switch (iMessageType) {
case XFA_SOM_ValidationMessage:
- validate->SetScriptMessageText(pValue->ToWideString());
+ validate->SetScriptMessageText(pValue->ToWideString(pIsolate));
break;
case XFA_SOM_FormatMessage:
- validate->SetFormatMessageText(pValue->ToWideString());
+ validate->SetFormatMessageText(pValue->ToWideString(pIsolate));
break;
case XFA_SOM_MandatoryMessage:
- validate->SetNullMessageText(pValue->ToWideString());
+ validate->SetNullMessageText(pValue->ToWideString(pIsolate));
break;
default:
break;
@@ -1193,22 +1206,25 @@
default:
break;
}
- pValue->SetString(wsMessage.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsMessage.ToUTF8().AsStringView());
}
-void CJX_Object::ScriptSomValidationMessage(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomValidationMessage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- ScriptSomMessage(pValue, bSetting, XFA_SOM_ValidationMessage);
+ ScriptSomMessage(pIsolate, pValue, bSetting, XFA_SOM_ValidationMessage);
}
-void CJX_Object::ScriptSomMandatoryMessage(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomMandatoryMessage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- ScriptSomMessage(pValue, bSetting, XFA_SOM_MandatoryMessage);
+ ScriptSomMessage(pIsolate, pValue, bSetting, XFA_SOM_MandatoryMessage);
}
-void CJX_Object::ScriptSomDefaultValue(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomDefaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute /* unused */) {
XFA_Element eType = GetXFANode()->GetElementType();
@@ -1217,26 +1233,26 @@
// if defaultValue is defined and, if so, call that one. Just have to make
// sure that those defaultValue calls don't call back to this one ....
if (eType == XFA_Element::Field) {
- static_cast<CJX_Field*>(this)->defaultValue(pValue, bSetting,
+ static_cast<CJX_Field*>(this)->defaultValue(pIsolate, pValue, bSetting,
XFA_Attribute::Unknown);
return;
}
if (eType == XFA_Element::Draw) {
- static_cast<CJX_Draw*>(this)->defaultValue(pValue, bSetting,
+ static_cast<CJX_Draw*>(this)->defaultValue(pIsolate, pValue, bSetting,
XFA_Attribute::Unknown);
return;
}
if (eType == XFA_Element::Boolean) {
- static_cast<CJX_Boolean*>(this)->defaultValue(pValue, bSetting,
+ static_cast<CJX_Boolean*>(this)->defaultValue(pIsolate, pValue, bSetting,
XFA_Attribute::Unknown);
return;
}
if (bSetting) {
WideString wsNewValue;
- if (pValue &&
- !(pValue->IsEmpty() || pValue->IsNull() || pValue->IsUndefined())) {
- wsNewValue = pValue->ToWideString();
+ if (pValue && !(pValue->IsEmpty() || pValue->IsNull(pIsolate) ||
+ pValue->IsUndefined(pIsolate))) {
+ wsNewValue = pValue->ToWideString(pIsolate);
}
WideString wsFormatValue(wsNewValue);
@@ -1271,18 +1287,19 @@
WideString content = GetContent(true);
if (content.IsEmpty() && eType != XFA_Element::Text &&
eType != XFA_Element::SubmitUrl) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
} else if (eType == XFA_Element::Integer) {
- pValue->SetInteger(FXSYS_wtoi(content.c_str()));
+ pValue->SetInteger(pIsolate, FXSYS_wtoi(content.c_str()));
} else if (eType == XFA_Element::Float || eType == XFA_Element::Decimal) {
CFGAS_Decimal decimal(content.AsStringView());
- pValue->SetFloat(decimal.ToFloat());
+ pValue->SetFloat(pIsolate, decimal.ToFloat());
} else {
- pValue->SetString(content.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, content.ToUTF8().AsStringView());
}
}
-void CJX_Object::ScriptSomDefaultValue_Read(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomDefaultValue_Read(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -1292,13 +1309,14 @@
WideString content = GetContent(true);
if (content.IsEmpty()) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
- pValue->SetString(content.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, content.ToUTF8().AsStringView());
}
-void CJX_Object::ScriptSomDataNode(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomDataNode(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -1308,15 +1326,17 @@
CXFA_Node* pDataNode = GetXFANode()->GetBindData();
if (!pDataNode) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
- pValue->Assign(GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
- pDataNode));
+ pValue->Assign(pIsolate,
+ GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
+ pDataNode));
}
-void CJX_Object::ScriptSomMandatory(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomMandatory(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Validate* validate =
@@ -1325,22 +1345,24 @@
return;
if (bSetting) {
- validate->SetNullTest(pValue->ToWideString());
+ validate->SetNullTest(pValue->ToWideString(pIsolate));
return;
}
- pValue->SetString(XFA_AttributeValueToName(validate->GetNullTest()));
+ pValue->SetString(pIsolate,
+ XFA_AttributeValueToName(validate->GetNullTest()));
}
-void CJX_Object::ScriptSomInstanceIndex(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSomInstanceIndex(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!bSetting) {
- pValue->SetInteger(Subform_and_SubformSet_InstanceIndex());
+ pValue->SetInteger(pIsolate, Subform_and_SubformSet_InstanceIndex());
return;
}
- int32_t iTo = pValue->ToInteger();
+ int32_t iTo = pValue->ToInteger(pIsolate);
int32_t iFrom = Subform_and_SubformSet_InstanceIndex();
CXFA_Node* pManagerNode = nullptr;
for (CXFA_Node* pNode = GetXFANode()->GetPrevSibling(); pNode;
@@ -1371,7 +1393,8 @@
}
}
-void CJX_Object::ScriptSubmitFormatMode(CFXJSE_Value* pValue,
+void CJX_Object::ScriptSubmitFormatMode(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 8cd5ab0..bae2419 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -180,7 +180,8 @@
JSE_PROP(ScriptSomInstanceIndex);
JSE_PROP(ScriptSubmitFormatMode);
- void ScriptSomMessage(CFXJSE_Value* pValue,
+ void ScriptSomMessage(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_SOM_MESSAGETYPE iMessageType);
diff --git a/fxjs/xfa/cjx_occur.cpp b/fxjs/xfa/cjx_occur.cpp
index 227b8ae..c3aa678 100644
--- a/fxjs/xfa/cjx_occur.cpp
+++ b/fxjs/xfa/cjx_occur.cpp
@@ -17,24 +17,26 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Occur::max(CFXJSE_Value* pValue,
+void CJX_Occur::max(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Occur* occur = static_cast<CXFA_Occur*>(GetXFANode());
if (!bSetting) {
- pValue->SetInteger(occur->GetMax());
+ pValue->SetInteger(pIsolate, occur->GetMax());
return;
}
- occur->SetMax(pValue->ToInteger());
+ occur->SetMax(pValue->ToInteger(pIsolate));
}
-void CJX_Occur::min(CFXJSE_Value* pValue,
+void CJX_Occur::min(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_Occur* occur = static_cast<CXFA_Occur*>(GetXFANode());
if (!bSetting) {
- pValue->SetInteger(occur->GetMin());
+ pValue->SetInteger(pIsolate, occur->GetMin());
return;
}
- occur->SetMin(pValue->ToInteger());
+ occur->SetMin(pValue->ToInteger(pIsolate));
}
diff --git a/fxjs/xfa/cjx_packet.cpp b/fxjs/xfa/cjx_packet.cpp
index ab1b478..70c8609 100644
--- a/fxjs/xfa/cjx_packet.cpp
+++ b/fxjs/xfa/cjx_packet.cpp
@@ -78,7 +78,8 @@
return CJS_Result::Success(runtime->NewNull());
}
-void CJX_Packet::content(CFXJSE_Value* pValue,
+void CJX_Packet::content(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CFX_XMLElement* element = ToXMLElement(GetXFANode()->GetXMLMappingNode());
@@ -90,7 +91,7 @@
->GetNotify()
->GetFFDoc()
->GetXMLDocument()
- ->CreateNode<CFX_XMLText>(pValue->ToWideString()));
+ ->CreateNode<CFX_XMLText>(pValue->ToWideString(pIsolate)));
}
return;
}
@@ -99,5 +100,5 @@
if (element)
wsTextData = element->GetTextData();
- pValue->SetString(wsTextData.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsTextData.ToUTF8().AsStringView());
}
diff --git a/fxjs/xfa/cjx_script.cpp b/fxjs/xfa/cjx_script.cpp
index 207a2ce..a2de5a7 100644
--- a/fxjs/xfa/cjx_script.cpp
+++ b/fxjs/xfa/cjx_script.cpp
@@ -17,12 +17,13 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Script::stateless(CFXJSE_Value* pValue,
+void CJX_Script::stateless(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
}
- pValue->SetString("0");
+ pValue->SetString(pIsolate, "0");
}
diff --git a/fxjs/xfa/cjx_source.cpp b/fxjs/xfa/cjx_source.cpp
index 0e1aab9..c793f29 100644
--- a/fxjs/xfa/cjx_source.cpp
+++ b/fxjs/xfa/cjx_source.cpp
@@ -183,6 +183,7 @@
return CJS_Result::Success();
}
-void CJX_Source::db(CFXJSE_Value* pValue,
+void CJX_Source::db(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_subform.cpp b/fxjs/xfa/cjx_subform.cpp
index 37fe01c..709be8a 100644
--- a/fxjs/xfa/cjx_subform.cpp
+++ b/fxjs/xfa/cjx_subform.cpp
@@ -87,19 +87,22 @@
runtime->NewBoolean(iRet != XFA_EventError::kError));
}
-void CJX_Subform::locale(CFXJSE_Value* pValue,
+void CJX_Subform::locale(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
- SetCDataImpl(XFA_Attribute::Locale, pValue->ToWideString(), true, true);
+ SetCDataImpl(XFA_Attribute::Locale, pValue->ToWideString(pIsolate), true,
+ true);
return;
}
WideString wsLocaleName = GetXFANode()->GetLocaleName().value_or(L"");
- pValue->SetString(wsLocaleName.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsLocaleName.ToUTF8().AsStringView());
}
-void CJX_Subform::instanceManager(CFXJSE_Value* pValue,
+void CJX_Subform::instanceManager(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -122,10 +125,11 @@
}
}
if (!pInstanceMgr) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
- pValue->Assign(GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
- pInstanceMgr));
+ pValue->Assign(pIsolate,
+ GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(
+ pInstanceMgr));
}
diff --git a/fxjs/xfa/cjx_textnode.cpp b/fxjs/xfa/cjx_textnode.cpp
index df6b305..6e90fb3 100644
--- a/fxjs/xfa/cjx_textnode.cpp
+++ b/fxjs/xfa/cjx_textnode.cpp
@@ -17,14 +17,16 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_TextNode::defaultValue(CFXJSE_Value* pValue,
+void CJX_TextNode::defaultValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute attr) {
- ScriptSomDefaultValue(pValue, bSetting, attr);
+ ScriptSomDefaultValue(pIsolate, pValue, bSetting, attr);
}
-void CJX_TextNode::value(CFXJSE_Value* pValue,
+void CJX_TextNode::value(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute attr) {
- ScriptSomDefaultValue(pValue, bSetting, attr);
+ ScriptSomDefaultValue(pIsolate, pValue, bSetting, attr);
}
diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp
index 657e73d..3e7c556 100644
--- a/fxjs/xfa/cjx_tree.cpp
+++ b/fxjs/xfa/cjx_tree.cpp
@@ -74,7 +74,8 @@
auto pValue = std::make_unique<CFXJSE_Value>(pScriptContext->GetIsolate());
CJX_Object* jsObject = resolveNodeRS.objects.front()->JSObject();
(*resolveNodeRS.script_attribute.callback)(
- jsObject, pValue.get(), false, resolveNodeRS.script_attribute.attribute);
+ runtime->GetIsolate(), jsObject, pValue.get(), false,
+ resolveNodeRS.script_attribute.attribute);
return CJS_Result::Success(
pValue->DirectGetValue().Get(runtime->GetIsolate()));
}
@@ -91,7 +92,8 @@
CFXJSE_Engine* pScriptContext = GetDocument()->GetScriptContext();
auto pValue = std::make_unique<CFXJSE_Value>(pScriptContext->GetIsolate());
- ResolveNodeList(pValue.get(), runtime->ToWideString(params[0]),
+ ResolveNodeList(pScriptContext->GetIsolate(), pValue.get(),
+ runtime->ToWideString(params[0]),
XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes |
XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent |
XFA_RESOLVENODE_Siblings,
@@ -100,7 +102,8 @@
pValue->DirectGetValue().Get(runtime->GetIsolate()));
}
-void CJX_Tree::all(CFXJSE_Value* pValue,
+void CJX_Tree::all(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -110,10 +113,11 @@
uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL;
WideString wsExpression = GetAttributeByEnum(XFA_Attribute::Name) + L"[*]";
- ResolveNodeList(pValue, wsExpression, dwFlag, nullptr);
+ ResolveNodeList(pIsolate, pValue, wsExpression, dwFlag, nullptr);
}
-void CJX_Tree::classAll(CFXJSE_Value* pValue,
+void CJX_Tree::classAll(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -123,11 +127,12 @@
WideString wsExpression =
L"#" + WideString::FromASCII(GetXFAObject()->GetClassName()) + L"[*]";
- ResolveNodeList(pValue, wsExpression,
+ ResolveNodeList(pIsolate, pValue, wsExpression,
XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL, nullptr);
}
-void CJX_Tree::nodes(CFXJSE_Value* pValue,
+void CJX_Tree::nodes(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -142,10 +147,12 @@
pDoc->GetNodeOwner()->PersistList(pNodeList);
CFXJSE_Engine* pEngine = pDoc->GetScriptContext();
- pValue->SetHostObject(pNodeList->JSObject(), pEngine->GetJseNormalClass());
+ pValue->SetHostObject(pIsolate, pNodeList->JSObject(),
+ pEngine->GetJseNormalClass());
}
-void CJX_Tree::parent(CFXJSE_Value* pValue,
+void CJX_Tree::parent(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -155,15 +162,17 @@
CXFA_Node* pParent = GetXFANode()->GetParent();
if (!pParent) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
pValue->Assign(
+ pIsolate,
GetDocument()->GetScriptContext()->GetOrCreateJSBindingFromMap(pParent));
}
-void CJX_Tree::index(CFXJSE_Value* pValue,
+void CJX_Tree::index(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -173,10 +182,11 @@
CXFA_Node* pNode = GetXFANode();
size_t iIndex = pNode ? pNode->GetIndexByName() : 0;
- pValue->SetInteger(pdfium::base::checked_cast<int32_t>(iIndex));
+ pValue->SetInteger(pIsolate, pdfium::base::checked_cast<int32_t>(iIndex));
}
-void CJX_Tree::classIndex(CFXJSE_Value* pValue,
+void CJX_Tree::classIndex(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -186,10 +196,11 @@
CXFA_Node* pNode = GetXFANode();
size_t iIndex = pNode ? pNode->GetIndexByClassName() : 0;
- pValue->SetInteger(pdfium::base::checked_cast<int32_t>(iIndex));
+ pValue->SetInteger(pIsolate, pdfium::base::checked_cast<int32_t>(iIndex));
}
-void CJX_Tree::somExpression(CFXJSE_Value* pValue,
+void CJX_Tree::somExpression(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting) {
@@ -198,10 +209,11 @@
}
WideString wsSOMExpression = GetXFAObject()->GetSOMExpression();
- pValue->SetString(wsSOMExpression.ToUTF8().AsStringView());
+ pValue->SetString(pIsolate, wsSOMExpression.ToUTF8().AsStringView());
}
-void CJX_Tree::ResolveNodeList(CFXJSE_Value* pValue,
+void CJX_Tree::ResolveNodeList(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
WideString wsExpression,
uint32_t dwFlag,
CXFA_Node* refNode) {
@@ -231,14 +243,15 @@
std::make_unique<CFXJSE_Value>(pScriptContext->GetIsolate());
CJX_Object* jsObject = pObject->JSObject();
(*resolveNodeRS.script_attribute.callback)(
- jsObject, innerValue.get(), false,
+ pIsolate, jsObject, innerValue.get(), false,
resolveNodeRS.script_attribute.attribute);
- CXFA_Object* obj = CFXJSE_Engine::ToObject(innerValue.get());
+ CXFA_Object* obj = CFXJSE_Engine::ToObject(pScriptContext->GetIsolate(),
+ innerValue.get());
if (obj->IsNode())
pNodeList->Append(obj->AsNode());
}
}
}
- pValue->SetHostObject(pNodeList->JSObject(),
+ pValue->SetHostObject(pIsolate, pNodeList->JSObject(),
pScriptContext->GetJseNormalClass());
}
diff --git a/fxjs/xfa/cjx_tree.h b/fxjs/xfa/cjx_tree.h
index 54dd88d..ad117f3 100644
--- a/fxjs/xfa/cjx_tree.h
+++ b/fxjs/xfa/cjx_tree.h
@@ -43,7 +43,8 @@
static const TypeTag static_type__ = TypeTag::Tree;
static const CJX_MethodSpec MethodSpecs[];
- void ResolveNodeList(CFXJSE_Value* pValue,
+ void ResolveNodeList(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
WideString wsExpression,
uint32_t dwFlag,
CXFA_Node* refNode);
diff --git a/fxjs/xfa/cjx_xfa.cpp b/fxjs/xfa/cjx_xfa.cpp
index 08c6a80..f107f76 100644
--- a/fxjs/xfa/cjx_xfa.cpp
+++ b/fxjs/xfa/cjx_xfa.cpp
@@ -19,7 +19,8 @@
return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
}
-void CJX_Xfa::thisValue(CFXJSE_Value* pValue,
+void CJX_Xfa::thisValue(v8::Isolate* pIsolate,
+ CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (bSetting)
@@ -28,8 +29,8 @@
auto* pScriptContext = GetDocument()->GetScriptContext();
CXFA_Object* pThis = pScriptContext->GetThisObject();
if (!pThis) {
- pValue->SetNull();
+ pValue->SetNull(pIsolate);
return;
}
- pValue->Assign(pScriptContext->GetOrCreateJSBindingFromMap(pThis));
+ pValue->Assign(pIsolate, pScriptContext->GetOrCreateJSBindingFromMap(pThis));
}
diff --git a/fxjs/xfa/fxjse.h b/fxjs/xfa/fxjse.h
index 10750ef..5d70351 100644
--- a/fxjs/xfa/fxjse.h
+++ b/fxjs/xfa/fxjse.h
@@ -50,10 +50,12 @@
typedef void (*FXJSE_FuncCallback)(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info);
-typedef void (*FXJSE_PropAccessor)(CFXJSE_Value* pObject,
+typedef void (*FXJSE_PropAccessor)(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue);
-typedef int32_t (*FXJSE_PropTypeGetter)(CFXJSE_Value* pObject,
+typedef int32_t (*FXJSE_PropTypeGetter)(v8::Isolate* pIsolate,
+ CFXJSE_Value* pObject,
ByteStringView szPropName,
bool bQueryIn);
diff --git a/fxjs/xfa/jse_define.h b/fxjs/xfa/jse_define.h
index 26405c9..328e0a0 100644
--- a/fxjs/xfa/jse_define.h
+++ b/fxjs/xfa/jse_define.h
@@ -24,12 +24,15 @@
CJS_Result method_name(CFX_V8* runtime, \
const std::vector<v8::Local<v8::Value>>& params)
-#define JSE_PROP(prop_name) \
- static void prop_name##_static(CJX_Object* node, CFXJSE_Value* value, \
- bool setting, XFA_Attribute attribute) { \
- if (node->DynamicTypeIs(static_type__)) \
- static_cast<Type__*>(node)->prop_name(value, setting, attribute); \
- } \
- void prop_name(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute)
+#define JSE_PROP(prop_name) \
+ static void prop_name##_static(v8::Isolate* pIsolate, CJX_Object* node, \
+ CFXJSE_Value* value, bool setting, \
+ XFA_Attribute attribute) { \
+ if (node->DynamicTypeIs(static_type__)) \
+ static_cast<Type__*>(node)->prop_name(pIsolate, value, setting, \
+ attribute); \
+ } \
+ void prop_name(v8::Isolate* pIsolate, CFXJSE_Value* pValue, bool bSetting, \
+ XFA_Attribute eAttribute)
#endif // FXJS_XFA_JSE_DEFINE_H_
diff --git a/testing/xfa_js_embedder_test.cpp b/testing/xfa_js_embedder_test.cpp
index 2eb1947..4df2d05 100644
--- a/testing/xfa_js_embedder_test.cpp
+++ b/testing/xfa_js_embedder_test.cpp
@@ -59,13 +59,13 @@
return true;
CFXJSE_Value msg(isolate());
- value_->GetObjectPropertyByIdx(1, &msg);
+ value_->GetObjectPropertyByIdx(isolate(), 1, &msg);
fprintf(stderr, "FormCalc: %.*s\n", static_cast<int>(input.GetLength()),
input.unterminated_c_str());
// If the parsing of the input fails, then v8 will not run, so there will be
// no value here to print.
- if (msg.IsString() && !msg.ToWideString().IsEmpty())
- fprintf(stderr, "JS ERROR: %ls\n", msg.ToWideString().c_str());
+ if (msg.IsString(isolate()) && !msg.ToWideString(isolate()).IsEmpty())
+ fprintf(stderr, "JS ERROR: %ls\n", msg.ToWideString(isolate()).c_str());
return false;
}
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index d2d1e63..51a34d1 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -2771,9 +2771,10 @@
iRet = XFA_EventError::kSuccess;
if (pEventParam->m_eType == XFA_EVENT_Calculate ||
pEventParam->m_eType == XFA_EVENT_InitCalculate) {
- if (!pTmpRetValue->IsUndefined()) {
- if (!pTmpRetValue->IsNull())
- pEventParam->m_wsResult = pTmpRetValue->ToWideString();
+ if (!pTmpRetValue->IsUndefined(pContext->GetIsolate())) {
+ if (!pTmpRetValue->IsNull(pContext->GetIsolate()))
+ pEventParam->m_wsResult =
+ pTmpRetValue->ToWideString(pContext->GetIsolate());
iRet = XFA_EventError::kSuccess;
} else {
@@ -2800,7 +2801,8 @@
pContext->SetNodesOfRunScript(nullptr);
pContext->SetEventParam(nullptr);
- return {iRet, pTmpRetValue->IsBoolean() && pTmpRetValue->ToBoolean()};
+ return {iRet, pTmpRetValue->IsBoolean(pContext->GetIsolate()) &&
+ pTmpRetValue->ToBoolean(pContext->GetIsolate())};
}
std::pair<XFA_FFWidgetType, CXFA_Ui*>
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h
index f342847..873d01c 100644
--- a/xfa/fxfa/parser/xfa_basic_data.h
+++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -14,7 +14,8 @@
#include "third_party/base/optional.h"
#include "xfa/fxfa/fxfa_basic.h"
-typedef void (*XFA_ATTRIBUTE_CALLBACK)(CJX_Object* pNode,
+typedef void (*XFA_ATTRIBUTE_CALLBACK)(v8::Isolate* pIsolate,
+ CJX_Object* pNode,
CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);