| Index: xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
|
| diff --git a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
|
| index e15d9fd2be413d8f6ccebb2942838ed10813c5ad..529140d0deafc5df1f31c90b7d9c13466c8de235 100644
|
| --- a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
|
| +++ b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
|
| @@ -20,14 +20,15 @@
|
| #include "xfa/fxjse/cfxjse_arguments.h"
|
| #include "xfa/fxjse/value.h"
|
|
|
| -#define FINANCIAL_PRECISION 0.00000001
|
| -
|
| namespace {
|
|
|
| +const double kFinancialPrecision = 0.00000001;
|
| +
|
| struct XFA_FMHtmlReserveCode {
|
| uint32_t m_uCode;
|
| const FX_WCHAR* m_htmlReserve;
|
| };
|
| +
|
| struct XFA_FMHtmlHashedReserveCode {
|
| uint32_t m_uHash;
|
| const FX_WCHAR* m_htmlReserve;
|
| @@ -396,17 +397,107 @@ void AlternateDateTimeSymbols(CFX_WideString& wsPattern,
|
| }
|
| if (!bInConstRange && (n = wc - L'A') >= 0 && n <= (L'a' - L'A')) {
|
| int32_t nAlt = (int32_t)pAltTable[n];
|
| - if (nAlt != 255) {
|
| + if (nAlt != 255)
|
| wsPattern.SetAt(i, wsAltSymbols[nAlt]);
|
| - }
|
| }
|
| i++;
|
| bEscape = FALSE;
|
| }
|
| }
|
|
|
| +bool PatternStringType(const CFX_ByteStringC& szPattern,
|
| + uint32_t& patternType) {
|
| + CFX_WideString wsPattern = CFX_WideString::FromUTF8(szPattern);
|
| + if (FX_WSTRC(L"datetime") == wsPattern.Left(8)) {
|
| + patternType = XFA_VT_DATETIME;
|
| + return true;
|
| + }
|
| + if (FX_WSTRC(L"date") == wsPattern.Left(4)) {
|
| + patternType = wsPattern.Find(L"time") > 0 ? XFA_VT_DATETIME : XFA_VT_DATE;
|
| + return true;
|
| + }
|
| + if (FX_WSTRC(L"time") == wsPattern.Left(4)) {
|
| + patternType = XFA_VT_TIME;
|
| + return true;
|
| + }
|
| + if (FX_WSTRC(L"text") == wsPattern.Left(4)) {
|
| + patternType = XFA_VT_TEXT;
|
| + return true;
|
| + }
|
| + if (FX_WSTRC(L"num") == wsPattern.Left(3)) {
|
| + if (FX_WSTRC(L"integer") == wsPattern.Mid(4, 7)) {
|
| + patternType = XFA_VT_INTEGER;
|
| + } else if (FX_WSTRC(L"decimal") == wsPattern.Mid(4, 7)) {
|
| + patternType = XFA_VT_DECIMAL;
|
| + } else if (FX_WSTRC(L"currency") == wsPattern.Mid(4, 8)) {
|
| + patternType = XFA_VT_FLOAT;
|
| + } else if (FX_WSTRC(L"percent") == wsPattern.Mid(4, 7)) {
|
| + patternType = XFA_VT_FLOAT;
|
| + } else {
|
| + patternType = XFA_VT_FLOAT;
|
| + }
|
| + return true;
|
| + }
|
| +
|
| + patternType = XFA_VT_NULL;
|
| + wsPattern.MakeLower();
|
| + const FX_WCHAR* pData = wsPattern.c_str();
|
| + int32_t iLength = wsPattern.GetLength();
|
| + int32_t iIndex = 0;
|
| + FX_BOOL bSingleQuotation = FALSE;
|
| + FX_WCHAR patternChar;
|
| + while (iIndex < iLength) {
|
| + patternChar = *(pData + iIndex);
|
| + if (patternChar == 0x27) {
|
| + bSingleQuotation = !bSingleQuotation;
|
| + } else if (!bSingleQuotation &&
|
| + (patternChar == 'y' || patternChar == 'j')) {
|
| + patternType = XFA_VT_DATE;
|
| + iIndex++;
|
| + FX_WCHAR timePatternChar;
|
| + while (iIndex < iLength) {
|
| + timePatternChar = *(pData + iIndex);
|
| + if (timePatternChar == 0x27) {
|
| + bSingleQuotation = !bSingleQuotation;
|
| + } else if (!bSingleQuotation && timePatternChar == 't') {
|
| + patternType = XFA_VT_DATETIME;
|
| + break;
|
| + }
|
| + iIndex++;
|
| + }
|
| + break;
|
| + } else if (!bSingleQuotation &&
|
| + (patternChar == 'h' || patternChar == 'k')) {
|
| + patternType = XFA_VT_TIME;
|
| + break;
|
| + } else if (!bSingleQuotation &&
|
| + (patternChar == 'a' || patternChar == 'x' ||
|
| + patternChar == 'o' || patternChar == '0')) {
|
| + patternType = XFA_VT_TEXT;
|
| + if (patternChar == 'x' || patternChar == 'o' || patternChar == '0') {
|
| + break;
|
| + }
|
| + } else if (!bSingleQuotation &&
|
| + (patternChar == 'z' || patternChar == 's' ||
|
| + patternChar == 'e' || patternChar == 'v' ||
|
| + patternChar == '8' || patternChar == ',' ||
|
| + patternChar == '.' || patternChar == '$')) {
|
| + patternType = XFA_VT_FLOAT;
|
| + if (patternChar == 'v' || patternChar == '8' || patternChar == '$') {
|
| + break;
|
| + }
|
| + }
|
| + iIndex++;
|
| + }
|
| + if (patternType == XFA_VT_NULL) {
|
| + patternType = XFA_VT_TEXT | XFA_VT_FLOAT;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| } // namespace
|
|
|
| +// static
|
| void CXFA_FM2JSContext::Abs(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -428,6 +519,8 @@ void CXFA_FM2JSContext::Abs(CFXJSE_Value* pThis,
|
| L"Abs");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Avg(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -497,11 +590,11 @@ void CXFA_FM2JSContext::Avg(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetDouble(args.GetReturnValue(), dSum / uCount);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0);
|
| if (ValueIsNull(pThis, argValue.get())) {
|
| @@ -511,19 +604,22 @@ void CXFA_FM2JSContext::Ceil(CFXJSE_Value* pThis,
|
| FXSYS_ceil(ValueToFloat(pThis, argValue.get())));
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Ceil");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Count(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| - int32_t argc = args.GetLength();
|
| uint32_t uCount = 0;
|
| - for (int32_t i = 0; i < argc; i++) {
|
| + for (int32_t i = 0; i < args.GetLength(); i++) {
|
| std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i);
|
| if (FXJSE_Value_IsNull(argValue.get())) {
|
| continue;
|
| @@ -576,11 +672,11 @@ void CXFA_FM2JSContext::Count(CFXJSE_Value* pThis,
|
| }
|
| FXJSE_Value_SetInteger(args.GetReturnValue(), (int32_t)uCount);
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argValue = GetSimpleValue(pThis, args, 0);
|
| if (ValueIsNull(pThis, argValue.get())) {
|
| @@ -590,20 +686,23 @@ void CXFA_FM2JSContext::Floor(CFXJSE_Value* pThis,
|
| FXSYS_floor(ValueToFloat(pThis, argValue.get())));
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Floor");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Max(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| - int32_t argc = args.GetLength();
|
| uint32_t uCount = 0;
|
| FX_DOUBLE dMaxValue = 0.0;
|
| - for (int32_t i = 0; i < argc; i++) {
|
| + for (int32_t i = 0; i < args.GetLength(); i++) {
|
| std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i);
|
| if (FXJSE_Value_IsNull(argValue.get())) {
|
| continue;
|
| @@ -695,16 +794,17 @@ void CXFA_FM2JSContext::Max(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetNull(args.GetReturnValue());
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Min(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| - int32_t argc = args.GetLength();
|
| uint32_t uCount = 0;
|
| FX_DOUBLE dMinValue = 0.0;
|
| - for (int32_t i = 0; i < argc; i++) {
|
| + for (int32_t i = 0; i < args.GetLength(); i++) {
|
| std::unique_ptr<CFXJSE_Value> argValue = args.GetValue(i);
|
| if (FXJSE_Value_IsNull(argValue.get())) {
|
| continue;
|
| @@ -795,6 +895,8 @@ void CXFA_FM2JSContext::Min(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetNull(args.GetReturnValue());
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -880,6 +982,8 @@ void CXFA_FM2JSContext::Mod(CFXJSE_Value* pThis,
|
| L"Mod");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -984,6 +1088,8 @@ void CXFA_FM2JSContext::Round(CFXJSE_Value* pThis,
|
| L"Round");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Sum(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1060,6 +1166,8 @@ void CXFA_FM2JSContext::Sum(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetDouble(args.GetReturnValue(), dSum);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1084,6 +1192,8 @@ void CXFA_FM2JSContext::Date(CFXJSE_Value* pThis,
|
| L"Date");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1137,6 +1247,8 @@ void CXFA_FM2JSContext::Date2Num(CFXJSE_Value* pThis,
|
| L"Date2Num");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1180,6 +1292,8 @@ void CXFA_FM2JSContext::DateFmt(CFXJSE_Value* pThis,
|
| L"Date2Num");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1200,6 +1314,8 @@ void CXFA_FM2JSContext::IsoDate2Num(CFXJSE_Value* pThis,
|
| L"IsoDate2Num");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1255,6 +1371,8 @@ void CXFA_FM2JSContext::IsoTime2Num(CFXJSE_Value* pThis,
|
| L"IsoTime2Num");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::LocalDateFmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1298,6 +1416,8 @@ void CXFA_FM2JSContext::LocalDateFmt(CFXJSE_Value* pThis,
|
| L"LocalDateFmt");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1341,6 +1461,8 @@ void CXFA_FM2JSContext::LocalTimeFmt(CFXJSE_Value* pThis,
|
| L"LocalTimeFmt");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1488,6 +1610,8 @@ void CXFA_FM2JSContext::Num2Date(CFXJSE_Value* pThis,
|
| L"Num2Date");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1542,6 +1666,8 @@ void CXFA_FM2JSContext::Num2GMTime(CFXJSE_Value* pThis,
|
| L"Num2GMTime");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1596,6 +1722,8 @@ void CXFA_FM2JSContext::Num2Time(CFXJSE_Value* pThis,
|
| L"Num2Time");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1615,6 +1743,8 @@ void CXFA_FM2JSContext::Time(CFXJSE_Value* pThis,
|
| L"Time");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1652,7 +1782,7 @@ void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis,
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| CXFA_Document* pDoc = pContext->GetDocument();
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (localString.IsEmpty()) {
|
| CXFA_Node* pThisNode =
|
| ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| @@ -1711,6 +1841,8 @@ void CXFA_FM2JSContext::Time2Num(CFXJSE_Value* pThis,
|
| L"Time2Num");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -1754,6 +1886,8 @@ void CXFA_FM2JSContext::TimeFmt(CFXJSE_Value* pThis,
|
| L"TimeFmt");
|
| }
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData,
|
| int32_t iLength,
|
| int32_t& iStyle,
|
| @@ -1873,6 +2007,8 @@ FX_BOOL CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData,
|
| iRet = TRUE;
|
| return iRet;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::IsIsoTimeFormat(const FX_CHAR* pData,
|
| int32_t iLength,
|
| int32_t& iHour,
|
| @@ -2021,6 +2157,8 @@ FX_BOOL CXFA_FM2JSContext::IsIsoTimeFormat(const FX_CHAR* pData,
|
| iRet = TRUE;
|
| return iRet;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::IsIsoDateTimeFormat(const FX_CHAR* pData,
|
| int32_t iLength,
|
| int32_t& iYear,
|
| @@ -2073,6 +2211,8 @@ FX_BOOL CXFA_FM2JSContext::IsIsoDateTimeFormat(const FX_CHAR* pData,
|
| iRet = TRUE;
|
| return iRet;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::Local2IsoDate(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szDate,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2085,7 +2225,7 @@ FX_BOOL CXFA_FM2JSContext::Local2IsoDate(CFXJSE_Value* pThis,
|
| return FALSE;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocale.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2109,6 +2249,8 @@ FX_BOOL CXFA_FM2JSContext::Local2IsoDate(CFXJSE_Value* pThis,
|
| strIsoDate.Format("%4d-%02d-%02d", dt.GetYear(), dt.GetMonth(), dt.GetDay());
|
| return TRUE;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::Local2IsoTime(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szTime,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2121,7 +2263,7 @@ FX_BOOL CXFA_FM2JSContext::Local2IsoTime(CFXJSE_Value* pThis,
|
| return FALSE;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocale.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2148,6 +2290,8 @@ FX_BOOL CXFA_FM2JSContext::Local2IsoTime(CFXJSE_Value* pThis,
|
| utime.GetSecond(), utime.GetMillisecond());
|
| return TRUE;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::IsoDate2Local(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szDate,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2160,7 +2304,7 @@ FX_BOOL CXFA_FM2JSContext::IsoDate2Local(CFXJSE_Value* pThis,
|
| return FALSE;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocale.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2186,6 +2330,8 @@ FX_BOOL CXFA_FM2JSContext::IsoDate2Local(CFXJSE_Value* pThis,
|
| strLocalDate = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength());
|
| return TRUE;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::IsoTime2Local(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szTime,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2198,7 +2344,7 @@ FX_BOOL CXFA_FM2JSContext::IsoTime2Local(CFXJSE_Value* pThis,
|
| return FALSE;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocale.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2226,6 +2372,8 @@ FX_BOOL CXFA_FM2JSContext::IsoTime2Local(CFXJSE_Value* pThis,
|
| strLocalTime = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength());
|
| return TRUE;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::GetGMTTime(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szTime,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2238,7 +2386,7 @@ FX_BOOL CXFA_FM2JSContext::GetGMTTime(CFXJSE_Value* pThis,
|
| return FALSE;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocale.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2266,6 +2414,8 @@ FX_BOOL CXFA_FM2JSContext::GetGMTTime(CFXJSE_Value* pThis,
|
| strGMTTime = FX_UTF8Encode(wsRet.c_str(), wsRet.GetLength());
|
| return TRUE;
|
| }
|
| +
|
| +// static
|
| int32_t CXFA_FM2JSContext::DateString2Num(const CFX_ByteStringC& szDateString) {
|
| FX_BOOL bFlags = FALSE;
|
| int32_t iLength = szDateString.GetLength();
|
| @@ -2339,6 +2489,7 @@ int32_t CXFA_FM2JSContext::DateString2Num(const CFX_ByteStringC& szDateString) {
|
| return (int32_t)dDays;
|
| }
|
|
|
| +// static
|
| void CXFA_FM2JSContext::GetLocalDateFormat(CFXJSE_Value* pThis,
|
| int32_t iStyle,
|
| const CFX_ByteStringC& szLocalStr,
|
| @@ -2372,7 +2523,7 @@ void CXFA_FM2JSContext::GetLocalDateFormat(CFXJSE_Value* pThis,
|
| return;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocalStr.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2393,6 +2544,8 @@ void CXFA_FM2JSContext::GetLocalDateFormat(CFXJSE_Value* pThis,
|
| }
|
| strFormat = FX_UTF8Encode(strRet.c_str(), strRet.GetLength());
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::GetLocalTimeFormat(CFXJSE_Value* pThis,
|
| int32_t iStyle,
|
| const CFX_ByteStringC& szLocalStr,
|
| @@ -2426,7 +2579,7 @@ void CXFA_FM2JSContext::GetLocalTimeFormat(CFXJSE_Value* pThis,
|
| return;
|
| }
|
| IFX_LocaleMgr* pMgr = (IFX_LocaleMgr*)pDoc->GetLocalMgr();
|
| - IFX_Locale* pLocale = NULL;
|
| + IFX_Locale* pLocale = nullptr;
|
| if (szLocalStr.IsEmpty()) {
|
| CXFA_Node* pThisNode = ToNode(pDoc->GetScriptContext()->GetThisObject());
|
| ASSERT(pThisNode);
|
| @@ -2447,18 +2600,24 @@ void CXFA_FM2JSContext::GetLocalTimeFormat(CFXJSE_Value* pThis,
|
| }
|
| strFormat = FX_UTF8Encode(strRet.c_str(), strRet.GetLength());
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::GetStandardDateFormat(CFXJSE_Value* pThis,
|
| int32_t iStyle,
|
| const CFX_ByteStringC& szLocalStr,
|
| CFX_ByteString& strFormat) {
|
| GetLocalDateFormat(pThis, iStyle, szLocalStr, strFormat, TRUE);
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::GetStandardTimeFormat(CFXJSE_Value* pThis,
|
| int32_t iStyle,
|
| const CFX_ByteStringC& szLocalStr,
|
| CFX_ByteString& strFormat) {
|
| GetLocalTimeFormat(pThis, iStyle, szLocalStr, strFormat, TRUE);
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Num2AllTime(CFXJSE_Value* pThis,
|
| int32_t iTime,
|
| const CFX_ByteStringC& szFormat,
|
| @@ -2495,6 +2654,7 @@ void CXFA_FM2JSContext::Num2AllTime(CFXJSE_Value* pThis,
|
| }
|
| }
|
|
|
| +// static
|
| void CXFA_FM2JSContext::GetLocalTimeZone(int32_t& iHour,
|
| int32_t& iMin,
|
| int32_t& iSec) {
|
| @@ -2512,6 +2672,8 @@ void CXFA_FM2JSContext::GetLocalTimeZone(int32_t& iHour,
|
| iMin = iLocalMin - iGMMin;
|
| iSec = iLocalSec - iGMSec;
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Apr(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2545,8 +2707,7 @@ void CXFA_FM2JSContext::Apr(CFXJSE_Value* pThis,
|
| nTemp *= (1 + r);
|
| }
|
| FX_DOUBLE nRet = r * nTemp / (nTemp - 1) - nPayment / nPrincipal;
|
| - while ((nRet > FINANCIAL_PRECISION || nRet < -FINANCIAL_PRECISION) &&
|
| - (!bFlags)) {
|
| + while (fabs(nRet) > kFinancialPrecision && !bFlags) {
|
| FX_DOUBLE nDerivative = 0;
|
| nDerivative =
|
| ((nTemp + r * nPeriods * (nTemp / (1 + r))) * (nTemp - 1) -
|
| @@ -2576,6 +2737,8 @@ void CXFA_FM2JSContext::Apr(CFXJSE_Value* pThis,
|
| L"Apr");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2612,6 +2775,8 @@ void CXFA_FM2JSContext::CTerm(CFXJSE_Value* pThis,
|
| L"CTerm");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2656,6 +2821,8 @@ void CXFA_FM2JSContext::FV(CFXJSE_Value* pThis,
|
| L"FV");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2726,6 +2893,8 @@ void CXFA_FM2JSContext::IPmt(CFXJSE_Value* pThis,
|
| L"IPmt");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2773,6 +2942,8 @@ void CXFA_FM2JSContext::NPV(CFXJSE_Value* pThis,
|
| L"NPV");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2814,6 +2985,8 @@ void CXFA_FM2JSContext::Pmt(CFXJSE_Value* pThis,
|
| L"Pmt");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2885,6 +3058,8 @@ void CXFA_FM2JSContext::PPmt(CFXJSE_Value* pThis,
|
| L"PPmt");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2925,6 +3100,8 @@ void CXFA_FM2JSContext::PV(CFXJSE_Value* pThis,
|
| L"PV");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2962,6 +3139,8 @@ void CXFA_FM2JSContext::Rate(CFXJSE_Value* pThis,
|
| L"Rate");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -2999,6 +3178,8 @@ void CXFA_FM2JSContext::Term(CFXJSE_Value* pThis,
|
| L"Term");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3085,6 +3266,8 @@ void CXFA_FM2JSContext::Choose(CFXJSE_Value* pThis,
|
| L"Choose");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3099,6 +3282,8 @@ void CXFA_FM2JSContext::Exists(CFXJSE_Value* pThis,
|
| L"Exists");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3122,11 +3307,12 @@ void CXFA_FM2JSContext::HasValue(CFXJSE_Value* pThis,
|
| L"HasValue");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t argc = args.GetLength();
|
| - if (argc > 1) {
|
| + if (args.GetLength() > 1) {
|
| FX_BOOL bFlags = FALSE;
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| CFXJSE_Value** parametersValue = nullptr;
|
| @@ -3150,11 +3336,12 @@ void CXFA_FM2JSContext::Oneof(CFXJSE_Value* pThis,
|
| L"Oneof");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 3) {
|
| + if (args.GetLength() == 3) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (FXJSE_Value_IsNull(argOne.get())) {
|
| FXJSE_Value_SetUndefined(args.GetReturnValue());
|
| @@ -3188,6 +3375,8 @@ void CXFA_FM2JSContext::Within(CFXJSE_Value* pThis,
|
| L"Within");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::If(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3207,6 +3396,8 @@ void CXFA_FM2JSContext::If(CFXJSE_Value* pThis,
|
| L"If");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3242,6 +3433,8 @@ void CXFA_FM2JSContext::Eval(CFXJSE_Value* pThis,
|
| L"Eval");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3314,6 +3507,8 @@ void CXFA_FM2JSContext::Ref(CFXJSE_Value* pThis,
|
| L"Ref");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::UnitType(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3430,6 +3625,8 @@ void CXFA_FM2JSContext::UnitType(CFXJSE_Value* pThis,
|
| L"UnitType");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -3460,7 +3657,7 @@ void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis,
|
| }
|
| ++u;
|
| }
|
| - FX_CHAR* pTemp = NULL;
|
| + FX_CHAR* pTemp = nullptr;
|
| dFirstNumber = strtod(pData, &pTemp);
|
| while (*(pData + u) == ' ' || *(pData + u) == 0x09 ||
|
| *(pData + u) == 0x0B || *(pData + u) == 0x0C ||
|
| @@ -3586,11 +3783,11 @@ void CXFA_FM2JSContext::UnitValue(CFXJSE_Value* pThis,
|
| L"UnitValue");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::At(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 2) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1);
|
| @@ -3609,15 +3806,17 @@ void CXFA_FM2JSContext::At(CFXJSE_Value* pThis,
|
| }
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"At");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| int32_t argc = args.GetLength();
|
| if (argc >= 1) {
|
| CFX_ByteString resultString;
|
| @@ -3640,15 +3839,17 @@ void CXFA_FM2JSContext::Concat(CFXJSE_Value* pThis,
|
| resultString.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Concat");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| int32_t argc = args.GetLength();
|
| if (argc == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| @@ -3682,10 +3883,14 @@ void CXFA_FM2JSContext::Decode(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Decode");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString,
|
| CFX_ByteTextBuf& szResultString) {
|
| CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString);
|
| @@ -3741,6 +3946,8 @@ void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString,
|
| wsResultBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::DecodeHTML(const CFX_ByteStringC& szHTMLString,
|
| CFX_ByteTextBuf& szResultString) {
|
| CFX_WideString wsHTMLString = CFX_WideString::FromUTF8(szHTMLString);
|
| @@ -3815,6 +4022,8 @@ void CXFA_FM2JSContext::DecodeHTML(const CFX_ByteStringC& szHTMLString,
|
| wsResultBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::DecodeXML(const CFX_ByteStringC& szXMLString,
|
| CFX_ByteTextBuf& szResultString) {
|
| CFX_WideString wsXMLString = CFX_WideString::FromUTF8(szXMLString);
|
| @@ -3912,11 +4121,11 @@ void CXFA_FM2JSContext::DecodeXML(const CFX_ByteStringC& szXMLString,
|
| szResultString << FX_UTF8Encode(wsXMLBuf.GetBuffer(), wsXMLBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Encode(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| int32_t argc = args.GetLength();
|
| if (argc == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| @@ -3950,10 +4159,14 @@ void CXFA_FM2JSContext::Encode(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetUTF8String(args.GetReturnValue(), resultBuf.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Encode");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString,
|
| CFX_ByteTextBuf& szResultBuf) {
|
| CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString);
|
| @@ -4061,6 +4274,8 @@ void CXFA_FM2JSContext::EncodeURL(const CFX_ByteStringC& szURLString,
|
| szResultBuf << FX_UTF8Encode(wsResultBuf.GetBuffer(), wsResultBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::EncodeHTML(const CFX_ByteStringC& szHTMLString,
|
| CFX_ByteTextBuf& szResultBuf) {
|
| CFX_ByteString str = szHTMLString.c_str();
|
| @@ -4115,6 +4330,8 @@ void CXFA_FM2JSContext::EncodeHTML(const CFX_ByteStringC& szHTMLString,
|
| szResultBuf << FX_UTF8Encode(wsResultBuf.GetBuffer(), wsResultBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::EncodeXML(const CFX_ByteStringC& szXMLString,
|
| CFX_ByteTextBuf& szResultBuf) {
|
| CFX_WideString wsXMLString = CFX_WideString::FromUTF8(szXMLString);
|
| @@ -4196,6 +4413,8 @@ void CXFA_FM2JSContext::EncodeXML(const CFX_ByteStringC& szXMLString,
|
| szResultBuf << FX_UTF8Encode(wsResultBuf.GetBuffer(), wsResultBuf.GetLength())
|
| .AsStringC();
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::HTMLSTR2Code(const CFX_WideStringC& pData,
|
| uint32_t& iCode) {
|
| uint32_t uHash = FX_HashCode_GetW(pData, false);
|
| @@ -4216,6 +4435,8 @@ FX_BOOL CXFA_FM2JSContext::HTMLSTR2Code(const CFX_WideStringC& pData,
|
| } while (iStart <= iEnd);
|
| return FALSE;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::HTMLCode2STR(uint32_t iCode,
|
| CFX_WideString& wsHTMLReserve) {
|
| XFA_FMHtmlReserveCode htmlreservecode;
|
| @@ -4236,97 +4457,14 @@ FX_BOOL CXFA_FM2JSContext::HTMLCode2STR(uint32_t iCode,
|
| } while (iStart <= iEnd);
|
| return FALSE;
|
| }
|
| -static FX_BOOL XFA_PATTERN_STRING_Type(const CFX_ByteStringC& szPattern,
|
| - uint32_t& patternType) {
|
| - CFX_WideString wsPattern = CFX_WideString::FromUTF8(szPattern);
|
| - if (FX_WSTRC(L"datetime") == wsPattern.Left(8)) {
|
| - patternType = XFA_VT_DATETIME;
|
| - return TRUE;
|
| - } else if (FX_WSTRC(L"date") == wsPattern.Left(4)) {
|
| - patternType = wsPattern.Find(L"time") > 0 ? XFA_VT_DATETIME : XFA_VT_DATE;
|
| - return TRUE;
|
| - } else if (FX_WSTRC(L"time") == wsPattern.Left(4)) {
|
| - patternType = XFA_VT_TIME;
|
| - return TRUE;
|
| - } else if (FX_WSTRC(L"text") == wsPattern.Left(4)) {
|
| - patternType = XFA_VT_TEXT;
|
| - return TRUE;
|
| - } else if (FX_WSTRC(L"num") == wsPattern.Left(3)) {
|
| - if (FX_WSTRC(L"integer") == wsPattern.Mid(4, 7)) {
|
| - patternType = XFA_VT_INTEGER;
|
| - } else if (FX_WSTRC(L"decimal") == wsPattern.Mid(4, 7)) {
|
| - patternType = XFA_VT_DECIMAL;
|
| - } else if (FX_WSTRC(L"currency") == wsPattern.Mid(4, 8)) {
|
| - patternType = XFA_VT_FLOAT;
|
| - } else if (FX_WSTRC(L"percent") == wsPattern.Mid(4, 7)) {
|
| - patternType = XFA_VT_FLOAT;
|
| - } else {
|
| - patternType = XFA_VT_FLOAT;
|
| - }
|
| - return TRUE;
|
| - }
|
| - patternType = XFA_VT_NULL;
|
| - wsPattern.MakeLower();
|
| - const FX_WCHAR* pData = wsPattern.c_str();
|
| - int32_t iLength = wsPattern.GetLength();
|
| - int32_t iIndex = 0;
|
| - FX_BOOL bSingleQuotation = FALSE;
|
| - FX_WCHAR patternChar;
|
| - while (iIndex < iLength) {
|
| - patternChar = *(pData + iIndex);
|
| - if (patternChar == 0x27) {
|
| - bSingleQuotation = !bSingleQuotation;
|
| - } else if (!bSingleQuotation &&
|
| - (patternChar == 'y' || patternChar == 'j')) {
|
| - patternType = XFA_VT_DATE;
|
| - iIndex++;
|
| - FX_WCHAR timePatternChar;
|
| - while (iIndex < iLength) {
|
| - timePatternChar = *(pData + iIndex);
|
| - if (timePatternChar == 0x27) {
|
| - bSingleQuotation = !bSingleQuotation;
|
| - } else if (!bSingleQuotation && timePatternChar == 't') {
|
| - patternType = XFA_VT_DATETIME;
|
| - break;
|
| - }
|
| - iIndex++;
|
| - }
|
| - break;
|
| - } else if (!bSingleQuotation &&
|
| - (patternChar == 'h' || patternChar == 'k')) {
|
| - patternType = XFA_VT_TIME;
|
| - break;
|
| - } else if (!bSingleQuotation &&
|
| - (patternChar == 'a' || patternChar == 'x' ||
|
| - patternChar == 'o' || patternChar == '0')) {
|
| - patternType = XFA_VT_TEXT;
|
| - if (patternChar == 'x' || patternChar == 'o' || patternChar == '0') {
|
| - break;
|
| - }
|
| - } else if (!bSingleQuotation &&
|
| - (patternChar == 'z' || patternChar == 's' ||
|
| - patternChar == 'e' || patternChar == 'v' ||
|
| - patternChar == '8' || patternChar == ',' ||
|
| - patternChar == '.' || patternChar == '$')) {
|
| - patternType = XFA_VT_FLOAT;
|
| - if (patternChar == 'v' || patternChar == '8' || patternChar == '$') {
|
| - break;
|
| - }
|
| - }
|
| - iIndex++;
|
| - }
|
| - if (patternType == XFA_VT_NULL) {
|
| - patternType = XFA_VT_TEXT | XFA_VT_FLOAT;
|
| - }
|
| - return FALSE;
|
| -}
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Format(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| - int32_t argc = args.GetLength();
|
| - if (argc >= 2) {
|
| + if (args.GetLength() >= 2) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1);
|
| CFX_ByteString szPattern;
|
| @@ -4340,11 +4478,9 @@ void CXFA_FM2JSContext::Format(CFXJSE_Value* pThis,
|
| CXFA_WidgetData widgetData(pThisNode);
|
| IFX_Locale* pLocale = widgetData.GetLocal();
|
| uint32_t patternType;
|
| - FX_BOOL bCompelte =
|
| - XFA_PATTERN_STRING_Type(szPattern.AsStringC(), patternType);
|
| CFX_WideString wsPattern = CFX_WideString::FromUTF8(szPattern.AsStringC());
|
| CFX_WideString wsValue = CFX_WideString::FromUTF8(szValue.AsStringC());
|
| - if (!bCompelte) {
|
| + if (!PatternStringType(szPattern.AsStringC(), patternType)) {
|
| switch (patternType) {
|
| case XFA_VT_DATETIME: {
|
| FX_STRSIZE iTChar = wsPattern.Find(L'T');
|
| @@ -4406,11 +4542,11 @@ void CXFA_FM2JSContext::Format(CFXJSE_Value* pThis,
|
| L"Format");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Left(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 2) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1);
|
| @@ -4432,15 +4568,17 @@ void CXFA_FM2JSContext::Left(CFXJSE_Value* pThis,
|
| sourceString.Left(count).AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Left");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (ValueIsNull(pThis, argOne.get())) {
|
| @@ -4451,10 +4589,14 @@ void CXFA_FM2JSContext::Len(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetInteger(args.GetReturnValue(), sourceString.GetLength());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Len");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -4498,11 +4640,11 @@ void CXFA_FM2JSContext::Lower(CFXJSE_Value* pThis,
|
| L"Lower");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (ValueIsNull(pThis, argOne.get())) {
|
| @@ -4515,10 +4657,14 @@ void CXFA_FM2JSContext::Ltrim(CFXJSE_Value* pThis,
|
| sourceString.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Ltrim");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -4541,13 +4687,11 @@ void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis,
|
| CXFA_WidgetData widgetData(pThisNode);
|
| IFX_Locale* pLocale = widgetData.GetLocal();
|
| uint32_t patternType;
|
| - FX_BOOL bCompletePattern =
|
| - XFA_PATTERN_STRING_Type(szPattern.AsStringC(), patternType);
|
| CFX_WideString wsPattern =
|
| CFX_WideString::FromUTF8(szPattern.AsStringC());
|
| CFX_WideString wsValue = CFX_WideString::FromUTF8(szValue.AsStringC());
|
| CFX_ByteString szParsedValue;
|
| - if (bCompletePattern) {
|
| + if (PatternStringType(szPattern.AsStringC(), patternType)) {
|
| CXFA_LocaleValue localeValue(patternType, wsValue, wsPattern, pLocale,
|
| (CXFA_LocaleMgr*)pMgr);
|
| if (localeValue.IsValid()) {
|
| @@ -4660,6 +4804,8 @@ void CXFA_FM2JSContext::Parse(CFXJSE_Value* pThis,
|
| L"Parse");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Replace(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -4720,11 +4866,11 @@ void CXFA_FM2JSContext::Replace(CFXJSE_Value* pThis,
|
| L"Replace");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 2) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| std::unique_ptr<CFXJSE_Value> argTwo = GetSimpleValue(pThis, args, 1);
|
| @@ -4746,15 +4892,17 @@ void CXFA_FM2JSContext::Right(CFXJSE_Value* pThis,
|
| sourceString.Right(count).AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Right");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (ValueIsNull(pThis, argOne.get())) {
|
| @@ -4767,15 +4915,17 @@ void CXFA_FM2JSContext::Rtrim(CFXJSE_Value* pThis,
|
| sourceString.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Rtrim");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (FXJSE_Value_IsNull(argOne.get())) {
|
| @@ -4794,10 +4944,14 @@ void CXFA_FM2JSContext::Space(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetUTF8String(args.GetReturnValue(), spaceString.AsStringC());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD,
|
| L"Space");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -4916,6 +5070,8 @@ void CXFA_FM2JSContext::Str(CFXJSE_Value* pThis,
|
| L"Str");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -4973,11 +5129,12 @@ void CXFA_FM2JSContext::Stuff(CFXJSE_Value* pThis,
|
| L"Stuff");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 3) {
|
| + if (args.GetLength() == 3) {
|
| std::unique_ptr<CFXJSE_Value> stringValue = GetSimpleValue(pThis, args, 0);
|
| std::unique_ptr<CFXJSE_Value> startValue = GetSimpleValue(pThis, args, 1);
|
| std::unique_ptr<CFXJSE_Value> endValue = GetSimpleValue(pThis, args, 2);
|
| @@ -5017,6 +5174,8 @@ void CXFA_FM2JSContext::Substr(CFXJSE_Value* pThis,
|
| L"Substr");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5039,6 +5198,8 @@ void CXFA_FM2JSContext::Uuid(CFXJSE_Value* pThis,
|
| L"Uuid");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5082,6 +5243,8 @@ void CXFA_FM2JSContext::Upper(CFXJSE_Value* pThis,
|
| L"Upper");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5135,6 +5298,8 @@ void CXFA_FM2JSContext::WordNum(CFXJSE_Value* pThis,
|
| L"WordNum");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData,
|
| CFX_ByteTextBuf& strBuf) {
|
| CFX_ByteStringC pUnits[] = {"zero", "one", "two", "three", "four",
|
| @@ -5232,6 +5397,8 @@ void CXFA_FM2JSContext::TrillionUS(const CFX_ByteStringC& szData,
|
| iIndex += 3;
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::WordUS(const CFX_ByteStringC& szData,
|
| int32_t iStyle,
|
| CFX_ByteTextBuf& strBuf) {
|
| @@ -5330,13 +5497,14 @@ void CXFA_FM2JSContext::WordUS(const CFX_ByteStringC& szData,
|
| break;
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Get(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 1) {
|
| + if (args.GetLength() == 1) {
|
| CXFA_Document* pDoc = pContext->GetDocument();
|
| if (!pDoc) {
|
| return;
|
| @@ -5365,6 +5533,8 @@ void CXFA_FM2JSContext::Get(CFXJSE_Value* pThis,
|
| L"Get");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5422,6 +5592,8 @@ void CXFA_FM2JSContext::Post(CFXJSE_Value* pThis,
|
| L"Post");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5463,6 +5635,8 @@ void CXFA_FM2JSContext::Put(CFXJSE_Value* pThis,
|
| L"Put");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5509,6 +5683,8 @@ void CXFA_FM2JSContext::assign_value_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::logical_or_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5529,6 +5705,8 @@ void CXFA_FM2JSContext::logical_or_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5549,6 +5727,8 @@ void CXFA_FM2JSContext::logical_and_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5586,6 +5766,8 @@ void CXFA_FM2JSContext::equality_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5622,6 +5804,8 @@ void CXFA_FM2JSContext::notequality_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis,
|
| CFXJSE_Arguments& args) {
|
| FX_BOOL bRet = FALSE;
|
| @@ -5644,13 +5828,15 @@ FX_BOOL CXFA_FM2JSContext::fm_ref_equal(CFXJSE_Value* pThis,
|
| FXJSE_Value_GetObjectPropByIdx(argSecond.get(), 2, secondJSObject.get());
|
| if (!FXJSE_Value_IsNull(firstJSObject.get()) &&
|
| !FXJSE_Value_IsNull(secondJSObject.get())) {
|
| - bRet = (FXJSE_Value_ToObject(firstJSObject.get(), NULL) ==
|
| - FXJSE_Value_ToObject(secondJSObject.get(), NULL));
|
| + bRet = (FXJSE_Value_ToObject(firstJSObject.get(), nullptr) ==
|
| + FXJSE_Value_ToObject(secondJSObject.get(), nullptr));
|
| }
|
| }
|
| }
|
| return bRet;
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::less_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5680,6 +5866,8 @@ void CXFA_FM2JSContext::less_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5713,6 +5901,8 @@ void CXFA_FM2JSContext::lessequal_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5742,6 +5932,8 @@ void CXFA_FM2JSContext::greater_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5775,6 +5967,8 @@ void CXFA_FM2JSContext::greaterequal_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5795,6 +5989,8 @@ void CXFA_FM2JSContext::plus_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5815,6 +6011,8 @@ void CXFA_FM2JSContext::minus_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5835,6 +6033,8 @@ void CXFA_FM2JSContext::multiple_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -5859,11 +6059,12 @@ void CXFA_FM2JSContext::divide_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::positive_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (FXJSE_Value_IsNull(argOne.get())) {
|
| FXJSE_Value_SetNull(args.GetReturnValue());
|
| @@ -5877,11 +6078,12 @@ void CXFA_FM2JSContext::positive_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (FXJSE_Value_IsNull(argOne.get())) {
|
| FXJSE_Value_SetNull(args.GetReturnValue());
|
| @@ -5895,11 +6097,12 @@ void CXFA_FM2JSContext::negative_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| if (FXJSE_Value_IsNull(argOne.get())) {
|
| FXJSE_Value_SetNull(args.GetReturnValue());
|
| @@ -5913,6 +6116,8 @@ void CXFA_FM2JSContext::logical_not_operator(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -6060,6 +6265,8 @@ void CXFA_FM2JSContext::dot_accessor(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -6202,13 +6409,14 @@ void CXFA_FM2JSContext::dotdot_accessor(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = GetSimpleValue(pThis, args, 0);
|
| CFX_ByteString argString;
|
| ValueToUTF8String(argOne.get(), argString);
|
| @@ -6235,11 +6443,12 @@ void CXFA_FM2JSContext::eval_translation(CFXJSE_Value* pThis,
|
| L"Eval");
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::is_fm_object(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0);
|
| FXJSE_Value_SetBoolean(args.GetReturnValue(),
|
| FXJSE_Value_IsObject(argOne.get()));
|
| @@ -6247,11 +6456,12 @@ void CXFA_FM2JSContext::is_fm_object(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetBoolean(args.GetReturnValue(), FALSE);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::is_fm_array(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0);
|
| FX_BOOL bIsArray = FXJSE_Value_IsArray(argOne.get());
|
| FXJSE_Value_SetBoolean(args.GetReturnValue(), bIsArray);
|
| @@ -6259,14 +6469,15 @@ void CXFA_FM2JSContext::is_fm_array(CFXJSE_Value* pThis,
|
| FXJSE_Value_SetBoolean(args.GetReturnValue(), FALSE);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::get_fm_value(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| - int32_t iLength = args.GetLength();
|
| - if (iLength == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0);
|
| if (FXJSE_Value_IsArray(argOne.get())) {
|
| std::unique_ptr<CFXJSE_Value> propertyValue(new CFXJSE_Value(pIsolate));
|
| @@ -6290,16 +6501,17 @@ void CXFA_FM2JSContext::get_fm_value(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| - CXFA_FM2JSContext* pContext =
|
| - static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr));
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0);
|
| if (FXJSE_Value_IsArray(argOne.get())) {
|
| #ifndef NDEBUG
|
| + CXFA_FM2JSContext* pContext =
|
| + static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr));
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate));
|
| FXJSE_Value_GetObjectProp(argOne.get(), "length", lengthValue.get());
|
| @@ -6310,17 +6522,20 @@ void CXFA_FM2JSContext::get_fm_jsobj(CFXJSE_Value* pThis,
|
| FXJSE_Value_Set(args.GetReturnValue(), argOne.get());
|
| }
|
| } else {
|
| + CXFA_FM2JSContext* pContext =
|
| + static_cast<CXFA_FM2JSContext*>(FXJSE_Value_ToObject(pThis, nullptr));
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| - int32_t argc = args.GetLength();
|
| - if (argc == 1) {
|
| + if (args.GetLength() == 1) {
|
| std::unique_ptr<CFXJSE_Value> argOne = args.GetValue(0);
|
| if (FXJSE_Value_IsArray(argOne.get())) {
|
| #ifndef NDEBUG
|
| @@ -6364,6 +6579,8 @@ void CXFA_FM2JSContext::fm_var_filter(CFXJSE_Value* pThis,
|
| pContext->ThrowScriptErrorMessage(XFA_IDS_COMPILER_ERROR);
|
| }
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis,
|
| const CFX_ByteStringC& szFuncName,
|
| CFXJSE_Arguments& args) {
|
| @@ -6371,9 +6588,9 @@ void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis,
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| uint32_t iLength = 0;
|
| - int32_t argCount = args.GetLength();
|
| + int32_t argc = args.GetLength();
|
| std::vector<std::unique_ptr<CFXJSE_Value>> argValues;
|
| - for (int32_t i = 0; i < argCount; i++) {
|
| + for (int32_t i = 0; i < argc; i++) {
|
| argValues.push_back(args.GetValue(i));
|
| if (FXJSE_Value_IsArray(argValues[i].get())) {
|
| std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate));
|
| @@ -6389,7 +6606,7 @@ void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis,
|
| returnValues[i] = new CFXJSE_Value(pIsolate);
|
|
|
| int32_t index = 0;
|
| - for (int32_t i = 0; i < argCount; i++) {
|
| + for (int32_t i = 0; i < argc; i++) {
|
| if (FXJSE_Value_IsArray(argValues[i].get())) {
|
| std::unique_ptr<CFXJSE_Value> lengthValue(new CFXJSE_Value(pIsolate));
|
| FXJSE_Value_GetObjectProp(argValues[i].get(), "length",
|
| @@ -6410,6 +6627,8 @@ void CXFA_FM2JSContext::concat_fm_object(CFXJSE_Value* pThis,
|
|
|
| FX_Free(returnValues);
|
| }
|
| +
|
| +// static
|
| std::unique_ptr<CFXJSE_Value> CXFA_FM2JSContext::GetSimpleValue(
|
| CFXJSE_Value* pThis,
|
| CFXJSE_Arguments& args,
|
| @@ -6450,6 +6669,7 @@ std::unique_ptr<CFXJSE_Value> CXFA_FM2JSContext::GetSimpleValue(
|
| }
|
| }
|
|
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::ValueIsNull(CFXJSE_Value* pThis, CFXJSE_Value* arg) {
|
| CXFA_FM2JSContext* pContext =
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| @@ -6494,6 +6714,7 @@ FX_BOOL CXFA_FM2JSContext::ValueIsNull(CFXJSE_Value* pThis, CFXJSE_Value* arg) {
|
| return isNull;
|
| }
|
|
|
| +// static
|
| int32_t CXFA_FM2JSContext::hvalue_get_array_length(CFXJSE_Value* pThis,
|
| CFXJSE_Value* arg) {
|
| CXFA_FM2JSContext* pContext =
|
| @@ -6507,6 +6728,8 @@ int32_t CXFA_FM2JSContext::hvalue_get_array_length(CFXJSE_Value* pThis,
|
| }
|
| return iLength;
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::simpleValueCompare(CFXJSE_Value* pThis,
|
| CFXJSE_Value* firstValue,
|
| CFXJSE_Value* secondValue) {
|
| @@ -6529,6 +6752,8 @@ FX_BOOL CXFA_FM2JSContext::simpleValueCompare(CFXJSE_Value* pThis,
|
| }
|
| return bReturn;
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::unfoldArgs(CFXJSE_Value* pThis,
|
| CFXJSE_Arguments& args,
|
| CFXJSE_Value**& resultValues,
|
| @@ -6539,7 +6764,6 @@ void CXFA_FM2JSContext::unfoldArgs(CFXJSE_Value* pThis,
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| iCount = 0;
|
| int32_t argc = args.GetLength();
|
| -
|
| std::vector<std::unique_ptr<CFXJSE_Value>> argsValue;
|
| for (int32_t i = 0; i < argc - iStart; i++) {
|
| argsValue.push_back(args.GetValue(i + iStart));
|
| @@ -6599,6 +6823,7 @@ void CXFA_FM2JSContext::unfoldArgs(CFXJSE_Value* pThis,
|
| }
|
| }
|
|
|
| +// static
|
| void CXFA_FM2JSContext::GetObjectDefaultValue(CFXJSE_Value* pObjectValue,
|
| CFXJSE_Value* pDefaultValue) {
|
| CXFA_Node* pNode =
|
| @@ -6609,6 +6834,8 @@ void CXFA_FM2JSContext::GetObjectDefaultValue(CFXJSE_Value* pObjectValue,
|
| FXJSE_Value_SetNull(pDefaultValue);
|
| }
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::SetObjectDefaultValue(CFXJSE_Value* pObjectValue,
|
| CFXJSE_Value* hNewValue) {
|
| CXFA_Node* pNode =
|
| @@ -6619,6 +6846,8 @@ FX_BOOL CXFA_FM2JSContext::SetObjectDefaultValue(CFXJSE_Value* pObjectValue,
|
| }
|
| return FALSE;
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::GenerateSomExpression(const CFX_ByteStringC& szName,
|
| int32_t iIndexFlags,
|
| int32_t iIndexValue,
|
| @@ -6648,6 +6877,8 @@ void CXFA_FM2JSContext::GenerateSomExpression(const CFX_ByteStringC& szName,
|
| szSomExp += "]";
|
| }
|
| }
|
| +
|
| +// static
|
| FX_BOOL CXFA_FM2JSContext::GetObjectByName(
|
| CFXJSE_Value* pThis,
|
| CFXJSE_Value* accessorValue,
|
| @@ -6674,6 +6905,8 @@ FX_BOOL CXFA_FM2JSContext::GetObjectByName(
|
| }
|
| return bFlags;
|
| }
|
| +
|
| +// static
|
| int32_t CXFA_FM2JSContext::ResolveObjects(CFXJSE_Value* pThis,
|
| CFXJSE_Value* pRefValue,
|
| const CFX_ByteStringC& bsSomExp,
|
| @@ -6689,7 +6922,7 @@ int32_t CXFA_FM2JSContext::ResolveObjects(CFXJSE_Value* pThis,
|
| return iRet;
|
| }
|
| CXFA_ScriptContext* pScriptContext = pDoc->GetScriptContext();
|
| - CXFA_Object* pNode = NULL;
|
| + CXFA_Object* pNode = nullptr;
|
| uint32_t dFlags = 0UL;
|
| if (bdotAccessor) {
|
| if (FXJSE_Value_IsNull(pRefValue)) {
|
| @@ -6725,6 +6958,8 @@ int32_t CXFA_FM2JSContext::ResolveObjects(CFXJSE_Value* pThis,
|
| resoveNodeRS, dFlags);
|
| return iRet;
|
| }
|
| +
|
| +// static
|
| void CXFA_FM2JSContext::ParseResolveResult(
|
| CFXJSE_Value* pThis,
|
| const XFA_RESOLVENODE_RS& resoveNodeRS,
|
| @@ -6736,7 +6971,7 @@ void CXFA_FM2JSContext::ParseResolveResult(
|
| (CXFA_FM2JSContext*)FXJSE_Value_ToObject(pThis, nullptr);
|
| v8::Isolate* pIsolate = pContext->GetScriptRuntime();
|
| iSize = 0;
|
| - resultValues = NULL;
|
| + resultValues = nullptr;
|
| if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) {
|
| bAttribute = FALSE;
|
| iSize = resoveNodeRS.nodes.GetSize();
|
| @@ -6769,6 +7004,8 @@ void CXFA_FM2JSContext::ParseResolveResult(
|
| }
|
| }
|
| }
|
| +
|
| +// static
|
| int32_t CXFA_FM2JSContext::ValueToInteger(CFXJSE_Value* pThis,
|
| CFXJSE_Value* pValue) {
|
| CXFA_FM2JSContext* pContext =
|
| @@ -6805,10 +7042,8 @@ int32_t CXFA_FM2JSContext::ValueToInteger(CFXJSE_Value* pThis,
|
| }
|
| return iValue;
|
| }
|
| -FX_DOUBLE CXFA_FM2JSContext::StringToDouble(
|
| - const CFX_ByteStringC& szStringVal) {
|
| - return XFA_ByteStringToDouble(szStringVal);
|
| -}
|
| +
|
| +// static
|
| FX_FLOAT CXFA_FM2JSContext::ValueToFloat(CFXJSE_Value* pThis,
|
| CFXJSE_Value* arg) {
|
| CXFA_FM2JSContext* pContext =
|
| @@ -6837,7 +7072,7 @@ FX_FLOAT CXFA_FM2JSContext::ValueToFloat(CFXJSE_Value* pThis,
|
| } else if (FXJSE_Value_IsUTF8String(arg)) {
|
| CFX_ByteString bsOutput;
|
| FXJSE_Value_ToUTF8String(arg, bsOutput);
|
| - fRet = (FX_FLOAT)StringToDouble(bsOutput.AsStringC());
|
| + fRet = (FX_FLOAT)XFA_ByteStringToDouble(bsOutput.AsStringC());
|
| } else if (FXJSE_Value_IsUndefined(arg)) {
|
| fRet = 0;
|
| } else {
|
| @@ -6845,6 +7080,8 @@ FX_FLOAT CXFA_FM2JSContext::ValueToFloat(CFXJSE_Value* pThis,
|
| }
|
| return fRet;
|
| }
|
| +
|
| +// static
|
| FX_DOUBLE CXFA_FM2JSContext::ValueToDouble(CFXJSE_Value* pThis,
|
| CFXJSE_Value* arg) {
|
| CXFA_FM2JSContext* pContext =
|
| @@ -6873,7 +7110,7 @@ FX_DOUBLE CXFA_FM2JSContext::ValueToDouble(CFXJSE_Value* pThis,
|
| } else if (FXJSE_Value_IsUTF8String(arg)) {
|
| CFX_ByteString bsOutput;
|
| FXJSE_Value_ToUTF8String(arg, bsOutput);
|
| - dRet = StringToDouble(bsOutput.AsStringC());
|
| + dRet = XFA_ByteStringToDouble(bsOutput.AsStringC());
|
| } else if (FXJSE_Value_IsUndefined(arg)) {
|
| dRet = 0;
|
| } else {
|
| @@ -6882,6 +7119,7 @@ FX_DOUBLE CXFA_FM2JSContext::ValueToDouble(CFXJSE_Value* pThis,
|
| return dRet;
|
| }
|
|
|
| +// static
|
| void CXFA_FM2JSContext::ValueToUTF8String(CFXJSE_Value* arg,
|
| CFX_ByteString& szOutputString) {
|
| if (FXJSE_Value_IsNull(arg) || FXJSE_Value_IsUndefined(arg)) {
|
| @@ -6894,23 +7132,19 @@ void CXFA_FM2JSContext::ValueToUTF8String(CFXJSE_Value* arg,
|
| }
|
| }
|
|
|
| -CXFA_FM2JSContext::CXFA_FM2JSContext()
|
| - : m_pFMClass(nullptr), m_pDocument(nullptr) {}
|
| -
|
| -CXFA_FM2JSContext::~CXFA_FM2JSContext() {
|
| -}
|
| -
|
| -void CXFA_FM2JSContext::Initialize(v8::Isolate* pScriptIsolate,
|
| - CFXJSE_Context* pScriptContext,
|
| - CXFA_Document* pDoc) {
|
| - m_pDocument = pDoc;
|
| - m_pIsolate = pScriptIsolate;
|
| - m_pFMClass = FXJSE_DefineClass(pScriptContext, &formcalc_fm2js_descriptor);
|
| - m_pValue = std::unique_ptr<CFXJSE_Value>(new CFXJSE_Value(pScriptIsolate));
|
| +CXFA_FM2JSContext::CXFA_FM2JSContext(v8::Isolate* pScriptIsolate,
|
| + CFXJSE_Context* pScriptContext,
|
| + CXFA_Document* pDoc)
|
| + : m_pIsolate(pScriptIsolate),
|
| + m_pFMClass(FXJSE_DefineClass(pScriptContext, &formcalc_fm2js_descriptor)),
|
| + m_pValue(new CFXJSE_Value(pScriptIsolate)),
|
| + m_pDocument(pDoc) {
|
| FXJSE_Value_SetNull(m_pValue.get());
|
| FXJSE_Value_SetObject(m_pValue.get(), this, m_pFMClass);
|
| }
|
|
|
| +CXFA_FM2JSContext::~CXFA_FM2JSContext() {}
|
| +
|
| void CXFA_FM2JSContext::GlobalPropertyGetter(CFXJSE_Value* pValue) {
|
| FXJSE_Value_Set(pValue, m_pValue.get());
|
| }
|
|
|