summaryrefslogtreecommitdiff
path: root/xfa/fxfa/fm2js/cxfa_fmexpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/fm2js/cxfa_fmexpression.cpp')
-rw-r--r--xfa/fxfa/fm2js/cxfa_fmexpression.cpp160
1 files changed, 80 insertions, 80 deletions
diff --git a/xfa/fxfa/fm2js/cxfa_fmexpression.cpp b/xfa/fxfa/fm2js/cxfa_fmexpression.cpp
index ef2153d6be..9ff043a1ab 100644
--- a/xfa/fxfa/fm2js/cxfa_fmexpression.cpp
+++ b/xfa/fxfa/fm2js/cxfa_fmexpression.cpp
@@ -44,7 +44,7 @@ CXFA_FMFunctionDefinition::CXFA_FMFunctionDefinition(
CXFA_FMFunctionDefinition::~CXFA_FMFunctionDefinition() = default;
-bool CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
@@ -53,16 +53,16 @@ bool CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& js,
if (m_wsName.IsEmpty())
return false;
- js << L"function " << IdentifierToName(m_wsName) << L"(";
+ *js << L"function " << IdentifierToName(m_wsName) << L"(";
for (const auto& identifier : m_pArguments) {
if (identifier != m_pArguments.front())
- js << L", ";
+ *js << L", ";
- js << IdentifierToName(identifier);
+ *js << IdentifierToName(identifier);
}
- js << L") {\n";
+ *js << L") {\n";
- js << L"var pfm_ret = null;\n";
+ *js << L"var pfm_ret = null;\n";
for (const auto& expr : m_pExpressions) {
ReturnType ret_type = expr == m_pExpressions.back() ? ReturnType::kImplied
: ReturnType::kInfered;
@@ -70,8 +70,8 @@ bool CXFA_FMFunctionDefinition::ToJavaScript(CFX_WideTextBuf& js,
return false;
}
- js << L"return pfm_ret;\n";
- js << L"}\n";
+ *js << L"return pfm_ret;\n";
+ *js << L"}\n";
return !CXFA_IsTooBig(js);
}
@@ -82,24 +82,24 @@ CXFA_FMAST::CXFA_FMAST(
CXFA_FMAST::~CXFA_FMAST() = default;
-bool CXFA_FMAST::ToJavaScript(CFX_WideTextBuf& js) {
+bool CXFA_FMAST::ToJavaScript(CFX_WideTextBuf* js) {
if (expressions_.empty()) {
- js << L"// comments only";
+ *js << L"// comments only";
return !CXFA_IsTooBig(js);
}
- js << L"(function() {\n";
- js << L"let pfm_method_runner = function(obj, cb) {\n";
- js << L" if (pfm_rt.is_ary(obj)) {\n";
- js << L" let pfm_method_return = null;\n";
- js << L" for (var idx = obj.length -1; idx > 1; idx--) {\n";
- js << L" pfm_method_return = cb(obj[idx]);\n";
- js << L" }\n";
- js << L" return pfm_method_return;\n";
- js << L" }\n";
- js << L" return cb(obj);\n";
- js << L"};\n";
- js << L"var pfm_ret = null;\n";
+ *js << L"(function() {\n";
+ *js << L"let pfm_method_runner = function(obj, cb) {\n";
+ *js << L" if (pfm_rt.is_ary(obj)) {\n";
+ *js << L" let pfm_method_return = null;\n";
+ *js << L" for (var idx = obj.length -1; idx > 1; idx--) {\n";
+ *js << L" pfm_method_return = cb(obj[idx]);\n";
+ *js << L" }\n";
+ *js << L" return pfm_method_return;\n";
+ *js << L" }\n";
+ *js << L" return cb(obj);\n";
+ *js << L"};\n";
+ *js << L"var pfm_ret = null;\n";
for (const auto& expr : expressions_) {
ReturnType ret_type = expr == expressions_.back() ? ReturnType::kImplied
@@ -108,8 +108,8 @@ bool CXFA_FMAST::ToJavaScript(CFX_WideTextBuf& js) {
return false;
}
- js << L"return pfm_rt.get_val(pfm_ret);\n";
- js << L"}).call(this);";
+ *js << L"return pfm_rt.get_val(pfm_ret);\n";
+ *js << L"}).call(this);";
return !CXFA_IsTooBig(js);
}
@@ -120,24 +120,24 @@ CXFA_FMVarExpression::CXFA_FMVarExpression(
CXFA_FMVarExpression::~CXFA_FMVarExpression() = default;
-bool CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
+bool CXFA_FMVarExpression::ToJavaScript(CFX_WideTextBuf* js, ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
WideString tempName = IdentifierToName(m_wsName);
- js << L"var " << tempName << L" = ";
+ *js << L"var " << tempName << L" = ";
if (m_pInit) {
if (!m_pInit->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << tempName << L" = pfm_rt.var_filter(" << tempName << L");\n";
+ *js << tempName << L" = pfm_rt.var_filter(" << tempName << L");\n";
} else {
- js << L"\"\";\n";
+ *js << L"\"\";\n";
}
if (type == ReturnType::kImplied)
- js << L"pfm_ret = " << tempName << L";\n";
+ *js << L"pfm_ret = " << tempName << L";\n";
return !CXFA_IsTooBig(js);
}
@@ -148,7 +148,7 @@ CXFA_FMExpExpression::CXFA_FMExpExpression(
CXFA_FMExpExpression::~CXFA_FMExpExpression() = default;
-bool CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
+bool CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf* js, ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
@@ -156,7 +156,7 @@ bool CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
if (type == ReturnType::kInfered) {
bool ret = m_pExpression->ToJavaScript(js, ReturnType::kInfered);
if (m_pExpression->GetOperatorToken() != TOKassign)
- js << L";\n";
+ *js << L";\n";
return ret;
}
@@ -169,19 +169,19 @@ bool CXFA_FMExpExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
m_pExpression->GetOperatorToken() == TOKdotscream ||
m_pExpression->GetOperatorToken() == TOKdotdot ||
m_pExpression->GetOperatorToken() == TOKdot) {
- js << L"pfm_ret = pfm_rt.get_val(";
+ *js << L"pfm_ret = pfm_rt.get_val(";
if (!m_pExpression->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L");\n";
+ *js << L");\n";
return !CXFA_IsTooBig(js);
}
- js << L"pfm_ret = ";
+ *js << L"pfm_ret = ";
if (!m_pExpression->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L";\n";
+ *js << L";\n";
return !CXFA_IsTooBig(js);
}
@@ -191,13 +191,13 @@ CXFA_FMBlockExpression::CXFA_FMBlockExpression(
CXFA_FMBlockExpression::~CXFA_FMBlockExpression() = default;
-bool CXFA_FMBlockExpression::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMBlockExpression::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
- js << L"{\n";
+ *js << L"{\n";
for (const auto& expr : m_ExpressionList) {
if (type == ReturnType::kInfered) {
if (!expr->ToJavaScript(js, ReturnType::kInfered))
@@ -210,7 +210,7 @@ bool CXFA_FMBlockExpression::ToJavaScript(CFX_WideTextBuf& js,
return false;
}
}
- js << L"}\n";
+ *js << L"}\n";
return !CXFA_IsTooBig(js);
}
@@ -221,7 +221,7 @@ CXFA_FMDoExpression::CXFA_FMDoExpression(
CXFA_FMDoExpression::~CXFA_FMDoExpression() = default;
-bool CXFA_FMDoExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
+bool CXFA_FMDoExpression::ToJavaScript(CFX_WideTextBuf* js, ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
@@ -244,18 +244,18 @@ CXFA_FMIfExpression::CXFA_FMIfExpression(
CXFA_FMIfExpression::~CXFA_FMIfExpression() = default;
-bool CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
+bool CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf* js, ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
if (type == ReturnType::kImplied)
- js << L"pfm_ret = 0;\n";
+ *js << L"pfm_ret = 0;\n";
- js << L"if (pfm_rt.get_val(";
+ *js << L"if (pfm_rt.get_val(";
if (!m_pExpression->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L"))\n";
+ *js << L"))\n";
if (CXFA_IsTooBig(js))
return false;
@@ -268,13 +268,13 @@ bool CXFA_FMIfExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
}
for (auto& expr : m_pElseIfExpressions) {
- js << L"else ";
+ *js << L"else ";
if (!expr->ToJavaScript(js, ReturnType::kInfered))
return false;
}
if (m_pElseExpression) {
- js << L"else ";
+ *js << L"else ";
if (!m_pElseExpression->ToJavaScript(js, type))
return false;
}
@@ -290,20 +290,20 @@ CXFA_FMWhileExpression::CXFA_FMWhileExpression(
CXFA_FMWhileExpression::~CXFA_FMWhileExpression() = default;
-bool CXFA_FMWhileExpression::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMWhileExpression::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
if (type == ReturnType::kImplied)
- js << L"pfm_ret = 0;\n";
+ *js << L"pfm_ret = 0;\n";
- js << L"while (";
+ *js << L"while (";
if (!m_pCondition->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L")\n";
+ *js << L")\n";
if (CXFA_IsTooBig(js))
return false;
@@ -317,13 +317,13 @@ CXFA_FMBreakExpression::CXFA_FMBreakExpression() : CXFA_FMExpression() {}
CXFA_FMBreakExpression::~CXFA_FMBreakExpression() = default;
-bool CXFA_FMBreakExpression::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMBreakExpression::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
- js << L"pfm_ret = 0;\nbreak;\n";
+ *js << L"pfm_ret = 0;\nbreak;\n";
return !CXFA_IsTooBig(js);
}
@@ -331,13 +331,13 @@ CXFA_FMContinueExpression::CXFA_FMContinueExpression() : CXFA_FMExpression() {}
CXFA_FMContinueExpression::~CXFA_FMContinueExpression() = default;
-bool CXFA_FMContinueExpression::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMContinueExpression::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
- js << L"pfm_ret = 0;\ncontinue;\n";
+ *js << L"pfm_ret = 0;\ncontinue;\n";
return !CXFA_IsTooBig(js);
}
@@ -358,47 +358,47 @@ CXFA_FMForExpression::CXFA_FMForExpression(
CXFA_FMForExpression::~CXFA_FMForExpression() = default;
-bool CXFA_FMForExpression::ToJavaScript(CFX_WideTextBuf& js, ReturnType type) {
+bool CXFA_FMForExpression::ToJavaScript(CFX_WideTextBuf* js, ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
if (type == ReturnType::kImplied)
- js << L"pfm_ret = 0;\n";
+ *js << L"pfm_ret = 0;\n";
- js << L"{\n";
+ *js << L"{\n";
WideString tmpName = IdentifierToName(m_wsVariant);
- js << L"var " << tmpName << L" = null;\n";
+ *js << L"var " << tmpName << L" = null;\n";
- js << L"for (" << tmpName << L" = pfm_rt.get_val(";
+ *js << L"for (" << tmpName << L" = pfm_rt.get_val(";
if (!m_pAssignment->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L"); ";
+ *js << L"); ";
- js << tmpName << (m_bDirection ? kLessEqual : kGreaterEqual);
- js << L"pfm_rt.get_val(";
+ *js << tmpName << (m_bDirection ? kLessEqual : kGreaterEqual);
+ *js << L"pfm_rt.get_val(";
if (!m_pAccessor->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L"); ";
+ *js << L"); ";
- js << tmpName << (m_bDirection ? kPlusEqual : kMinusEqual);
+ *js << tmpName << (m_bDirection ? kPlusEqual : kMinusEqual);
if (m_pStep) {
- js << L"pfm_rt.get_val(";
+ *js << L"pfm_rt.get_val(";
if (!m_pStep->ToJavaScript(js, ReturnType::kInfered))
return false;
- js << L")";
+ *js << L")";
} else {
- js << L"1";
+ *js << L"1";
}
- js << L")\n";
+ *js << L")\n";
if (CXFA_IsTooBig(js))
return false;
if (!m_pList->ToJavaScript(js, type))
return false;
- js << L"}\n";
+ *js << L"}\n";
return !CXFA_IsTooBig(js);
}
@@ -413,35 +413,35 @@ CXFA_FMForeachExpression::CXFA_FMForeachExpression(
CXFA_FMForeachExpression::~CXFA_FMForeachExpression() = default;
-bool CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf& js,
+bool CXFA_FMForeachExpression::ToJavaScript(CFX_WideTextBuf* js,
ReturnType type) {
CXFA_FMToJavaScriptDepth depthManager;
if (CXFA_IsTooBig(js) || !depthManager.IsWithinMaxDepth())
return false;
if (type == ReturnType::kImplied)
- js << L"pfm_ret = 0;\n";
+ *js << L"pfm_ret = 0;\n";
- js << L"{\n";
+ *js << L"{\n";
WideString tmpName = IdentifierToName(m_wsIdentifier);
- js << L"var " << tmpName << L" = null;\n";
- js << L"var pfm_ary = pfm_rt.concat_obj(";
+ *js << L"var " << tmpName << L" = null;\n";
+ *js << L"var pfm_ary = pfm_rt.concat_obj(";
for (const auto& expr : m_pAccessors) {
if (!expr->ToJavaScript(js, ReturnType::kInfered))
return false;
if (expr != m_pAccessors.back())
- js << L", ";
+ *js << L", ";
}
- js << L");\n";
+ *js << L");\n";
- js << L"var pfm_ary_idx = 0;\n";
- js << L"while(pfm_ary_idx < pfm_ary.length)\n{\n";
- js << tmpName << L" = pfm_ary[pfm_ary_idx++];\n";
+ *js << L"var pfm_ary_idx = 0;\n";
+ *js << L"while(pfm_ary_idx < pfm_ary.length)\n{\n";
+ *js << tmpName << L" = pfm_ary[pfm_ary_idx++];\n";
if (!m_pList->ToJavaScript(js, type))
return false;
- js << L"}\n"; // while
+ *js << L"}\n"; // while
- js << L"}\n"; // block
+ *js << L"}\n"; // block
return !CXFA_IsTooBig(js);
}