| Index: xfa/src/fxfa/src/fm2js/xfa_simpleexpression.cpp
|
| diff --git a/xfa/src/fxfa/src/fm2js/xfa_simpleexpression.cpp b/xfa/src/fxfa/src/fm2js/xfa_simpleexpression.cpp
|
| index a8f6ad135dcb69161e811c09bba35fba9d7b1aee..f849f791eea7da52439e5ac153da0af9b845e8d3 100644
|
| --- a/xfa/src/fxfa/src/fm2js/xfa_simpleexpression.cpp
|
| +++ b/xfa/src/fxfa/src/fm2js/xfa_simpleexpression.cpp
|
| @@ -116,25 +116,34 @@ CFX_WideStringC XFA_FM_EXPTypeToString(
|
|
|
| CXFA_FMSimpleExpression::CXFA_FMSimpleExpression(FX_DWORD line, XFA_FM_TOKEN op)
|
| : m_line(line), m_op(op) {}
|
| +
|
| void CXFA_FMSimpleExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
|
| +
|
| void CXFA_FMSimpleExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {}
|
| +
|
| XFA_FM_TOKEN CXFA_FMSimpleExpression::GetOperatorToken() const {
|
| return m_op;
|
| }
|
| +
|
| CXFA_FMNullExpression::CXFA_FMNullExpression(FX_DWORD line)
|
| : CXFA_FMSimpleExpression(line, TOKnull) {}
|
| +
|
| void CXFA_FMNullExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L"null");
|
| }
|
| +
|
| CXFA_FMNumberExpression::CXFA_FMNumberExpression(FX_DWORD line,
|
| CFX_WideStringC wsNumber)
|
| : CXFA_FMSimpleExpression(line, TOKnumber), m_wsNumber(wsNumber) {}
|
| +
|
| void CXFA_FMNumberExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << m_wsNumber;
|
| }
|
| +
|
| CXFA_FMStringExpression::CXFA_FMStringExpression(FX_DWORD line,
|
| CFX_WideStringC wsString)
|
| : CXFA_FMSimpleExpression(line, TOKstring), m_wsString(wsString) {}
|
| +
|
| void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| CFX_WideString tempStr = m_wsString;
|
| if (tempStr.GetLength() > 2) {
|
| @@ -160,11 +169,13 @@ void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << tempStr;
|
| }
|
| }
|
| +
|
| CXFA_FMIdentifierExpressionn::CXFA_FMIdentifierExpressionn(
|
| FX_DWORD line,
|
| CFX_WideStringC wsIdentifier)
|
| : CXFA_FMSimpleExpression(line, TOKidentifier),
|
| m_wsIdentifier(wsIdentifier) {}
|
| +
|
| void CXFA_FMIdentifierExpressionn::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| CFX_WideString tempStr = m_wsIdentifier;
|
| if (tempStr.Equal(FX_WSTRC(L"$"))) {
|
| @@ -193,25 +204,23 @@ CXFA_FMUnaryExpression::CXFA_FMUnaryExpression(FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp)
|
| : CXFA_FMSimpleExpression(line, op), m_pExp(pExp) {}
|
| -CXFA_FMUnaryExpression::~CXFA_FMUnaryExpression() {
|
| - delete m_pExp;
|
| -}
|
| +
|
| void CXFA_FMUnaryExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
|
| +
|
| CXFA_FMBinExpression::CXFA_FMBinExpression(FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMSimpleExpression(line, op), m_pExp1(pExp1), m_pExp2(pExp2) {}
|
| -CXFA_FMBinExpression::~CXFA_FMBinExpression() {
|
| - delete m_pExp1;
|
| - delete m_pExp2;
|
| -}
|
| +
|
| void CXFA_FMBinExpression::ToJavaScript(CFX_WideTextBuf& javascript) {}
|
| +
|
| CXFA_FMAssignExpression::CXFA_FMAssignExpression(FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L"if (");
|
| javascript << gs_lpStrExpFuncName[ISFMOBJECT];
|
| @@ -239,6 +248,7 @@ void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L");\n}\n");
|
| }
|
| }
|
| +
|
| void CXFA_FMAssignExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L"if (");
|
| javascript << gs_lpStrExpFuncName[ISFMOBJECT];
|
| @@ -270,12 +280,14 @@ void CXFA_FMAssignExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L");\n}\n");
|
| }
|
| }
|
| +
|
| CXFA_FMLogicalOrExpression::CXFA_FMLogicalOrExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[LOGICALOR];
|
| javascript << FX_WSTRC(L"(");
|
| @@ -284,12 +296,14 @@ void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMLogicalAndExpression::CXFA_FMLogicalAndExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[LOGICALAND];
|
| javascript << FX_WSTRC(L"(");
|
| @@ -298,12 +312,14 @@ void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMEqualityExpression::CXFA_FMEqualityExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| switch (m_op) {
|
| case TOKeq:
|
| @@ -324,12 +340,14 @@ void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMRelationalExpression::CXFA_FMRelationalExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| switch (m_op) {
|
| case TOKlt:
|
| @@ -358,12 +376,14 @@ void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMAdditiveExpression::CXFA_FMAdditiveExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| switch (m_op) {
|
| case TOKplus:
|
| @@ -382,12 +402,14 @@ void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMMultiplicativeExpression::CXFA_FMMultiplicativeExpression(
|
| FX_DWORD line,
|
| XFA_FM_TOKEN op,
|
| CXFA_FMSimpleExpression* pExp1,
|
| CXFA_FMSimpleExpression* pExp2)
|
| : CXFA_FMBinExpression(line, op, pExp1, pExp2) {}
|
| +
|
| void CXFA_FMMultiplicativeExpression::ToJavaScript(
|
| CFX_WideTextBuf& javascript) {
|
| switch (m_op) {
|
| @@ -407,33 +429,40 @@ void CXFA_FMMultiplicativeExpression::ToJavaScript(
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMPosExpression::CXFA_FMPosExpression(FX_DWORD line,
|
| CXFA_FMSimpleExpression* pExp)
|
| : CXFA_FMUnaryExpression(line, TOKplus, pExp) {}
|
| +
|
| void CXFA_FMPosExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[POSITIVE];
|
| javascript << FX_WSTRC(L"(");
|
| m_pExp->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMNegExpression::CXFA_FMNegExpression(FX_DWORD line,
|
| CXFA_FMSimpleExpression* pExp)
|
| : CXFA_FMUnaryExpression(line, TOKminus, pExp) {}
|
| +
|
| void CXFA_FMNegExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[NEGATIVE];
|
| javascript << FX_WSTRC(L"(");
|
| m_pExp->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMNotExpression::CXFA_FMNotExpression(FX_DWORD line,
|
| CXFA_FMSimpleExpression* pExp)
|
| : CXFA_FMUnaryExpression(line, TOKksnot, pExp) {}
|
| +
|
| void CXFA_FMNotExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[NOT];
|
| javascript << FX_WSTRC(L"(");
|
| m_pExp->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMCallExpression::CXFA_FMCallExpression(FX_DWORD line,
|
| CXFA_FMSimpleExpression* pExp,
|
| CFX_PtrArray* pArguments,
|
| @@ -442,19 +471,14 @@ CXFA_FMCallExpression::CXFA_FMCallExpression(FX_DWORD line,
|
| m_bIsSomMethod(bIsSomMethod),
|
| m_pArguments(pArguments) {
|
| }
|
| +
|
| CXFA_FMCallExpression::~CXFA_FMCallExpression() {
|
| if (m_pArguments) {
|
| - int32_t argc = m_pArguments->GetSize();
|
| - int32_t index = 0;
|
| - CXFA_FMSimpleExpression* e = 0;
|
| - while (index < argc) {
|
| - e = (CXFA_FMSimpleExpression*)m_pArguments->GetAt(index);
|
| - delete e;
|
| - index++;
|
| + for (int i = 0; i < m_pArguments->GetSize(); ++i) {
|
| + delete reinterpret_cast<CXFA_FMSimpleExpression*>(m_pArguments->GetAt(i));
|
| }
|
| m_pArguments->RemoveAll();
|
| delete m_pArguments;
|
| - m_pArguments = 0;
|
| }
|
| }
|
|
|
| @@ -498,6 +522,7 @@ FX_DWORD CXFA_FMCallExpression::IsMethodWithObjParam(
|
| } while (iStart <= iEnd);
|
| return parameters;
|
| }
|
| +
|
| void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| CFX_WideTextBuf funcName;
|
| m_pExp->ToJavaScript(funcName);
|
| @@ -505,38 +530,36 @@ void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << funcName;
|
| javascript << FX_WSTRC(L"(");
|
| if (m_pArguments) {
|
| - int32_t argc = m_pArguments->GetSize();
|
| - int32_t index = 0;
|
| FX_DWORD methodPara = IsMethodWithObjParam(funcName.GetWideString());
|
| if (methodPara > 0) {
|
| - CXFA_FMSimpleExpression* e = 0;
|
| - while (index < argc) {
|
| - if ((methodPara & (0x01 << index)) > 0) {
|
| + for (int i = 0; i < m_pArguments->GetSize(); ++i) {
|
| + if ((methodPara & (0x01 << i)) > 0) {
|
| javascript << gs_lpStrExpFuncName[GETFMJSOBJ];
|
| } else {
|
| javascript << gs_lpStrExpFuncName[GETFMVALUE];
|
| }
|
| javascript << FX_WSTRC(L"(");
|
| - e = (CXFA_FMSimpleExpression*)m_pArguments->GetAt(index);
|
| + CXFA_FMSimpleExpression* e =
|
| + reinterpret_cast<CXFA_FMSimpleExpression*>(
|
| + m_pArguments->GetAt(i));
|
| e->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| - if (index + 1 < argc) {
|
| + if (i + 1 < m_pArguments->GetSize()) {
|
| javascript << FX_WSTRC(L", ");
|
| }
|
| - index++;
|
| }
|
| } else {
|
| - CXFA_FMSimpleExpression* e = 0;
|
| - while (index < argc) {
|
| + for (int i = 0; i < m_pArguments->GetSize(); ++i) {
|
| javascript << gs_lpStrExpFuncName[GETFMVALUE];
|
| javascript << FX_WSTRC(L"(");
|
| - e = (CXFA_FMSimpleExpression*)m_pArguments->GetAt(index);
|
| + CXFA_FMSimpleExpression* e =
|
| + reinterpret_cast<CXFA_FMSimpleExpression*>(
|
| + m_pArguments->GetAt(i));
|
| e->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| - if (index + 1 < argc) {
|
| + if (i + 1 < m_pArguments->GetSize()) {
|
| javascript << FX_WSTRC(L", ");
|
| }
|
| - index++;
|
| }
|
| }
|
| }
|
| @@ -566,7 +589,7 @@ void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L"\n(\nfunction ()\n{\ntry\n{\n");
|
| if (m_pArguments && m_pArguments->GetSize() > 0) {
|
| CXFA_FMSimpleExpression* e =
|
| - (CXFA_FMSimpleExpression*)m_pArguments->GetAt(0);
|
| + reinterpret_cast<CXFA_FMSimpleExpression*>(m_pArguments->GetAt(0));
|
| javascript << FX_WSTRC(L"return ");
|
| e->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L";\n}\n");
|
| @@ -576,16 +599,13 @@ void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(
|
| L"catch(accessExceptions)\n{\nreturn 0;\n}\n}\n).call(this)\n");
|
| } else if (m_pArguments) {
|
| - int32_t argc = m_pArguments->GetSize();
|
| - int32_t index = 0;
|
| - CXFA_FMSimpleExpression* e = 0;
|
| - while (index < argc) {
|
| - e = (CXFA_FMSimpleExpression*)m_pArguments->GetAt(index);
|
| + for (int i = 0; i < m_pArguments->GetSize(); ++i) {
|
| + CXFA_FMSimpleExpression* e =
|
| + reinterpret_cast<CXFA_FMSimpleExpression*>(m_pArguments->GetAt(i));
|
| e->ToJavaScript(javascript);
|
| - if (index + 1 < argc) {
|
| + if (i + 1 < m_pArguments->GetSize()) {
|
| javascript << FX_WSTRC(L", ");
|
| }
|
| - index++;
|
| }
|
| }
|
| javascript << FX_WSTRC(L")");
|
| @@ -594,6 +614,7 @@ void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| }
|
| }
|
| }
|
| +
|
| CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression(
|
| FX_DWORD line,
|
| CXFA_FMSimpleExpression* pAccessor,
|
| @@ -602,6 +623,7 @@ CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression(
|
| CXFA_FMSimpleExpression* pIndexExp)
|
| : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp),
|
| m_wsIdentifier(wsIdentifier) {}
|
| +
|
| void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[DOT];
|
| javascript << FX_WSTRC(L"(");
|
| @@ -632,6 +654,7 @@ void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMIndexExpression::CXFA_FMIndexExpression(
|
| FX_DWORD line,
|
| XFA_FM_AccessorIndex accessorIndex,
|
| @@ -640,6 +663,7 @@ CXFA_FMIndexExpression::CXFA_FMIndexExpression(
|
| : CXFA_FMUnaryExpression(line, TOKlbracket, pIndexExp),
|
| m_accessorIndex(accessorIndex),
|
| m_bIsStarIndex(bIsStarIndex) {}
|
| +
|
| void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| switch (m_accessorIndex) {
|
| case ACCESSOR_NO_INDEX:
|
| @@ -666,6 +690,7 @@ void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| }
|
| }
|
| }
|
| +
|
| CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression(
|
| FX_DWORD line,
|
| CXFA_FMSimpleExpression* pAccessor,
|
| @@ -674,6 +699,7 @@ CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression(
|
| CXFA_FMSimpleExpression* pIndexExp)
|
| : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp),
|
| m_wsIdentifier(wsIdentifier) {}
|
| +
|
| void CXFA_FMDotDotAccessorExpression::ToJavaScript(
|
| CFX_WideTextBuf& javascript) {
|
| javascript << gs_lpStrExpFuncName[DOTDOT];
|
| @@ -691,11 +717,13 @@ void CXFA_FMDotDotAccessorExpression::ToJavaScript(
|
| m_pExp2->ToJavaScript(javascript);
|
| javascript << FX_WSTRC(L")");
|
| }
|
| +
|
| CXFA_FMMethodCallExpression::CXFA_FMMethodCallExpression(
|
| FX_DWORD line,
|
| CXFA_FMSimpleExpression* pAccessorExp1,
|
| CXFA_FMSimpleExpression* pCallExp)
|
| : CXFA_FMBinExpression(line, TOKdot, pAccessorExp1, pCallExp) {}
|
| +
|
| void CXFA_FMMethodCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) {
|
| javascript << FX_WSTRC(L"(\nfunction ()\n{\n");
|
| javascript << FX_WSTRC(L"var method_return_value = null;\n");
|
|
|