1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved.
2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file.
4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef _XFA_FM2JS_CONTEXT_H
8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define _XFA_FM2JS_CONTEXT_H
9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CXFA_FM2JSContext {
10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public:
11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Abs(FXJSE_HOBJECT hThis,
12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Avg(FXJSE_HOBJECT hThis,
15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Ceil(FXJSE_HOBJECT hThis,
18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Count(FXJSE_HOBJECT hThis,
21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Floor(FXJSE_HOBJECT hThis,
24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Max(FXJSE_HOBJECT hThis,
27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Min(FXJSE_HOBJECT hThis,
30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Mod(FXJSE_HOBJECT hThis,
33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Round(FXJSE_HOBJECT hThis,
36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Sum(FXJSE_HOBJECT hThis,
39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Date(FXJSE_HOBJECT hThis,
42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Date2Num(FXJSE_HOBJECT hThis,
45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void DateFmt(FXJSE_HOBJECT hThis,
48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      const CFX_ByteStringC& szFuncName,
49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      CFXJSE_Arguments& args);
50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void IsoDate2Num(FXJSE_HOBJECT hThis,
51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          const CFX_ByteStringC& szFuncName,
52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          CFXJSE_Arguments& args);
53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void IsoTime2Num(FXJSE_HOBJECT hThis,
54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          const CFX_ByteStringC& szFuncName,
55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          CFXJSE_Arguments& args);
56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void LocalDateFmt(FXJSE_HOBJECT hThis,
57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void LocalTimeFmt(FXJSE_HOBJECT hThis,
60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Num2Date(FXJSE_HOBJECT hThis,
63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Num2GMTime(FXJSE_HOBJECT hThis,
66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         const CFX_ByteStringC& szFuncName,
67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         CFXJSE_Arguments& args);
68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Num2Time(FXJSE_HOBJECT hThis,
69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Time(FXJSE_HOBJECT hThis,
72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Time2Num(FXJSE_HOBJECT hThis,
75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void TimeFmt(FXJSE_HOBJECT hThis,
78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      const CFX_ByteStringC& szFuncName,
79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      CFXJSE_Arguments& args);
80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL IsIsoDateFormat(const FX_CHAR* pData,
82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t iLength,
83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iStyle,
84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iYear,
85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iMonth,
86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iDay);
87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL IsIsoTimeFormat(const FX_CHAR* pData,
88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t iLength,
89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iHour,
90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iMinute,
91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iSecond,
92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iMilliSecond,
93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iZoneHour,
94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iZoneMinute);
95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL IsIsoDateTimeFormat(const FX_CHAR* pData,
96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t iLength,
97ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iYear,
98ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iMonth,
99ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iDay,
100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iHour,
101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iMinute,
102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iSecond,
103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iMillionSecond,
104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iZoneHour,
105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                     int32_t& iZoneMinute);
106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL Local2IsoDate(FXJSE_HOBJECT hThis,
107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szDate,
108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFormat,
109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szLocale,
110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFX_ByteString& strIsoDate);
111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL Local2IsoTime(FXJSE_HOBJECT hThis,
112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szTime,
113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFormat,
114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szLocale,
115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFX_ByteString& strIsoTime);
116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL IsoDate2Local(FXJSE_HOBJECT hThis,
117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szDate,
118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFormat,
119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szLocale,
120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFX_ByteString& strLocalDate);
121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL IsoTime2Local(FXJSE_HOBJECT hThis,
122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szTime,
123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFormat,
124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szLocale,
125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFX_ByteString& strLocalTime);
126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL GetGMTTime(FXJSE_HOBJECT hThis,
127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szTime,
128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szFormat,
129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szLocale,
130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            CFX_ByteString& strGMTTime);
131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static int32_t DateString2Num(const CFX_ByteStringC& szDateString);
132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetLocalDateFormat(FXJSE_HOBJECT hThis,
133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t iStyle,
134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 const CFX_ByteStringC& szLocalStr,
135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 CFX_ByteString& strFormat,
136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FX_BOOL bStandard);
137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetLocalTimeFormat(FXJSE_HOBJECT hThis,
138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t iStyle,
139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 const CFX_ByteStringC& szLocalStr,
140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 CFX_ByteString& strFormat,
141ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FX_BOOL bStandard);
142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetStandardDateFormat(FXJSE_HOBJECT hThis,
143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    int32_t iStyle,
144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    const CFX_ByteStringC& szLocalStr,
145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    CFX_ByteString& strFormat);
146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetStandardTimeFormat(FXJSE_HOBJECT hThis,
147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    int32_t iStyle,
148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    const CFX_ByteStringC& szLocalStr,
149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    CFX_ByteString& strFormat);
150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Num2AllTime(FXJSE_HOBJECT hThis,
152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          int32_t iTime,
153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          const CFX_ByteStringC& szFormat,
154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          const CFX_ByteStringC& szLocale,
155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          FX_BOOL bGM,
156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          CFX_ByteString& strTime);
157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetLocalTimeZone(int32_t& iHour, int32_t& iMin, int32_t& iSec);
158ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Apr(FXJSE_HOBJECT hThis,
160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void CTerm(FXJSE_HOBJECT hThis,
163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
164ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
165ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void FV(FXJSE_HOBJECT hThis,
166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 const CFX_ByteStringC& szFuncName,
167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 CFXJSE_Arguments& args);
168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void IPmt(FXJSE_HOBJECT hThis,
169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void NPV(FXJSE_HOBJECT hThis,
172ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Pmt(FXJSE_HOBJECT hThis,
175ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void PPmt(FXJSE_HOBJECT hThis,
178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
179ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void PV(FXJSE_HOBJECT hThis,
181ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 const CFX_ByteStringC& szFuncName,
182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 CFXJSE_Arguments& args);
183ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Rate(FXJSE_HOBJECT hThis,
184ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Term(FXJSE_HOBJECT hThis,
187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Choose(FXJSE_HOBJECT hThis,
190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Exists(FXJSE_HOBJECT hThis,
193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void HasValue(FXJSE_HOBJECT hThis,
196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Oneof(FXJSE_HOBJECT hThis,
199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Within(FXJSE_HOBJECT hThis,
202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void If(FXJSE_HOBJECT hThis,
205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 const CFX_ByteStringC& szFuncName,
206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 CFXJSE_Arguments& args);
207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Eval(FXJSE_HOBJECT hThis,
208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Ref(FXJSE_HOBJECT hThis,
211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void UnitType(FXJSE_HOBJECT hThis,
214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       const CFX_ByteStringC& szFuncName,
215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                       CFXJSE_Arguments& args);
216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void UnitValue(FXJSE_HOBJECT hThis,
217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        const CFX_ByteStringC& szFuncName,
218ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        CFXJSE_Arguments& args);
219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
220ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void At(FXJSE_HOBJECT hThis,
221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 const CFX_ByteStringC& szFuncName,
222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                 CFXJSE_Arguments& args);
223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Concat(FXJSE_HOBJECT hThis,
224ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Decode(FXJSE_HOBJECT hThis,
227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
228ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void DecodeURL(const CFX_ByteStringC& szURLString,
230ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        CFX_ByteTextBuf& szResultBuf);
231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void DecodeHTML(const CFX_ByteStringC& szHTMLString,
232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         CFX_ByteTextBuf& szResultBuf);
233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void DecodeXML(const CFX_ByteStringC& szXMLString,
234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        CFX_ByteTextBuf& szResultBuf);
235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Encode(FXJSE_HOBJECT hThis,
236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void EncodeURL(const CFX_ByteStringC& szURLString,
239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        CFX_ByteTextBuf& szResultBuf);
240ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void EncodeHTML(const CFX_ByteStringC& szHTMLString,
241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         CFX_ByteTextBuf& szResultBuf);
242ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void EncodeXML(const CFX_ByteStringC& szXMLString,
243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                        CFX_ByteTextBuf& szResultBuf);
244ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL HTMLSTR2Code(const CFX_WideStringC& pData, uint32_t& iCode);
245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL HTMLCode2STR(uint32_t iCode, CFX_WideString& wsHTMLReserve);
246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Format(FXJSE_HOBJECT hThis,
247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Left(FXJSE_HOBJECT hThis,
250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Len(FXJSE_HOBJECT hThis,
253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
254ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Lower(FXJSE_HOBJECT hThis,
256ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
258ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Ltrim(FXJSE_HOBJECT hThis,
259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
260ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Parse(FXJSE_HOBJECT hThis,
262ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
263ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Replace(FXJSE_HOBJECT hThis,
265ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      const CFX_ByteStringC& szFuncName,
266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      CFXJSE_Arguments& args);
267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Right(FXJSE_HOBJECT hThis,
268ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
269ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
270ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Rtrim(FXJSE_HOBJECT hThis,
271ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
272ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
273ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Space(FXJSE_HOBJECT hThis,
274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
275ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
276ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Str(FXJSE_HOBJECT hThis,
277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
278ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
279ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Stuff(FXJSE_HOBJECT hThis,
280ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
281ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
282ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Substr(FXJSE_HOBJECT hThis,
283ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     const CFX_ByteStringC& szFuncName,
284ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFXJSE_Arguments& args);
285ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Uuid(FXJSE_HOBJECT hThis,
286ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
287ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Upper(FXJSE_HOBJECT hThis,
289ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    const CFX_ByteStringC& szFuncName,
290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                    CFXJSE_Arguments& args);
291ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void WordNum(FXJSE_HOBJECT hThis,
292ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      const CFX_ByteStringC& szFuncName,
293ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                      CFXJSE_Arguments& args);
294ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void TrillionUS(const CFX_ByteStringC& szData,
295ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         CFX_ByteTextBuf& strBuf);
296ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void WordUS(const CFX_ByteStringC& szData,
297ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     int32_t iStyle,
298ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                     CFX_ByteTextBuf& strBuf);
299ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Get(FXJSE_HOBJECT hThis,
301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
302ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
303ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Post(FXJSE_HOBJECT hThis,
304ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   const CFX_ByteStringC& szFuncName,
305ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                   CFXJSE_Arguments& args);
306ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void Put(FXJSE_HOBJECT hThis,
307ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  const CFX_ByteStringC& szFuncName,
308ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CFXJSE_Arguments& args);
309ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void assign_value_operator(FXJSE_HOBJECT hThis,
310ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    const CFX_ByteStringC& szFuncName,
311ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    CFXJSE_Arguments& args);
312ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void logical_or_operator(FXJSE_HOBJECT hThis,
313ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                  const CFX_ByteStringC& szFuncName,
314ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                  CFXJSE_Arguments& args);
315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void logical_and_operator(FXJSE_HOBJECT hThis,
316ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   const CFX_ByteStringC& szFuncName,
317ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   CFXJSE_Arguments& args);
318ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void equality_operator(FXJSE_HOBJECT hThis,
319ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                const CFX_ByteStringC& szFuncName,
320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                CFXJSE_Arguments& args);
321ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void notequality_operator(FXJSE_HOBJECT hThis,
322ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   const CFX_ByteStringC& szFuncName,
323ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   CFXJSE_Arguments& args);
324ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL fm_ref_equal(FXJSE_HOBJECT hThis, CFXJSE_Arguments& args);
325ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void less_operator(FXJSE_HOBJECT hThis,
326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szFuncName,
327ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            CFXJSE_Arguments& args);
328ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void lessequal_operator(FXJSE_HOBJECT hThis,
329ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 const CFX_ByteStringC& szFuncName,
330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 CFXJSE_Arguments& args);
331ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void greater_operator(FXJSE_HOBJECT hThis,
332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFuncName,
333ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFXJSE_Arguments& args);
334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void greaterequal_operator(FXJSE_HOBJECT hThis,
335ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    const CFX_ByteStringC& szFuncName,
336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    CFXJSE_Arguments& args);
337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void plus_operator(FXJSE_HOBJECT hThis,
338ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szFuncName,
339ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            CFXJSE_Arguments& args);
340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void minus_operator(FXJSE_HOBJECT hThis,
341ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                             const CFX_ByteStringC& szFuncName,
342ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                             CFXJSE_Arguments& args);
343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void multiple_operator(FXJSE_HOBJECT hThis,
344ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                const CFX_ByteStringC& szFuncName,
345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                CFXJSE_Arguments& args);
346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void divide_operator(FXJSE_HOBJECT hThis,
347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                              const CFX_ByteStringC& szFuncName,
348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                              CFXJSE_Arguments& args);
349ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void positive_operator(FXJSE_HOBJECT hThis,
350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                const CFX_ByteStringC& szFuncName,
351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                CFXJSE_Arguments& args);
352ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void negative_operator(FXJSE_HOBJECT hThis,
353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                const CFX_ByteStringC& szFuncName,
354ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                CFXJSE_Arguments& args);
355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void logical_not_operator(FXJSE_HOBJECT hThis,
356ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   const CFX_ByteStringC& szFuncName,
357ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                   CFXJSE_Arguments& args);
358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void dot_accessor(FXJSE_HOBJECT hThis,
359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
360ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
361ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void dotdot_accessor(FXJSE_HOBJECT hThis,
362ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                              const CFX_ByteStringC& szFuncName,
363ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                              CFXJSE_Arguments& args);
364ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void eval_translation(FXJSE_HOBJECT hThis,
365ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFuncName,
366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFXJSE_Arguments& args);
367ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void is_fm_object(FXJSE_HOBJECT hThis,
368ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
370ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void is_fm_array(FXJSE_HOBJECT hThis,
371ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          const CFX_ByteStringC& szFuncName,
372ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                          CFXJSE_Arguments& args);
373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void get_fm_value(FXJSE_HOBJECT hThis,
374ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
375ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
376ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void get_fm_jsobj(FXJSE_HOBJECT hThis,
377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           const CFX_ByteStringC& szFuncName,
378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                           CFXJSE_Arguments& args);
379ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void fm_var_filter(FXJSE_HOBJECT hThis,
380ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            const CFX_ByteStringC& szFuncName,
381ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                            CFXJSE_Arguments& args);
382ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void concat_fm_object(FXJSE_HOBJECT hThis,
383ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               const CFX_ByteStringC& szFuncName,
384ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                               CFXJSE_Arguments& args);
385ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
386ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static int32_t hvalue_get_array_length(FXJSE_HOBJECT hThis, FXJSE_HVALUE arg);
387ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL simpleValueCompare(FXJSE_HOBJECT hThis,
388ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    FXJSE_HVALUE firstValue,
389ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    FXJSE_HVALUE secondValue);
390ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void unfoldArgs(FXJSE_HOBJECT hThis,
391ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         CFXJSE_Arguments& args,
392ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         FXJSE_HVALUE*& resultValues,
393ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         int32_t& iCount,
394ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                         int32_t iStart = 0);
395ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GetObjectDefaultValue(FXJSE_HVALUE hObjectValue,
396ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    FXJSE_HVALUE hDefaultValue);
397ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL SetObjectDefaultValue(FXJSE_HVALUE hObjectValue,
398ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                       FXJSE_HVALUE hNewValue);
399ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void GenerateSomExpression(const CFX_ByteStringC& szName,
400ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    int32_t iIndexFlags,
401ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    int32_t iIndexValue,
402ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    FX_BOOL bIsStar,
403ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                    CFX_ByteString& szSomExp);
404ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL GetObjectByName(FXJSE_HOBJECT hThis,
405ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FXJSE_HVALUE accessorValue,
406ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 const CFX_ByteStringC& szAccessorName);
407ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static int32_t ResolveObjects(FXJSE_HOBJECT hThis,
408ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                FXJSE_HVALUE hParentValue,
409ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                const CFX_ByteStringC& bsSomExp,
410ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                XFA_RESOLVENODE_RS& resoveNodeRS,
411ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                FX_BOOL bdotAccessor = TRUE,
412ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                FX_BOOL bHasNoResolveName = FALSE);
413ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void ParseResolveResult(FXJSE_HOBJECT hThis,
414ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 const XFA_RESOLVENODE_RS& resoveNodeRS,
415ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FXJSE_HVALUE hParentValue,
416ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FXJSE_HVALUE*& resultValues,
417ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 int32_t& iSize,
418ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 FX_BOOL& bAttribute);
419ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
420ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FXJSE_HVALUE GetSimpleHValue(FXJSE_HOBJECT hThis,
421ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                      CFXJSE_Arguments& args,
422ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                      uint32_t index);
423ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_BOOL HValueIsNull(FXJSE_HOBJECT hThis, FXJSE_HVALUE hValue);
424ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static int32_t HValueToInteger(FXJSE_HOBJECT hThis, FXJSE_HVALUE hValue);
425ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_DOUBLE StringToDouble(const CFX_ByteStringC& szStringVal);
426ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_FLOAT HValueToFloat(FXJSE_HOBJECT hThis, FXJSE_HVALUE hValue);
427ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static FX_DOUBLE HValueToDouble(FXJSE_HOBJECT hThis, FXJSE_HVALUE hValue);
428ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static void HValueToUTF8String(FXJSE_HVALUE hValue,
429ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                                 CFX_ByteString& outputValue);
430ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CXFA_FM2JSContext();
431ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  ~CXFA_FM2JSContext();
432ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  static CXFA_FM2JSContext* Create();
433ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Initialize(FXJSE_HRUNTIME hScriptRuntime,
434ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  FXJSE_HCONTEXT hScriptContext,
435ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann                  CXFA_Document* pDoc);
436ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void GlobalPropertyGetter(FXJSE_HVALUE hValue);
437ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Release();
438ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FXJSE_HRUNTIME GetScriptRuntime() const { return m_hScriptRuntime; }
439ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CXFA_Document* GetDocument() const { return m_pDocument; }
440ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void ThrowScriptErrorMessage(int32_t iStringID, ...);
441ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
442ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private:
443ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FXJSE_HRUNTIME m_hScriptRuntime;
444ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FXJSE_CLASS m_fmClass;
445ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FXJSE_HCLASS m_hFMClass;
446ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FXJSE_HVALUE m_hValue;
447ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CXFA_Document* m_pDocument;
448ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann};
449ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif
450