diff options
Diffstat (limited to 'xfa/fxfa/fm2js/xfa_expression.cpp')
-rw-r--r-- | xfa/fxfa/fm2js/xfa_expression.cpp | 681 |
1 files changed, 0 insertions, 681 deletions
diff --git a/xfa/fxfa/fm2js/xfa_expression.cpp b/xfa/fxfa/fm2js/xfa_expression.cpp deleted file mode 100644 index 324038f7ed..0000000000 --- a/xfa/fxfa/fm2js/xfa_expression.cpp +++ /dev/null @@ -1,681 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/fm2js/xfa_expression.h" - -#include <utility> - -#include "core/fxcrt/fx_basic.h" - -namespace { - -const wchar_t RUNTIMEBLOCKTEMPARRAY[] = - L"foxit_xfa_formcalc_runtime_block_temp_array"; - -const wchar_t RUNTIMEBLOCKTEMPARRAYINDEX[] = - L"foxit_xfa_formcalc_runtime_block_temp_array_index"; - -const wchar_t kLessEqual[] = L" <= "; -const wchar_t kGreaterEqual[] = L" >= "; -const wchar_t kPlusEqual[] = L" += "; -const wchar_t kMinusEqual[] = L" -= "; - -} // namespace - -CXFA_FMExpression::CXFA_FMExpression(uint32_t line) - : m_type(XFA_FM_EXPTYPE_UNKNOWN), m_line(line) {} - -CXFA_FMExpression::CXFA_FMExpression(uint32_t line, XFA_FM_EXPTYPE type) - : m_type(type), m_line(line) {} - -bool CXFA_FMExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - return true; -} - -bool CXFA_FMExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - return true; -} - -CXFA_FMFunctionDefinition::CXFA_FMFunctionDefinition( - uint32_t line, - bool isGlobal, - const CFX_WideStringC& wsName, - std::vector<CFX_WideStringC>&& arguments, - std::vector<std::unique_ptr<CXFA_FMExpression>>&& expressions) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_FUNC), - m_wsName(wsName), - m_pArguments(std::move(arguments)), - m_pExpressions(std::move(expressions)), - m_isGlobal(isGlobal) {} - -CXFA_FMFunctionDefinition::~CXFA_FMFunctionDefinition() {} - -bool CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& javascript) { - if (m_isGlobal && m_pExpressions.empty()) { - javascript << L"// comments only"; - return true; - } - if (m_isGlobal) { - javascript << L"(\n"; - } - javascript << L"function "; - if (m_wsName.GetAt(0) == L'!') { - CFX_WideString tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); - javascript << tempName; - } else { - javascript << m_wsName; - } - javascript << L"("; - bool bNeedComma = false; - for (const auto& identifier : m_pArguments) { - if (bNeedComma) - javascript << L", "; - if (identifier.GetAt(0) == L'!') { - CFX_WideString tempIdentifier = - EXCLAMATION_IN_IDENTIFIER + identifier.Mid(1); - javascript << tempIdentifier; - } else { - javascript << identifier; - } - bNeedComma = true; - } - javascript << L")\n{\n"; - javascript << L"var "; - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = null;\n"; - for (const auto& expr : m_pExpressions) { - bool ret; - if (expr == m_pExpressions.back()) - ret = expr->ToImpliedReturnJS(javascript); - else - ret = expr->ToJavaScript(javascript); - if (!ret || CFXA_IsTooBig(javascript)) - return false; - } - javascript << L"return "; - if (m_isGlobal) { - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L")"; - } else { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - } - javascript << L";\n}\n"; - if (m_isGlobal) { - javascript << L").call(this);\n"; - } - return true; -} - -bool CXFA_FMFunctionDefinition::ToImpliedReturnJS(CFX_WideTextBuf&) { - return true; -} - -CXFA_FMVarExpression::CXFA_FMVarExpression( - uint32_t line, - const CFX_WideStringC& wsName, - std::unique_ptr<CXFA_FMExpression> pInit) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_VAR), - m_wsName(wsName), - m_pInit(std::move(pInit)) {} - -CXFA_FMVarExpression::~CXFA_FMVarExpression() {} - -bool CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"var "; - CFX_WideString tempName(m_wsName); - if (m_wsName.GetAt(0) == L'!') { - tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); - } - javascript << tempName; - javascript << L" = "; - if (m_pInit) { - if (!m_pInit->ToJavaScript(javascript)) - return false; - javascript << tempName; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(VARFILTER); - javascript << L"("; - javascript << tempName; - javascript << L");\n"; - } else { - javascript << L"\"\";\n"; - } - return true; -} - -bool CXFA_FMVarExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << L"var "; - CFX_WideString tempName(m_wsName); - if (m_wsName.GetAt(0) == L'!') { - tempName = EXCLAMATION_IN_IDENTIFIER + m_wsName.Mid(1); - } - javascript << tempName; - javascript << L" = "; - if (m_pInit) { - if (!m_pInit->ToJavaScript(javascript)) - return false; - javascript << tempName; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(VARFILTER); - javascript << L"("; - javascript << tempName; - javascript << L");\n"; - } else { - javascript << L"\"\";\n"; - } - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = "; - javascript << tempName; - javascript << L";\n"; - return true; -} - -CXFA_FMExpExpression::CXFA_FMExpExpression( - uint32_t line, - std::unique_ptr<CXFA_FMSimpleExpression> pExpression) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_EXP), - m_pExpression(std::move(pExpression)) {} - -CXFA_FMExpExpression::~CXFA_FMExpExpression() {} - -bool CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - bool ret = m_pExpression->ToJavaScript(javascript); - if (m_pExpression->GetOperatorToken() != TOKassign) - javascript << L";\n"; - return ret; -} - -bool CXFA_FMExpExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - if (m_pExpression->GetOperatorToken() == TOKassign) - return m_pExpression->ToImpliedReturnJS(javascript); - - if (m_pExpression->GetOperatorToken() == TOKstar || - m_pExpression->GetOperatorToken() == TOKdotstar || - m_pExpression->GetOperatorToken() == TOKdotscream || - m_pExpression->GetOperatorToken() == TOKdotdot || - m_pExpression->GetOperatorToken() == TOKdot) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pExpression->ToJavaScript(javascript)) - return false; - javascript << L");\n"; - return true; - } - - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = "; - if (!m_pExpression->ToJavaScript(javascript)) - return false; - javascript << L";\n"; - return true; -} - -CXFA_FMBlockExpression::CXFA_FMBlockExpression( - uint32_t line, - std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_BLOCK), - m_ExpressionList(std::move(pExpressionList)) {} - -CXFA_FMBlockExpression::~CXFA_FMBlockExpression() {} - -bool CXFA_FMBlockExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"{\n"; - for (const auto& expr : m_ExpressionList) { - if (!expr->ToJavaScript(javascript) || CFXA_IsTooBig(javascript)) - return false; - } - javascript << L"}\n"; - return true; -} - -bool CXFA_FMBlockExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << L"{\n"; - for (const auto& expr : m_ExpressionList) { - bool ret; - if (expr == m_ExpressionList.back()) - ret = expr->ToImpliedReturnJS(javascript); - else - ret = expr->ToJavaScript(javascript); - if (!ret || CFXA_IsTooBig(javascript)) - return false; - } - javascript << L"}\n"; - return true; -} - -CXFA_FMDoExpression::CXFA_FMDoExpression( - uint32_t line, - std::unique_ptr<CXFA_FMExpression> pList) - : CXFA_FMExpression(line), m_pList(std::move(pList)) {} - -CXFA_FMDoExpression::~CXFA_FMDoExpression() {} - -bool CXFA_FMDoExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - return m_pList->ToJavaScript(javascript); -} - -bool CXFA_FMDoExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - return m_pList->ToImpliedReturnJS(javascript); -} - -CXFA_FMIfExpression::CXFA_FMIfExpression( - uint32_t line, - std::unique_ptr<CXFA_FMSimpleExpression> pExpression, - std::unique_ptr<CXFA_FMExpression> pIfExpression, - std::unique_ptr<CXFA_FMExpression> pElseExpression) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_IF), - m_pExpression(std::move(pExpression)), - m_pIfExpression(std::move(pIfExpression)), - m_pElseExpression(std::move(pElseExpression)) {} - -CXFA_FMIfExpression::~CXFA_FMIfExpression() {} - -bool CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"if ("; - if (m_pExpression) { - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pExpression->ToJavaScript(javascript)) - return false; - javascript << L")"; - } - javascript << L")\n"; - if (CFXA_IsTooBig(javascript)) - return false; - - if (m_pIfExpression) { - if (!m_pIfExpression->ToJavaScript(javascript)) - return false; - if (CFXA_IsTooBig(javascript)) - return false; - } - - if (m_pElseExpression) { - if (m_pElseExpression->GetExpType() == XFA_FM_EXPTYPE_IF) { - javascript << L"else\n"; - javascript << L"{\n"; - if (!m_pElseExpression->ToJavaScript(javascript)) - return false; - javascript << L"}\n"; - } else { - javascript << L"else\n"; - if (!m_pElseExpression->ToJavaScript(javascript)) - return false; - } - } - return !CFXA_IsTooBig(javascript); -} - -bool CXFA_FMIfExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"if ("; - if (m_pExpression) { - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pExpression->ToJavaScript(javascript)) - return false; - javascript << L")"; - } - javascript << L")\n"; - if (CFXA_IsTooBig(javascript)) - return false; - - if (m_pIfExpression) { - if (!m_pIfExpression->ToImpliedReturnJS(javascript)) - return false; - if (CFXA_IsTooBig(javascript)) - return false; - } - if (m_pElseExpression) { - if (m_pElseExpression->GetExpType() == XFA_FM_EXPTYPE_IF) { - javascript << L"else\n"; - javascript << L"{\n"; - if (!m_pElseExpression->ToImpliedReturnJS(javascript)) - return false; - javascript << L"}\n"; - } else { - javascript << L"else\n"; - if (!m_pElseExpression->ToImpliedReturnJS(javascript)) - return false; - } - } - return !CFXA_IsTooBig(javascript); -} - -CXFA_FMLoopExpression::~CXFA_FMLoopExpression() {} - -bool CXFA_FMLoopExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - return true; -} - -bool CXFA_FMLoopExpression::ToImpliedReturnJS(CFX_WideTextBuf&) { - return true; -} - -CXFA_FMWhileExpression::CXFA_FMWhileExpression( - uint32_t line, - std::unique_ptr<CXFA_FMSimpleExpression> pCondition, - std::unique_ptr<CXFA_FMExpression> pExpression) - : CXFA_FMLoopExpression(line), - m_pCondition(std::move(pCondition)), - m_pExpression(std::move(pExpression)) {} - -CXFA_FMWhileExpression::~CXFA_FMWhileExpression() {} - -bool CXFA_FMWhileExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"while ("; - if (!m_pCondition->ToJavaScript(javascript)) - return false; - javascript << L")\n"; - if (CFXA_IsTooBig(javascript)) - return false; - - if (!m_pExpression->ToJavaScript(javascript)) - return false; - return !CFXA_IsTooBig(javascript); -} - -bool CXFA_FMWhileExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"while ("; - if (!m_pCondition->ToJavaScript(javascript)) - return false; - javascript << L")\n"; - if (CFXA_IsTooBig(javascript)) - return false; - - if (!m_pExpression->ToImpliedReturnJS(javascript)) - return false; - return !CFXA_IsTooBig(javascript); -} - -CXFA_FMBreakExpression::CXFA_FMBreakExpression(uint32_t line) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_BREAK) {} - -CXFA_FMBreakExpression::~CXFA_FMBreakExpression() {} - -bool CXFA_FMBreakExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"break;\n"; - return true; -} - -bool CXFA_FMBreakExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"break;\n"; - return true; -} - -CXFA_FMContinueExpression::CXFA_FMContinueExpression(uint32_t line) - : CXFA_FMExpression(line, XFA_FM_EXPTYPE_CONTINUE) {} - -CXFA_FMContinueExpression::~CXFA_FMContinueExpression() {} - -bool CXFA_FMContinueExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"continue;\n"; - return true; -} - -bool CXFA_FMContinueExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"continue;\n"; - return true; -} - -CXFA_FMForExpression::CXFA_FMForExpression( - uint32_t line, - const CFX_WideStringC& wsVariant, - std::unique_ptr<CXFA_FMSimpleExpression> pAssignment, - std::unique_ptr<CXFA_FMSimpleExpression> pAccessor, - int32_t iDirection, - std::unique_ptr<CXFA_FMSimpleExpression> pStep, - std::unique_ptr<CXFA_FMExpression> pList) - : CXFA_FMLoopExpression(line), - m_wsVariant(wsVariant), - m_pAssignment(std::move(pAssignment)), - m_pAccessor(std::move(pAccessor)), - m_bDirection(iDirection == 1), - m_pStep(std::move(pStep)), - m_pList(std::move(pList)) {} - -CXFA_FMForExpression::~CXFA_FMForExpression() {} - -bool CXFA_FMForExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"{\nvar "; - CFX_WideString tempVariant; - if (m_wsVariant.GetAt(0) == L'!') { - tempVariant = EXCLAMATION_IN_IDENTIFIER + m_wsVariant.Mid(1); - javascript << tempVariant; - } else { - tempVariant = m_wsVariant; - javascript << m_wsVariant; - } - javascript << L" = null;\n"; - javascript << L"for ("; - javascript << tempVariant; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pAssignment->ToJavaScript(javascript)) - return false; - javascript << L"); "; - javascript << tempVariant; - if (CFXA_IsTooBig(javascript)) - return false; - - javascript << (m_bDirection ? kLessEqual : kGreaterEqual); - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pAccessor->ToJavaScript(javascript)) - return false; - javascript << L"); "; - javascript << tempVariant; - javascript << (m_bDirection ? kPlusEqual : kMinusEqual); - if (CFXA_IsTooBig(javascript)) - return false; - - if (m_pStep) { - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pStep->ToJavaScript(javascript)) - return false; - javascript << L")"; - if (CFXA_IsTooBig(javascript)) - return false; - } else { - javascript << L"1"; - } - javascript << L")\n"; - if (!m_pList->ToJavaScript(javascript)) - return false; - javascript << L"}\n"; - return !CFXA_IsTooBig(javascript); -} - -bool CXFA_FMForExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"{\nvar "; - CFX_WideString tempVariant; - if (m_wsVariant.GetAt(0) == L'!') { - tempVariant = EXCLAMATION_IN_IDENTIFIER + m_wsVariant.Mid(1); - javascript << tempVariant; - } else { - tempVariant = m_wsVariant; - javascript << m_wsVariant; - } - javascript << L" = null;\n"; - javascript << L"for ("; - javascript << tempVariant; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pAssignment->ToJavaScript(javascript)) - return false; - javascript << L"); "; - javascript << tempVariant; - if (CFXA_IsTooBig(javascript)) - return false; - - javascript << (m_bDirection ? kLessEqual : kGreaterEqual); - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pAccessor->ToJavaScript(javascript)) - return false; - javascript << L"); "; - javascript << tempVariant; - javascript << L" += "; - javascript << (m_bDirection ? kPlusEqual : kMinusEqual); - if (CFXA_IsTooBig(javascript)) - return false; - - if (m_pStep) { - javascript << XFA_FM_EXPTypeToString(GETFMVALUE); - javascript << L"("; - if (!m_pStep->ToJavaScript(javascript)) - return false; - javascript << L")"; - if (CFXA_IsTooBig(javascript)) - return false; - } else { - javascript << L"1"; - } - javascript << L")\n"; - if (!m_pList->ToImpliedReturnJS(javascript)) - return false; - javascript << L"}\n"; - return !CFXA_IsTooBig(javascript); -} - -CXFA_FMForeachExpression::CXFA_FMForeachExpression( - uint32_t line, - const CFX_WideStringC& wsIdentifier, - std::vector<std::unique_ptr<CXFA_FMSimpleExpression>>&& pAccessors, - std::unique_ptr<CXFA_FMExpression> pList) - : CXFA_FMLoopExpression(line), - m_wsIdentifier(wsIdentifier), - m_pAccessors(std::move(pAccessors)), - m_pList(std::move(pList)) {} - -CXFA_FMForeachExpression::~CXFA_FMForeachExpression() {} - -bool CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& javascript) { - javascript << L"{\n"; - javascript << L"var "; - if (m_wsIdentifier.GetAt(0) == L'!') { - CFX_WideString tempIdentifier = - EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); - javascript << tempIdentifier; - } else { - javascript << m_wsIdentifier; - } - javascript << L" = null;\n"; - javascript << L"var "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT); - javascript << L"("; - - for (const auto& expr : m_pAccessors) { - if (!expr->ToJavaScript(javascript)) - return false; - if (expr != m_pAccessors.back()) - javascript << L", "; - if (CFXA_IsTooBig(javascript)) - return false; - } - javascript << L");\n"; - javascript << L"var "; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << (L" = 0;\n"); - javascript << L"while("; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << L" < "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L".length)\n{\n"; - if (m_wsIdentifier.GetAt(0) == L'!') { - CFX_WideString tempIdentifier = - EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); - javascript << tempIdentifier; - } else { - javascript << m_wsIdentifier; - } - javascript << L" = "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L"["; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << L"++];\n"; - if (!m_pList->ToJavaScript(javascript)) - return false; - javascript << L"}\n"; - javascript << L"}\n"; - return !CFXA_IsTooBig(javascript); -} - -bool CXFA_FMForeachExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) { - javascript << RUNTIMEFUNCTIONRETURNVALUE; - javascript << L" = 0;\n"; - javascript << L"{\n"; - javascript << L"var "; - if (m_wsIdentifier.GetAt(0) == L'!') { - CFX_WideString tempIdentifier = - EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); - javascript << tempIdentifier; - } else { - javascript << m_wsIdentifier; - } - javascript << L" = null;\n"; - javascript << L"var "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L" = "; - javascript << XFA_FM_EXPTypeToString(CONCATFMOBJECT); - javascript << L"("; - for (const auto& expr : m_pAccessors) { - if (!expr->ToJavaScript(javascript)) - return false; - if (expr != m_pAccessors.back()) - javascript << L", "; - if (CFXA_IsTooBig(javascript)) - return false; - } - javascript << L");\n"; - javascript << L"var "; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << L" = 0;\n"; - javascript << L"while("; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << L" < "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L".length)\n{\n"; - if (m_wsIdentifier.GetAt(0) == L'!') { - CFX_WideString tempIdentifier = - EXCLAMATION_IN_IDENTIFIER + m_wsIdentifier.Mid(1); - javascript << tempIdentifier; - } else { - javascript << m_wsIdentifier; - } - javascript << L" = "; - javascript << RUNTIMEBLOCKTEMPARRAY; - javascript << L"["; - javascript << RUNTIMEBLOCKTEMPARRAYINDEX; - javascript << L"++];\n"; - if (!m_pList->ToImpliedReturnJS(javascript)) - return false; - javascript << L"}\n"; - javascript << L"}\n"; - return !CFXA_IsTooBig(javascript); -} |