| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fxfa/fm2js/xfa_simpleexpression.h" | 7 #include "xfa/fxfa/fm2js/xfa_simpleexpression.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 {0xd907aee5, L"Num2GMTime"}, {0xdf24f7c4, L"Decode"}, | 74 {0xd907aee5, L"Num2GMTime"}, {0xdf24f7c4, L"Decode"}, |
| 75 {0xe2664803, L"Substr"}, {0xe3e7b528, L"Stuff"}, | 75 {0xe2664803, L"Substr"}, {0xe3e7b528, L"Stuff"}, |
| 76 {0xe6792d4e, L"Rtrim"}, {0xe8c23f5b, L"Parse"}, | 76 {0xe6792d4e, L"Rtrim"}, {0xe8c23f5b, L"Parse"}, |
| 77 {0xea18d121, L"Choose"}, {0xebfef69c, L"Replace"}, | 77 {0xea18d121, L"Choose"}, {0xebfef69c, L"Replace"}, |
| 78 {0xf5ad782b, L"Left"}, {0xf7bb2248, L"Ltrim"}, | 78 {0xf5ad782b, L"Left"}, {0xf7bb2248, L"Ltrim"}, |
| 79 }; | 79 }; |
| 80 | 80 |
| 81 struct XFA_FMSOMMethod { | 81 struct XFA_FMSOMMethod { |
| 82 uint32_t m_uHash; | 82 uint32_t m_uHash; |
| 83 const FX_WCHAR* m_wsSomMethodName; | 83 const FX_WCHAR* m_wsSomMethodName; |
| 84 FX_DWORD m_dParameters; | 84 uint32_t m_dParameters; |
| 85 }; | 85 }; |
| 86 const XFA_FMSOMMethod gs_FMSomMethods[] = { | 86 const XFA_FMSOMMethod gs_FMSomMethods[] = { |
| 87 {0x00000068, L"h", 0x01}, | 87 {0x00000068, L"h", 0x01}, |
| 88 {0x00000077, L"w", 0x01}, | 88 {0x00000077, L"w", 0x01}, |
| 89 {0x00000078, L"x", 0x01}, | 89 {0x00000078, L"x", 0x01}, |
| 90 {0x00000079, L"y", 0x01}, | 90 {0x00000079, L"y", 0x01}, |
| 91 {0x05eb5b0f, L"pageSpan", 0x01}, | 91 {0x05eb5b0f, L"pageSpan", 0x01}, |
| 92 {0x10f1b1bd, L"page", 0x01}, | 92 {0x10f1b1bd, L"page", 0x01}, |
| 93 {0x3bf1c2a5, L"absPageSpan", 0x01}, | 93 {0x3bf1c2a5, L"absPageSpan", 0x01}, |
| 94 {0x3c752495, L"verify", 0x0d}, | 94 {0x3c752495, L"verify", 0x0d}, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 107 {0xe74f0653, L"absPage", 0x01}, | 107 {0xe74f0653, L"absPage", 0x01}, |
| 108 }; | 108 }; |
| 109 | 109 |
| 110 } // namespace | 110 } // namespace |
| 111 | 111 |
| 112 CFX_WideStringC XFA_FM_EXPTypeToString( | 112 CFX_WideStringC XFA_FM_EXPTypeToString( |
| 113 XFA_FM_SimpleExpressionType simpleExpType) { | 113 XFA_FM_SimpleExpressionType simpleExpType) { |
| 114 return gs_lpStrExpFuncName[simpleExpType]; | 114 return gs_lpStrExpFuncName[simpleExpType]; |
| 115 } | 115 } |
| 116 | 116 |
| 117 CXFA_FMSimpleExpression::CXFA_FMSimpleExpression(FX_DWORD line, XFA_FM_TOKEN op) | 117 CXFA_FMSimpleExpression::CXFA_FMSimpleExpression(uint32_t line, XFA_FM_TOKEN op) |
| 118 : m_line(line), m_op(op) {} | 118 : m_line(line), m_op(op) {} |
| 119 | 119 |
| 120 void CXFA_FMSimpleExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} | 120 void CXFA_FMSimpleExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} |
| 121 | 121 |
| 122 void CXFA_FMSimpleExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {} | 122 void CXFA_FMSimpleExpression::ToImpliedReturnJS(CFX_WideTextBuf& javascript) {} |
| 123 | 123 |
| 124 XFA_FM_TOKEN CXFA_FMSimpleExpression::GetOperatorToken() const { | 124 XFA_FM_TOKEN CXFA_FMSimpleExpression::GetOperatorToken() const { |
| 125 return m_op; | 125 return m_op; |
| 126 } | 126 } |
| 127 | 127 |
| 128 CXFA_FMNullExpression::CXFA_FMNullExpression(FX_DWORD line) | 128 CXFA_FMNullExpression::CXFA_FMNullExpression(uint32_t line) |
| 129 : CXFA_FMSimpleExpression(line, TOKnull) {} | 129 : CXFA_FMSimpleExpression(line, TOKnull) {} |
| 130 | 130 |
| 131 void CXFA_FMNullExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 131 void CXFA_FMNullExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 132 javascript << FX_WSTRC(L"null"); | 132 javascript << FX_WSTRC(L"null"); |
| 133 } | 133 } |
| 134 | 134 |
| 135 CXFA_FMNumberExpression::CXFA_FMNumberExpression(FX_DWORD line, | 135 CXFA_FMNumberExpression::CXFA_FMNumberExpression(uint32_t line, |
| 136 CFX_WideStringC wsNumber) | 136 CFX_WideStringC wsNumber) |
| 137 : CXFA_FMSimpleExpression(line, TOKnumber), m_wsNumber(wsNumber) {} | 137 : CXFA_FMSimpleExpression(line, TOKnumber), m_wsNumber(wsNumber) {} |
| 138 | 138 |
| 139 void CXFA_FMNumberExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 139 void CXFA_FMNumberExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 140 javascript << m_wsNumber; | 140 javascript << m_wsNumber; |
| 141 } | 141 } |
| 142 | 142 |
| 143 CXFA_FMStringExpression::CXFA_FMStringExpression(FX_DWORD line, | 143 CXFA_FMStringExpression::CXFA_FMStringExpression(uint32_t line, |
| 144 CFX_WideStringC wsString) | 144 CFX_WideStringC wsString) |
| 145 : CXFA_FMSimpleExpression(line, TOKstring), m_wsString(wsString) {} | 145 : CXFA_FMSimpleExpression(line, TOKstring), m_wsString(wsString) {} |
| 146 | 146 |
| 147 void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 147 void CXFA_FMStringExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 148 CFX_WideString tempStr = m_wsString; | 148 CFX_WideString tempStr = m_wsString; |
| 149 if (tempStr.GetLength() > 2) { | 149 if (tempStr.GetLength() > 2) { |
| 150 javascript.AppendChar(L'\"'); | 150 javascript.AppendChar(L'\"'); |
| 151 FX_WCHAR oneChar; | 151 FX_WCHAR oneChar; |
| 152 for (int16_t i = 1; i < tempStr.GetLength() - 1; i++) { | 152 for (int16_t i = 1; i < tempStr.GetLength() - 1; i++) { |
| 153 oneChar = tempStr[i]; | 153 oneChar = tempStr[i]; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 164 default: { javascript.AppendChar(oneChar); } break; | 164 default: { javascript.AppendChar(oneChar); } break; |
| 165 } | 165 } |
| 166 } | 166 } |
| 167 javascript.AppendChar(L'\"'); | 167 javascript.AppendChar(L'\"'); |
| 168 } else { | 168 } else { |
| 169 javascript << tempStr; | 169 javascript << tempStr; |
| 170 } | 170 } |
| 171 } | 171 } |
| 172 | 172 |
| 173 CXFA_FMIdentifierExpressionn::CXFA_FMIdentifierExpressionn( | 173 CXFA_FMIdentifierExpressionn::CXFA_FMIdentifierExpressionn( |
| 174 FX_DWORD line, | 174 uint32_t line, |
| 175 CFX_WideStringC wsIdentifier) | 175 CFX_WideStringC wsIdentifier) |
| 176 : CXFA_FMSimpleExpression(line, TOKidentifier), | 176 : CXFA_FMSimpleExpression(line, TOKidentifier), |
| 177 m_wsIdentifier(wsIdentifier) {} | 177 m_wsIdentifier(wsIdentifier) {} |
| 178 | 178 |
| 179 void CXFA_FMIdentifierExpressionn::ToJavaScript(CFX_WideTextBuf& javascript) { | 179 void CXFA_FMIdentifierExpressionn::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 180 CFX_WideString tempStr = m_wsIdentifier; | 180 CFX_WideString tempStr = m_wsIdentifier; |
| 181 if (tempStr.Equal(FX_WSTRC(L"$"))) { | 181 if (tempStr.Equal(FX_WSTRC(L"$"))) { |
| 182 tempStr = FX_WSTRC(L"this"); | 182 tempStr = FX_WSTRC(L"this"); |
| 183 } else if (tempStr.Equal(FX_WSTRC(L"!"))) { | 183 } else if (tempStr.Equal(FX_WSTRC(L"!"))) { |
| 184 tempStr = FX_WSTRC(L"xfa.datasets"); | 184 tempStr = FX_WSTRC(L"xfa.datasets"); |
| 185 } else if (tempStr.Equal(FX_WSTRC(L"$data"))) { | 185 } else if (tempStr.Equal(FX_WSTRC(L"$data"))) { |
| 186 tempStr = FX_WSTRC(L"xfa.datasets.data"); | 186 tempStr = FX_WSTRC(L"xfa.datasets.data"); |
| 187 } else if (tempStr.Equal(FX_WSTRC(L"$event"))) { | 187 } else if (tempStr.Equal(FX_WSTRC(L"$event"))) { |
| 188 tempStr = FX_WSTRC(L"xfa.event"); | 188 tempStr = FX_WSTRC(L"xfa.event"); |
| 189 } else if (tempStr.Equal(FX_WSTRC(L"$form"))) { | 189 } else if (tempStr.Equal(FX_WSTRC(L"$form"))) { |
| 190 tempStr = FX_WSTRC(L"xfa.form"); | 190 tempStr = FX_WSTRC(L"xfa.form"); |
| 191 } else if (tempStr.Equal(FX_WSTRC(L"$host"))) { | 191 } else if (tempStr.Equal(FX_WSTRC(L"$host"))) { |
| 192 tempStr = FX_WSTRC(L"xfa.host"); | 192 tempStr = FX_WSTRC(L"xfa.host"); |
| 193 } else if (tempStr.Equal(FX_WSTRC(L"$layout"))) { | 193 } else if (tempStr.Equal(FX_WSTRC(L"$layout"))) { |
| 194 tempStr = FX_WSTRC(L"xfa.layout"); | 194 tempStr = FX_WSTRC(L"xfa.layout"); |
| 195 } else if (tempStr.Equal(FX_WSTRC(L"$template"))) { | 195 } else if (tempStr.Equal(FX_WSTRC(L"$template"))) { |
| 196 tempStr = FX_WSTRC(L"xfa.template"); | 196 tempStr = FX_WSTRC(L"xfa.template"); |
| 197 } else if (tempStr[0] == L'!') { | 197 } else if (tempStr[0] == L'!') { |
| 198 tempStr = EXCLAMATION_IN_IDENTIFIER + tempStr.Mid(1); | 198 tempStr = EXCLAMATION_IN_IDENTIFIER + tempStr.Mid(1); |
| 199 } | 199 } |
| 200 javascript << tempStr; | 200 javascript << tempStr; |
| 201 } | 201 } |
| 202 | 202 |
| 203 CXFA_FMUnaryExpression::CXFA_FMUnaryExpression(FX_DWORD line, | 203 CXFA_FMUnaryExpression::CXFA_FMUnaryExpression(uint32_t line, |
| 204 XFA_FM_TOKEN op, | 204 XFA_FM_TOKEN op, |
| 205 CXFA_FMSimpleExpression* pExp) | 205 CXFA_FMSimpleExpression* pExp) |
| 206 : CXFA_FMSimpleExpression(line, op), m_pExp(pExp) {} | 206 : CXFA_FMSimpleExpression(line, op), m_pExp(pExp) {} |
| 207 | 207 |
| 208 void CXFA_FMUnaryExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} | 208 void CXFA_FMUnaryExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} |
| 209 | 209 |
| 210 CXFA_FMBinExpression::CXFA_FMBinExpression(FX_DWORD line, | 210 CXFA_FMBinExpression::CXFA_FMBinExpression(uint32_t line, |
| 211 XFA_FM_TOKEN op, | 211 XFA_FM_TOKEN op, |
| 212 CXFA_FMSimpleExpression* pExp1, | 212 CXFA_FMSimpleExpression* pExp1, |
| 213 CXFA_FMSimpleExpression* pExp2) | 213 CXFA_FMSimpleExpression* pExp2) |
| 214 : CXFA_FMSimpleExpression(line, op), m_pExp1(pExp1), m_pExp2(pExp2) {} | 214 : CXFA_FMSimpleExpression(line, op), m_pExp1(pExp1), m_pExp2(pExp2) {} |
| 215 | 215 |
| 216 void CXFA_FMBinExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} | 216 void CXFA_FMBinExpression::ToJavaScript(CFX_WideTextBuf& javascript) {} |
| 217 | 217 |
| 218 CXFA_FMAssignExpression::CXFA_FMAssignExpression(FX_DWORD line, | 218 CXFA_FMAssignExpression::CXFA_FMAssignExpression(uint32_t line, |
| 219 XFA_FM_TOKEN op, | 219 XFA_FM_TOKEN op, |
| 220 CXFA_FMSimpleExpression* pExp1, | 220 CXFA_FMSimpleExpression* pExp1, |
| 221 CXFA_FMSimpleExpression* pExp2) | 221 CXFA_FMSimpleExpression* pExp2) |
| 222 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 222 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 223 | 223 |
| 224 void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 224 void CXFA_FMAssignExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 225 javascript << FX_WSTRC(L"if ("); | 225 javascript << FX_WSTRC(L"if ("); |
| 226 javascript << gs_lpStrExpFuncName[ISFMOBJECT]; | 226 javascript << gs_lpStrExpFuncName[ISFMOBJECT]; |
| 227 javascript << FX_WSTRC(L"("); | 227 javascript << FX_WSTRC(L"("); |
| 228 m_pExp1->ToJavaScript(javascript); | 228 m_pExp1->ToJavaScript(javascript); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 javascript << gs_lpStrExpFuncName[ASSIGN]; | 275 javascript << gs_lpStrExpFuncName[ASSIGN]; |
| 276 javascript << FX_WSTRC(L"("); | 276 javascript << FX_WSTRC(L"("); |
| 277 m_pExp1->ToJavaScript(javascript); | 277 m_pExp1->ToJavaScript(javascript); |
| 278 javascript << FX_WSTRC(L", "); | 278 javascript << FX_WSTRC(L", "); |
| 279 m_pExp2->ToJavaScript(javascript); | 279 m_pExp2->ToJavaScript(javascript); |
| 280 javascript << FX_WSTRC(L");\n}\n"); | 280 javascript << FX_WSTRC(L");\n}\n"); |
| 281 } | 281 } |
| 282 } | 282 } |
| 283 | 283 |
| 284 CXFA_FMLogicalOrExpression::CXFA_FMLogicalOrExpression( | 284 CXFA_FMLogicalOrExpression::CXFA_FMLogicalOrExpression( |
| 285 FX_DWORD line, | 285 uint32_t line, |
| 286 XFA_FM_TOKEN op, | 286 XFA_FM_TOKEN op, |
| 287 CXFA_FMSimpleExpression* pExp1, | 287 CXFA_FMSimpleExpression* pExp1, |
| 288 CXFA_FMSimpleExpression* pExp2) | 288 CXFA_FMSimpleExpression* pExp2) |
| 289 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 289 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 290 | 290 |
| 291 void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 291 void CXFA_FMLogicalOrExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 292 javascript << gs_lpStrExpFuncName[LOGICALOR]; | 292 javascript << gs_lpStrExpFuncName[LOGICALOR]; |
| 293 javascript << FX_WSTRC(L"("); | 293 javascript << FX_WSTRC(L"("); |
| 294 m_pExp1->ToJavaScript(javascript); | 294 m_pExp1->ToJavaScript(javascript); |
| 295 javascript << FX_WSTRC(L", "); | 295 javascript << FX_WSTRC(L", "); |
| 296 m_pExp2->ToJavaScript(javascript); | 296 m_pExp2->ToJavaScript(javascript); |
| 297 javascript << FX_WSTRC(L")"); | 297 javascript << FX_WSTRC(L")"); |
| 298 } | 298 } |
| 299 | 299 |
| 300 CXFA_FMLogicalAndExpression::CXFA_FMLogicalAndExpression( | 300 CXFA_FMLogicalAndExpression::CXFA_FMLogicalAndExpression( |
| 301 FX_DWORD line, | 301 uint32_t line, |
| 302 XFA_FM_TOKEN op, | 302 XFA_FM_TOKEN op, |
| 303 CXFA_FMSimpleExpression* pExp1, | 303 CXFA_FMSimpleExpression* pExp1, |
| 304 CXFA_FMSimpleExpression* pExp2) | 304 CXFA_FMSimpleExpression* pExp2) |
| 305 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 305 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 306 | 306 |
| 307 void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 307 void CXFA_FMLogicalAndExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 308 javascript << gs_lpStrExpFuncName[LOGICALAND]; | 308 javascript << gs_lpStrExpFuncName[LOGICALAND]; |
| 309 javascript << FX_WSTRC(L"("); | 309 javascript << FX_WSTRC(L"("); |
| 310 m_pExp1->ToJavaScript(javascript); | 310 m_pExp1->ToJavaScript(javascript); |
| 311 javascript << FX_WSTRC(L", "); | 311 javascript << FX_WSTRC(L", "); |
| 312 m_pExp2->ToJavaScript(javascript); | 312 m_pExp2->ToJavaScript(javascript); |
| 313 javascript << FX_WSTRC(L")"); | 313 javascript << FX_WSTRC(L")"); |
| 314 } | 314 } |
| 315 | 315 |
| 316 CXFA_FMEqualityExpression::CXFA_FMEqualityExpression( | 316 CXFA_FMEqualityExpression::CXFA_FMEqualityExpression( |
| 317 FX_DWORD line, | 317 uint32_t line, |
| 318 XFA_FM_TOKEN op, | 318 XFA_FM_TOKEN op, |
| 319 CXFA_FMSimpleExpression* pExp1, | 319 CXFA_FMSimpleExpression* pExp1, |
| 320 CXFA_FMSimpleExpression* pExp2) | 320 CXFA_FMSimpleExpression* pExp2) |
| 321 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 321 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 322 | 322 |
| 323 void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 323 void CXFA_FMEqualityExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 324 switch (m_op) { | 324 switch (m_op) { |
| 325 case TOKeq: | 325 case TOKeq: |
| 326 case TOKkseq: | 326 case TOKkseq: |
| 327 javascript << gs_lpStrExpFuncName[EQUALITY]; | 327 javascript << gs_lpStrExpFuncName[EQUALITY]; |
| 328 break; | 328 break; |
| 329 case TOKne: | 329 case TOKne: |
| 330 case TOKksne: | 330 case TOKksne: |
| 331 javascript << gs_lpStrExpFuncName[NOTEQUALITY]; | 331 javascript << gs_lpStrExpFuncName[NOTEQUALITY]; |
| 332 break; | 332 break; |
| 333 default: | 333 default: |
| 334 FXSYS_assert(FALSE); | 334 FXSYS_assert(FALSE); |
| 335 break; | 335 break; |
| 336 } | 336 } |
| 337 javascript << FX_WSTRC(L"("); | 337 javascript << FX_WSTRC(L"("); |
| 338 m_pExp1->ToJavaScript(javascript); | 338 m_pExp1->ToJavaScript(javascript); |
| 339 javascript << FX_WSTRC(L", "); | 339 javascript << FX_WSTRC(L", "); |
| 340 m_pExp2->ToJavaScript(javascript); | 340 m_pExp2->ToJavaScript(javascript); |
| 341 javascript << FX_WSTRC(L")"); | 341 javascript << FX_WSTRC(L")"); |
| 342 } | 342 } |
| 343 | 343 |
| 344 CXFA_FMRelationalExpression::CXFA_FMRelationalExpression( | 344 CXFA_FMRelationalExpression::CXFA_FMRelationalExpression( |
| 345 FX_DWORD line, | 345 uint32_t line, |
| 346 XFA_FM_TOKEN op, | 346 XFA_FM_TOKEN op, |
| 347 CXFA_FMSimpleExpression* pExp1, | 347 CXFA_FMSimpleExpression* pExp1, |
| 348 CXFA_FMSimpleExpression* pExp2) | 348 CXFA_FMSimpleExpression* pExp2) |
| 349 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 349 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 350 | 350 |
| 351 void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 351 void CXFA_FMRelationalExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 352 switch (m_op) { | 352 switch (m_op) { |
| 353 case TOKlt: | 353 case TOKlt: |
| 354 case TOKkslt: | 354 case TOKkslt: |
| 355 javascript << gs_lpStrExpFuncName[LESS]; | 355 javascript << gs_lpStrExpFuncName[LESS]; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 371 break; | 371 break; |
| 372 } | 372 } |
| 373 javascript << FX_WSTRC(L"("); | 373 javascript << FX_WSTRC(L"("); |
| 374 m_pExp1->ToJavaScript(javascript); | 374 m_pExp1->ToJavaScript(javascript); |
| 375 javascript << FX_WSTRC(L", "); | 375 javascript << FX_WSTRC(L", "); |
| 376 m_pExp2->ToJavaScript(javascript); | 376 m_pExp2->ToJavaScript(javascript); |
| 377 javascript << FX_WSTRC(L")"); | 377 javascript << FX_WSTRC(L")"); |
| 378 } | 378 } |
| 379 | 379 |
| 380 CXFA_FMAdditiveExpression::CXFA_FMAdditiveExpression( | 380 CXFA_FMAdditiveExpression::CXFA_FMAdditiveExpression( |
| 381 FX_DWORD line, | 381 uint32_t line, |
| 382 XFA_FM_TOKEN op, | 382 XFA_FM_TOKEN op, |
| 383 CXFA_FMSimpleExpression* pExp1, | 383 CXFA_FMSimpleExpression* pExp1, |
| 384 CXFA_FMSimpleExpression* pExp2) | 384 CXFA_FMSimpleExpression* pExp2) |
| 385 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 385 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 386 | 386 |
| 387 void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 387 void CXFA_FMAdditiveExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 388 switch (m_op) { | 388 switch (m_op) { |
| 389 case TOKplus: | 389 case TOKplus: |
| 390 javascript << gs_lpStrExpFuncName[PLUS]; | 390 javascript << gs_lpStrExpFuncName[PLUS]; |
| 391 break; | 391 break; |
| 392 case TOKminus: | 392 case TOKminus: |
| 393 javascript << gs_lpStrExpFuncName[MINUS]; | 393 javascript << gs_lpStrExpFuncName[MINUS]; |
| 394 break; | 394 break; |
| 395 default: | 395 default: |
| 396 FXSYS_assert(FALSE); | 396 FXSYS_assert(FALSE); |
| 397 break; | 397 break; |
| 398 } | 398 } |
| 399 javascript << FX_WSTRC(L"("); | 399 javascript << FX_WSTRC(L"("); |
| 400 m_pExp1->ToJavaScript(javascript); | 400 m_pExp1->ToJavaScript(javascript); |
| 401 javascript << FX_WSTRC(L", "); | 401 javascript << FX_WSTRC(L", "); |
| 402 m_pExp2->ToJavaScript(javascript); | 402 m_pExp2->ToJavaScript(javascript); |
| 403 javascript << FX_WSTRC(L")"); | 403 javascript << FX_WSTRC(L")"); |
| 404 } | 404 } |
| 405 | 405 |
| 406 CXFA_FMMultiplicativeExpression::CXFA_FMMultiplicativeExpression( | 406 CXFA_FMMultiplicativeExpression::CXFA_FMMultiplicativeExpression( |
| 407 FX_DWORD line, | 407 uint32_t line, |
| 408 XFA_FM_TOKEN op, | 408 XFA_FM_TOKEN op, |
| 409 CXFA_FMSimpleExpression* pExp1, | 409 CXFA_FMSimpleExpression* pExp1, |
| 410 CXFA_FMSimpleExpression* pExp2) | 410 CXFA_FMSimpleExpression* pExp2) |
| 411 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} | 411 : CXFA_FMBinExpression(line, op, pExp1, pExp2) {} |
| 412 | 412 |
| 413 void CXFA_FMMultiplicativeExpression::ToJavaScript( | 413 void CXFA_FMMultiplicativeExpression::ToJavaScript( |
| 414 CFX_WideTextBuf& javascript) { | 414 CFX_WideTextBuf& javascript) { |
| 415 switch (m_op) { | 415 switch (m_op) { |
| 416 case TOKmul: | 416 case TOKmul: |
| 417 javascript << gs_lpStrExpFuncName[MULTIPLE]; | 417 javascript << gs_lpStrExpFuncName[MULTIPLE]; |
| 418 break; | 418 break; |
| 419 case TOKdiv: | 419 case TOKdiv: |
| 420 javascript << gs_lpStrExpFuncName[DIVIDE]; | 420 javascript << gs_lpStrExpFuncName[DIVIDE]; |
| 421 break; | 421 break; |
| 422 default: | 422 default: |
| 423 FXSYS_assert(FALSE); | 423 FXSYS_assert(FALSE); |
| 424 break; | 424 break; |
| 425 } | 425 } |
| 426 javascript << FX_WSTRC(L"("); | 426 javascript << FX_WSTRC(L"("); |
| 427 m_pExp1->ToJavaScript(javascript); | 427 m_pExp1->ToJavaScript(javascript); |
| 428 javascript << FX_WSTRC(L", "); | 428 javascript << FX_WSTRC(L", "); |
| 429 m_pExp2->ToJavaScript(javascript); | 429 m_pExp2->ToJavaScript(javascript); |
| 430 javascript << FX_WSTRC(L")"); | 430 javascript << FX_WSTRC(L")"); |
| 431 } | 431 } |
| 432 | 432 |
| 433 CXFA_FMPosExpression::CXFA_FMPosExpression(FX_DWORD line, | 433 CXFA_FMPosExpression::CXFA_FMPosExpression(uint32_t line, |
| 434 CXFA_FMSimpleExpression* pExp) | 434 CXFA_FMSimpleExpression* pExp) |
| 435 : CXFA_FMUnaryExpression(line, TOKplus, pExp) {} | 435 : CXFA_FMUnaryExpression(line, TOKplus, pExp) {} |
| 436 | 436 |
| 437 void CXFA_FMPosExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 437 void CXFA_FMPosExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 438 javascript << gs_lpStrExpFuncName[POSITIVE]; | 438 javascript << gs_lpStrExpFuncName[POSITIVE]; |
| 439 javascript << FX_WSTRC(L"("); | 439 javascript << FX_WSTRC(L"("); |
| 440 m_pExp->ToJavaScript(javascript); | 440 m_pExp->ToJavaScript(javascript); |
| 441 javascript << FX_WSTRC(L")"); | 441 javascript << FX_WSTRC(L")"); |
| 442 } | 442 } |
| 443 | 443 |
| 444 CXFA_FMNegExpression::CXFA_FMNegExpression(FX_DWORD line, | 444 CXFA_FMNegExpression::CXFA_FMNegExpression(uint32_t line, |
| 445 CXFA_FMSimpleExpression* pExp) | 445 CXFA_FMSimpleExpression* pExp) |
| 446 : CXFA_FMUnaryExpression(line, TOKminus, pExp) {} | 446 : CXFA_FMUnaryExpression(line, TOKminus, pExp) {} |
| 447 | 447 |
| 448 void CXFA_FMNegExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 448 void CXFA_FMNegExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 449 javascript << gs_lpStrExpFuncName[NEGATIVE]; | 449 javascript << gs_lpStrExpFuncName[NEGATIVE]; |
| 450 javascript << FX_WSTRC(L"("); | 450 javascript << FX_WSTRC(L"("); |
| 451 m_pExp->ToJavaScript(javascript); | 451 m_pExp->ToJavaScript(javascript); |
| 452 javascript << FX_WSTRC(L")"); | 452 javascript << FX_WSTRC(L")"); |
| 453 } | 453 } |
| 454 | 454 |
| 455 CXFA_FMNotExpression::CXFA_FMNotExpression(FX_DWORD line, | 455 CXFA_FMNotExpression::CXFA_FMNotExpression(uint32_t line, |
| 456 CXFA_FMSimpleExpression* pExp) | 456 CXFA_FMSimpleExpression* pExp) |
| 457 : CXFA_FMUnaryExpression(line, TOKksnot, pExp) {} | 457 : CXFA_FMUnaryExpression(line, TOKksnot, pExp) {} |
| 458 | 458 |
| 459 void CXFA_FMNotExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 459 void CXFA_FMNotExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 460 javascript << gs_lpStrExpFuncName[NOT]; | 460 javascript << gs_lpStrExpFuncName[NOT]; |
| 461 javascript << FX_WSTRC(L"("); | 461 javascript << FX_WSTRC(L"("); |
| 462 m_pExp->ToJavaScript(javascript); | 462 m_pExp->ToJavaScript(javascript); |
| 463 javascript << FX_WSTRC(L")"); | 463 javascript << FX_WSTRC(L")"); |
| 464 } | 464 } |
| 465 | 465 |
| 466 CXFA_FMCallExpression::CXFA_FMCallExpression(FX_DWORD line, | 466 CXFA_FMCallExpression::CXFA_FMCallExpression(uint32_t line, |
| 467 CXFA_FMSimpleExpression* pExp, | 467 CXFA_FMSimpleExpression* pExp, |
| 468 CFX_PtrArray* pArguments, | 468 CFX_PtrArray* pArguments, |
| 469 FX_BOOL bIsSomMethod) | 469 FX_BOOL bIsSomMethod) |
| 470 : CXFA_FMUnaryExpression(line, TOKcall, pExp), | 470 : CXFA_FMUnaryExpression(line, TOKcall, pExp), |
| 471 m_bIsSomMethod(bIsSomMethod), | 471 m_bIsSomMethod(bIsSomMethod), |
| 472 m_pArguments(pArguments) {} | 472 m_pArguments(pArguments) {} |
| 473 | 473 |
| 474 CXFA_FMCallExpression::~CXFA_FMCallExpression() { | 474 CXFA_FMCallExpression::~CXFA_FMCallExpression() { |
| 475 if (m_pArguments) { | 475 if (m_pArguments) { |
| 476 for (int i = 0; i < m_pArguments->GetSize(); ++i) { | 476 for (int i = 0; i < m_pArguments->GetSize(); ++i) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 491 return func.m_uHash < hash; | 491 return func.m_uHash < hash; |
| 492 }); | 492 }); |
| 493 if (pFunc < pEnd && uHash == pFunc->m_uHash) { | 493 if (pFunc < pEnd && uHash == pFunc->m_uHash) { |
| 494 funcName->Clear(); | 494 funcName->Clear(); |
| 495 *funcName << pFunc->m_buildinfunc; | 495 *funcName << pFunc->m_buildinfunc; |
| 496 return true; | 496 return true; |
| 497 } | 497 } |
| 498 return false; | 498 return false; |
| 499 } | 499 } |
| 500 | 500 |
| 501 FX_DWORD CXFA_FMCallExpression::IsMethodWithObjParam( | 501 uint32_t CXFA_FMCallExpression::IsMethodWithObjParam( |
| 502 const CFX_WideStringC& methodName) { | 502 const CFX_WideStringC& methodName) { |
| 503 int32_t iLength = methodName.GetLength(); | 503 int32_t iLength = methodName.GetLength(); |
| 504 uint32_t uHash = FX_HashCode_String_GetW(methodName.GetPtr(), iLength); | 504 uint32_t uHash = FX_HashCode_String_GetW(methodName.GetPtr(), iLength); |
| 505 XFA_FMSOMMethod somMethodWithObjPara; | 505 XFA_FMSOMMethod somMethodWithObjPara; |
| 506 FX_DWORD parameters = 0x00; | 506 uint32_t parameters = 0x00; |
| 507 int32_t iStart = 0, | 507 int32_t iStart = 0, |
| 508 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1; | 508 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1; |
| 509 int32_t iMid = (iStart + iEnd) / 2; | 509 int32_t iMid = (iStart + iEnd) / 2; |
| 510 do { | 510 do { |
| 511 iMid = (iStart + iEnd) / 2; | 511 iMid = (iStart + iEnd) / 2; |
| 512 somMethodWithObjPara = gs_FMSomMethods[iMid]; | 512 somMethodWithObjPara = gs_FMSomMethods[iMid]; |
| 513 if (uHash == somMethodWithObjPara.m_uHash) { | 513 if (uHash == somMethodWithObjPara.m_uHash) { |
| 514 parameters = somMethodWithObjPara.m_dParameters; | 514 parameters = somMethodWithObjPara.m_dParameters; |
| 515 break; | 515 break; |
| 516 } else if (uHash < somMethodWithObjPara.m_uHash) { | 516 } else if (uHash < somMethodWithObjPara.m_uHash) { |
| 517 iEnd = iMid - 1; | 517 iEnd = iMid - 1; |
| 518 } else { | 518 } else { |
| 519 iStart = iMid + 1; | 519 iStart = iMid + 1; |
| 520 } | 520 } |
| 521 } while (iStart <= iEnd); | 521 } while (iStart <= iEnd); |
| 522 return parameters; | 522 return parameters; |
| 523 } | 523 } |
| 524 | 524 |
| 525 void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 525 void CXFA_FMCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 526 CFX_WideTextBuf funcName; | 526 CFX_WideTextBuf funcName; |
| 527 m_pExp->ToJavaScript(funcName); | 527 m_pExp->ToJavaScript(funcName); |
| 528 if (m_bIsSomMethod) { | 528 if (m_bIsSomMethod) { |
| 529 javascript << funcName; | 529 javascript << funcName; |
| 530 javascript << FX_WSTRC(L"("); | 530 javascript << FX_WSTRC(L"("); |
| 531 if (m_pArguments) { | 531 if (m_pArguments) { |
| 532 FX_DWORD methodPara = IsMethodWithObjParam(funcName.GetWideString()); | 532 uint32_t methodPara = IsMethodWithObjParam(funcName.GetWideString()); |
| 533 if (methodPara > 0) { | 533 if (methodPara > 0) { |
| 534 for (int i = 0; i < m_pArguments->GetSize(); ++i) { | 534 for (int i = 0; i < m_pArguments->GetSize(); ++i) { |
| 535 if ((methodPara & (0x01 << i)) > 0) { | 535 if ((methodPara & (0x01 << i)) > 0) { |
| 536 javascript << gs_lpStrExpFuncName[GETFMJSOBJ]; | 536 javascript << gs_lpStrExpFuncName[GETFMJSOBJ]; |
| 537 } else { | 537 } else { |
| 538 javascript << gs_lpStrExpFuncName[GETFMVALUE]; | 538 javascript << gs_lpStrExpFuncName[GETFMVALUE]; |
| 539 } | 539 } |
| 540 javascript << FX_WSTRC(L"("); | 540 javascript << FX_WSTRC(L"("); |
| 541 CXFA_FMSimpleExpression* e = | 541 CXFA_FMSimpleExpression* e = |
| 542 reinterpret_cast<CXFA_FMSimpleExpression*>( | 542 reinterpret_cast<CXFA_FMSimpleExpression*>( |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 } | 608 } |
| 609 } | 609 } |
| 610 javascript << FX_WSTRC(L")"); | 610 javascript << FX_WSTRC(L")"); |
| 611 if (isEvalFunc) { | 611 if (isEvalFunc) { |
| 612 javascript << FX_WSTRC(L")"); | 612 javascript << FX_WSTRC(L")"); |
| 613 } | 613 } |
| 614 } | 614 } |
| 615 } | 615 } |
| 616 | 616 |
| 617 CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression( | 617 CXFA_FMDotAccessorExpression::CXFA_FMDotAccessorExpression( |
| 618 FX_DWORD line, | 618 uint32_t line, |
| 619 CXFA_FMSimpleExpression* pAccessor, | 619 CXFA_FMSimpleExpression* pAccessor, |
| 620 XFA_FM_TOKEN op, | 620 XFA_FM_TOKEN op, |
| 621 CFX_WideStringC wsIdentifier, | 621 CFX_WideStringC wsIdentifier, |
| 622 CXFA_FMSimpleExpression* pIndexExp) | 622 CXFA_FMSimpleExpression* pIndexExp) |
| 623 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), | 623 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), |
| 624 m_wsIdentifier(wsIdentifier) {} | 624 m_wsIdentifier(wsIdentifier) {} |
| 625 | 625 |
| 626 void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 626 void CXFA_FMDotAccessorExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 627 javascript << gs_lpStrExpFuncName[DOT]; | 627 javascript << gs_lpStrExpFuncName[DOT]; |
| 628 javascript << FX_WSTRC(L"("); | 628 javascript << FX_WSTRC(L"("); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 648 } else { | 648 } else { |
| 649 javascript << FX_WSTRC(L"\""); | 649 javascript << FX_WSTRC(L"\""); |
| 650 javascript << m_wsIdentifier; | 650 javascript << m_wsIdentifier; |
| 651 javascript << FX_WSTRC(L"\", "); | 651 javascript << FX_WSTRC(L"\", "); |
| 652 } | 652 } |
| 653 m_pExp2->ToJavaScript(javascript); | 653 m_pExp2->ToJavaScript(javascript); |
| 654 javascript << FX_WSTRC(L")"); | 654 javascript << FX_WSTRC(L")"); |
| 655 } | 655 } |
| 656 | 656 |
| 657 CXFA_FMIndexExpression::CXFA_FMIndexExpression( | 657 CXFA_FMIndexExpression::CXFA_FMIndexExpression( |
| 658 FX_DWORD line, | 658 uint32_t line, |
| 659 XFA_FM_AccessorIndex accessorIndex, | 659 XFA_FM_AccessorIndex accessorIndex, |
| 660 CXFA_FMSimpleExpression* pIndexExp, | 660 CXFA_FMSimpleExpression* pIndexExp, |
| 661 FX_BOOL bIsStarIndex) | 661 FX_BOOL bIsStarIndex) |
| 662 : CXFA_FMUnaryExpression(line, TOKlbracket, pIndexExp), | 662 : CXFA_FMUnaryExpression(line, TOKlbracket, pIndexExp), |
| 663 m_accessorIndex(accessorIndex), | 663 m_accessorIndex(accessorIndex), |
| 664 m_bIsStarIndex(bIsStarIndex) {} | 664 m_bIsStarIndex(bIsStarIndex) {} |
| 665 | 665 |
| 666 void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 666 void CXFA_FMIndexExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 667 switch (m_accessorIndex) { | 667 switch (m_accessorIndex) { |
| 668 case ACCESSOR_NO_INDEX: | 668 case ACCESSOR_NO_INDEX: |
| (...skipping 15 matching lines...) Expand all Loading... |
| 684 javascript << FX_WSTRC(L", "); | 684 javascript << FX_WSTRC(L", "); |
| 685 if (m_pExp) { | 685 if (m_pExp) { |
| 686 m_pExp->ToJavaScript(javascript); | 686 m_pExp->ToJavaScript(javascript); |
| 687 } else { | 687 } else { |
| 688 javascript << FX_WSTRC(L"0"); | 688 javascript << FX_WSTRC(L"0"); |
| 689 } | 689 } |
| 690 } | 690 } |
| 691 } | 691 } |
| 692 | 692 |
| 693 CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression( | 693 CXFA_FMDotDotAccessorExpression::CXFA_FMDotDotAccessorExpression( |
| 694 FX_DWORD line, | 694 uint32_t line, |
| 695 CXFA_FMSimpleExpression* pAccessor, | 695 CXFA_FMSimpleExpression* pAccessor, |
| 696 XFA_FM_TOKEN op, | 696 XFA_FM_TOKEN op, |
| 697 CFX_WideStringC wsIdentifier, | 697 CFX_WideStringC wsIdentifier, |
| 698 CXFA_FMSimpleExpression* pIndexExp) | 698 CXFA_FMSimpleExpression* pIndexExp) |
| 699 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), | 699 : CXFA_FMBinExpression(line, op, pAccessor, pIndexExp), |
| 700 m_wsIdentifier(wsIdentifier) {} | 700 m_wsIdentifier(wsIdentifier) {} |
| 701 | 701 |
| 702 void CXFA_FMDotDotAccessorExpression::ToJavaScript( | 702 void CXFA_FMDotDotAccessorExpression::ToJavaScript( |
| 703 CFX_WideTextBuf& javascript) { | 703 CFX_WideTextBuf& javascript) { |
| 704 javascript << gs_lpStrExpFuncName[DOTDOT]; | 704 javascript << gs_lpStrExpFuncName[DOTDOT]; |
| 705 javascript << FX_WSTRC(L"("); | 705 javascript << FX_WSTRC(L"("); |
| 706 m_pExp1->ToJavaScript(javascript); | 706 m_pExp1->ToJavaScript(javascript); |
| 707 javascript << FX_WSTRC(L", "); | 707 javascript << FX_WSTRC(L", "); |
| 708 javascript << FX_WSTRC(L"\""); | 708 javascript << FX_WSTRC(L"\""); |
| 709 if (m_pExp1 && m_pExp1->GetOperatorToken() == TOKidentifier) { | 709 if (m_pExp1 && m_pExp1->GetOperatorToken() == TOKidentifier) { |
| 710 m_pExp1->ToJavaScript(javascript); | 710 m_pExp1->ToJavaScript(javascript); |
| 711 } | 711 } |
| 712 javascript << FX_WSTRC(L"\", "); | 712 javascript << FX_WSTRC(L"\", "); |
| 713 javascript << FX_WSTRC(L"\""); | 713 javascript << FX_WSTRC(L"\""); |
| 714 javascript << m_wsIdentifier; | 714 javascript << m_wsIdentifier; |
| 715 javascript << FX_WSTRC(L"\", "); | 715 javascript << FX_WSTRC(L"\", "); |
| 716 m_pExp2->ToJavaScript(javascript); | 716 m_pExp2->ToJavaScript(javascript); |
| 717 javascript << FX_WSTRC(L")"); | 717 javascript << FX_WSTRC(L")"); |
| 718 } | 718 } |
| 719 | 719 |
| 720 CXFA_FMMethodCallExpression::CXFA_FMMethodCallExpression( | 720 CXFA_FMMethodCallExpression::CXFA_FMMethodCallExpression( |
| 721 FX_DWORD line, | 721 uint32_t line, |
| 722 CXFA_FMSimpleExpression* pAccessorExp1, | 722 CXFA_FMSimpleExpression* pAccessorExp1, |
| 723 CXFA_FMSimpleExpression* pCallExp) | 723 CXFA_FMSimpleExpression* pCallExp) |
| 724 : CXFA_FMBinExpression(line, TOKdot, pAccessorExp1, pCallExp) {} | 724 : CXFA_FMBinExpression(line, TOKdot, pAccessorExp1, pCallExp) {} |
| 725 | 725 |
| 726 void CXFA_FMMethodCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { | 726 void CXFA_FMMethodCallExpression::ToJavaScript(CFX_WideTextBuf& javascript) { |
| 727 javascript << FX_WSTRC(L"(\nfunction ()\n{\n"); | 727 javascript << FX_WSTRC(L"(\nfunction ()\n{\n"); |
| 728 javascript << FX_WSTRC(L"var method_return_value = null;\n"); | 728 javascript << FX_WSTRC(L"var method_return_value = null;\n"); |
| 729 javascript << FX_WSTRC(L"var accessor_object = "); | 729 javascript << FX_WSTRC(L"var accessor_object = "); |
| 730 m_pExp1->ToJavaScript(javascript); | 730 m_pExp1->ToJavaScript(javascript); |
| 731 javascript << FX_WSTRC(L";\n"); | 731 javascript << FX_WSTRC(L";\n"); |
| 732 javascript << FX_WSTRC(L"if ("); | 732 javascript << FX_WSTRC(L"if ("); |
| 733 javascript << gs_lpStrExpFuncName[ISFMARRAY]; | 733 javascript << gs_lpStrExpFuncName[ISFMARRAY]; |
| 734 javascript << FX_WSTRC(L"(accessor_object))\n{\n"); | 734 javascript << FX_WSTRC(L"(accessor_object))\n{\n"); |
| 735 javascript << FX_WSTRC( | 735 javascript << FX_WSTRC( |
| 736 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n"); | 736 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n"); |
| 737 javascript << FX_WSTRC(L"method_return_value = accessor_object[index]."); | 737 javascript << FX_WSTRC(L"method_return_value = accessor_object[index]."); |
| 738 m_pExp2->ToJavaScript(javascript); | 738 m_pExp2->ToJavaScript(javascript); |
| 739 javascript << FX_WSTRC(L";\n}\n}\n"); | 739 javascript << FX_WSTRC(L";\n}\n}\n"); |
| 740 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object."); | 740 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object."); |
| 741 m_pExp2->ToJavaScript(javascript); | 741 m_pExp2->ToJavaScript(javascript); |
| 742 javascript << FX_WSTRC(L";\n}\n"); | 742 javascript << FX_WSTRC(L";\n}\n"); |
| 743 javascript << FX_WSTRC(L"return method_return_value;\n"); | 743 javascript << FX_WSTRC(L"return method_return_value;\n"); |
| 744 javascript << FX_WSTRC(L"}\n).call(this)"); | 744 javascript << FX_WSTRC(L"}\n).call(this)"); |
| 745 } | 745 } |
| OLD | NEW |