Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cfxjse_formcalc_context.h
Go to the documentation of this file.
1// Copyright 2014 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef FXJS_XFA_CFXJSE_FORMCALC_CONTEXT_H_
8#define FXJS_XFA_CFXJSE_FORMCALC_CONTEXT_H_
9
10#include <stdint.h>
11
12#include <functional>
13
14#include "core/fxcrt/bytestring.h"
15#include "core/fxcrt/widetext_buffer.h"
16#include "fxjs/xfa/fxjse.h"
17#include "third_party/abseil-cpp/absl/types/optional.h"
18#include "v8/include/cppgc/persistent.h"
19#include "v8/include/v8-forward.h"
20#include "v8/include/v8-persistent-handle.h"
21
22class CFXJSE_Context;
23class CXFA_Document;
24
25namespace cppgc {
26class Heap;
27} // namespace cppgc
28
29class CFXJSE_FormCalcContext final : public CFXJSE_HostObject {
30 public:
31 CFXJSE_FormCalcContext(v8::Isolate* pIsolate,
32 CFXJSE_Context* pScriptContext,
33 CXFA_Document* pDoc);
35
36 // CFXJSE_HostObject:
37 CFXJSE_FormCalcContext* AsFormCalcContext() override;
38
39 static void Abs(CFXJSE_HostObject* pThis,
40 const v8::FunctionCallbackInfo<v8::Value>& info);
41 static void Avg(CFXJSE_HostObject* pThis,
42 const v8::FunctionCallbackInfo<v8::Value>& info);
43 static void Ceil(CFXJSE_HostObject* pThis,
44 const v8::FunctionCallbackInfo<v8::Value>& info);
45 static void Count(CFXJSE_HostObject* pThis,
46 const v8::FunctionCallbackInfo<v8::Value>& info);
47 static void Floor(CFXJSE_HostObject* pThis,
48 const v8::FunctionCallbackInfo<v8::Value>& info);
49 static void Max(CFXJSE_HostObject* pThis,
50 const v8::FunctionCallbackInfo<v8::Value>& info);
51 static void Min(CFXJSE_HostObject* pThis,
52 const v8::FunctionCallbackInfo<v8::Value>& info);
53 static void Mod(CFXJSE_HostObject* pThis,
54 const v8::FunctionCallbackInfo<v8::Value>& info);
55 static void Round(CFXJSE_HostObject* pThis,
56 const v8::FunctionCallbackInfo<v8::Value>& info);
57 static void Sum(CFXJSE_HostObject* pThis,
58 const v8::FunctionCallbackInfo<v8::Value>& info);
59 static void Date(CFXJSE_HostObject* pThis,
60 const v8::FunctionCallbackInfo<v8::Value>& info);
61 static void Date2Num(CFXJSE_HostObject* pThis,
62 const v8::FunctionCallbackInfo<v8::Value>& info);
63 static void DateFmt(CFXJSE_HostObject* pThis,
64 const v8::FunctionCallbackInfo<v8::Value>& info);
65 static void IsoDate2Num(CFXJSE_HostObject* pThis,
66 const v8::FunctionCallbackInfo<v8::Value>& info);
67 static void IsoTime2Num(CFXJSE_HostObject* pThis,
68 const v8::FunctionCallbackInfo<v8::Value>& info);
69 static void LocalDateFmt(CFXJSE_HostObject* pThis,
70 const v8::FunctionCallbackInfo<v8::Value>& info);
71 static void LocalTimeFmt(CFXJSE_HostObject* pThis,
72 const v8::FunctionCallbackInfo<v8::Value>& info);
73 static void Num2Date(CFXJSE_HostObject* pThis,
74 const v8::FunctionCallbackInfo<v8::Value>& info);
75 static void Num2GMTime(CFXJSE_HostObject* pThis,
76 const v8::FunctionCallbackInfo<v8::Value>& info);
77 static void Num2Time(CFXJSE_HostObject* pThis,
78 const v8::FunctionCallbackInfo<v8::Value>& info);
79 static void Time(CFXJSE_HostObject* pThis,
80 const v8::FunctionCallbackInfo<v8::Value>& info);
81 static void Time2Num(CFXJSE_HostObject* pThis,
82 const v8::FunctionCallbackInfo<v8::Value>& info);
83 static void TimeFmt(CFXJSE_HostObject* pThis,
84 const v8::FunctionCallbackInfo<v8::Value>& info);
85
86 static ByteString Local2IsoDate(CFXJSE_HostObject* pThis,
87 ByteStringView bsDate,
88 ByteStringView bsFormat,
89 ByteStringView bsLocale);
90 static ByteString IsoDate2Local(CFXJSE_HostObject* pThis,
91 ByteStringView bsDate,
92 ByteStringView bsFormat,
93 ByteStringView bsLocale);
94 static ByteString IsoTime2Local(CFXJSE_HostObject* pThis,
95 ByteStringView bsTime,
96 ByteStringView bsFormat,
97 ByteStringView bsLocale);
98 static ByteString GetLocalDateFormat(CFXJSE_HostObject* pThis,
99 int32_t iStyle,
100 ByteStringView bsLocale,
101 bool bStandard);
102 static ByteString GetLocalTimeFormat(CFXJSE_HostObject* pThis,
103 int32_t iStyle,
104 ByteStringView bsLocale,
105 bool bStandard);
106 static ByteString GetStandardDateFormat(CFXJSE_HostObject* pThis,
107 int32_t iStyle,
108 ByteStringView bsLocale);
109 static ByteString GetStandardTimeFormat(CFXJSE_HostObject* pThis,
110 int32_t iStyle,
111 ByteStringView bsLocale);
112 static ByteString Num2AllTime(CFXJSE_HostObject* pThis,
113 int32_t iTime,
114 ByteStringView bsFormat,
115 ByteStringView bsLocale,
116 bool bGM);
117
118 static void Apr(CFXJSE_HostObject* pThis,
119 const v8::FunctionCallbackInfo<v8::Value>& info);
120 static void CTerm(CFXJSE_HostObject* pThis,
121 const v8::FunctionCallbackInfo<v8::Value>& info);
122 static void FV(CFXJSE_HostObject* pThis,
123 const v8::FunctionCallbackInfo<v8::Value>& info);
124 static void IPmt(CFXJSE_HostObject* pThis,
125 const v8::FunctionCallbackInfo<v8::Value>& info);
126 static void NPV(CFXJSE_HostObject* pThis,
127 const v8::FunctionCallbackInfo<v8::Value>& info);
128 static void Pmt(CFXJSE_HostObject* pThis,
129 const v8::FunctionCallbackInfo<v8::Value>& info);
130 static void PPmt(CFXJSE_HostObject* pThis,
131 const v8::FunctionCallbackInfo<v8::Value>& info);
132 static void PV(CFXJSE_HostObject* pThis,
133 const v8::FunctionCallbackInfo<v8::Value>& info);
134 static void Rate(CFXJSE_HostObject* pThis,
135 const v8::FunctionCallbackInfo<v8::Value>& info);
136 static void Term(CFXJSE_HostObject* pThis,
137 const v8::FunctionCallbackInfo<v8::Value>& info);
138 static void Choose(CFXJSE_HostObject* pThis,
139 const v8::FunctionCallbackInfo<v8::Value>& info);
140 static void Exists(CFXJSE_HostObject* pThis,
141 const v8::FunctionCallbackInfo<v8::Value>& info);
142 static void HasValue(CFXJSE_HostObject* pThis,
143 const v8::FunctionCallbackInfo<v8::Value>& info);
144 static void Oneof(CFXJSE_HostObject* pThis,
145 const v8::FunctionCallbackInfo<v8::Value>& info);
146 static void Within(CFXJSE_HostObject* pThis,
147 const v8::FunctionCallbackInfo<v8::Value>& info);
148 static void If(CFXJSE_HostObject* pThis,
149 const v8::FunctionCallbackInfo<v8::Value>& info);
150 static void Eval(CFXJSE_HostObject* pThis,
151 const v8::FunctionCallbackInfo<v8::Value>& info);
152 static void Ref(CFXJSE_HostObject* pThis,
153 const v8::FunctionCallbackInfo<v8::Value>& info);
154 static void UnitType(CFXJSE_HostObject* pThis,
155 const v8::FunctionCallbackInfo<v8::Value>& info);
156 static void UnitValue(CFXJSE_HostObject* pThis,
157 const v8::FunctionCallbackInfo<v8::Value>& info);
158
159 static void At(CFXJSE_HostObject* pThis,
160 const v8::FunctionCallbackInfo<v8::Value>& info);
161 static void Concat(CFXJSE_HostObject* pThis,
162 const v8::FunctionCallbackInfo<v8::Value>& info);
163 static void Decode(CFXJSE_HostObject* pThis,
164 const v8::FunctionCallbackInfo<v8::Value>& info);
165 static void Encode(CFXJSE_HostObject* pThis,
166 const v8::FunctionCallbackInfo<v8::Value>& info);
167 static void Format(CFXJSE_HostObject* pThis,
168 const v8::FunctionCallbackInfo<v8::Value>& info);
169 static void Left(CFXJSE_HostObject* pThis,
170 const v8::FunctionCallbackInfo<v8::Value>& info);
171 static void Len(CFXJSE_HostObject* pThis,
172 const v8::FunctionCallbackInfo<v8::Value>& info);
173 static void Lower(CFXJSE_HostObject* pThis,
174 const v8::FunctionCallbackInfo<v8::Value>& info);
175 static void Ltrim(CFXJSE_HostObject* pThis,
176 const v8::FunctionCallbackInfo<v8::Value>& info);
177 static void Parse(CFXJSE_HostObject* pThis,
178 const v8::FunctionCallbackInfo<v8::Value>& info);
179 static void Replace(CFXJSE_HostObject* pThis,
180 const v8::FunctionCallbackInfo<v8::Value>& info);
181 static void Right(CFXJSE_HostObject* pThis,
182 const v8::FunctionCallbackInfo<v8::Value>& info);
183 static void Rtrim(CFXJSE_HostObject* pThis,
184 const v8::FunctionCallbackInfo<v8::Value>& info);
185 static void Space(CFXJSE_HostObject* pThis,
186 const v8::FunctionCallbackInfo<v8::Value>& info);
187 static void Str(CFXJSE_HostObject* pThis,
188 const v8::FunctionCallbackInfo<v8::Value>& info);
189 static void Stuff(CFXJSE_HostObject* pThis,
190 const v8::FunctionCallbackInfo<v8::Value>& info);
191 static void Substr(CFXJSE_HostObject* pThis,
192 const v8::FunctionCallbackInfo<v8::Value>& info);
193 static void Uuid(CFXJSE_HostObject* pThis,
194 const v8::FunctionCallbackInfo<v8::Value>& info);
195 static void Upper(CFXJSE_HostObject* pThis,
196 const v8::FunctionCallbackInfo<v8::Value>& info);
197 static void WordNum(CFXJSE_HostObject* pThis,
198 const v8::FunctionCallbackInfo<v8::Value>& info);
199
200 static void Get(CFXJSE_HostObject* pThis,
201 const v8::FunctionCallbackInfo<v8::Value>& info);
202 static void Post(CFXJSE_HostObject* pThis,
203 const v8::FunctionCallbackInfo<v8::Value>& info);
204 static void Put(CFXJSE_HostObject* pThis,
205 const v8::FunctionCallbackInfo<v8::Value>& info);
206 static void assign_value_operator(
207 CFXJSE_HostObject* pThis,
208 const v8::FunctionCallbackInfo<v8::Value>& info);
209 static void logical_or_operator(
210 CFXJSE_HostObject* pThis,
211 const v8::FunctionCallbackInfo<v8::Value>& info);
212 static void logical_and_operator(
213 CFXJSE_HostObject* pThis,
214 const v8::FunctionCallbackInfo<v8::Value>& info);
215 static void equality_operator(
216 CFXJSE_HostObject* pThis,
217 const v8::FunctionCallbackInfo<v8::Value>& info);
218 static void notequality_operator(
219 CFXJSE_HostObject* pThis,
220 const v8::FunctionCallbackInfo<v8::Value>& info);
221 static bool fm_ref_equal(CFXJSE_HostObject* pThis,
222 const v8::FunctionCallbackInfo<v8::Value>& info);
223 static void less_operator(CFXJSE_HostObject* pThis,
224 const v8::FunctionCallbackInfo<v8::Value>& info);
225 static void lessequal_operator(
226 CFXJSE_HostObject* pThis,
227 const v8::FunctionCallbackInfo<v8::Value>& info);
228 static void greater_operator(CFXJSE_HostObject* pThis,
229 const v8::FunctionCallbackInfo<v8::Value>& info);
230 static void greaterequal_operator(
231 CFXJSE_HostObject* pThis,
232 const v8::FunctionCallbackInfo<v8::Value>& info);
233 static void plus_operator(CFXJSE_HostObject* pThis,
234 const v8::FunctionCallbackInfo<v8::Value>& info);
235 static void minus_operator(CFXJSE_HostObject* pThis,
236 const v8::FunctionCallbackInfo<v8::Value>& info);
237 static void multiple_operator(
238 CFXJSE_HostObject* pThis,
239 const v8::FunctionCallbackInfo<v8::Value>& info);
240 static void divide_operator(CFXJSE_HostObject* pThis,
241 const v8::FunctionCallbackInfo<v8::Value>& info);
242 static void positive_operator(
243 CFXJSE_HostObject* pThis,
244 const v8::FunctionCallbackInfo<v8::Value>& info);
245 static void negative_operator(
246 CFXJSE_HostObject* pThis,
247 const v8::FunctionCallbackInfo<v8::Value>& info);
248 static void logical_not_operator(
249 CFXJSE_HostObject* pThis,
250 const v8::FunctionCallbackInfo<v8::Value>& info);
251 static void dot_accessor(CFXJSE_HostObject* pThis,
252 const v8::FunctionCallbackInfo<v8::Value>& info);
253 static void dotdot_accessor(CFXJSE_HostObject* pThis,
254 const v8::FunctionCallbackInfo<v8::Value>& info);
255 static void eval_translation(CFXJSE_HostObject* pThis,
256 const v8::FunctionCallbackInfo<v8::Value>& info);
257 static void is_fm_object(CFXJSE_HostObject* pThis,
258 const v8::FunctionCallbackInfo<v8::Value>& info);
259 static void is_fm_array(CFXJSE_HostObject* pThis,
260 const v8::FunctionCallbackInfo<v8::Value>& info);
261 static void get_fm_value(CFXJSE_HostObject* pThis,
262 const v8::FunctionCallbackInfo<v8::Value>& info);
263 static void get_fm_jsobj(CFXJSE_HostObject* pThis,
264 const v8::FunctionCallbackInfo<v8::Value>& info);
265 static void fm_var_filter(CFXJSE_HostObject* pThis,
266 const v8::FunctionCallbackInfo<v8::Value>& info);
267 static void concat_fm_object(CFXJSE_HostObject* pThis,
268 const v8::FunctionCallbackInfo<v8::Value>& info);
269
270 static absl::optional<WideTextBuffer> Translate(cppgc::Heap* pHeap,
271 WideStringView wsFormcalc);
272
274 v8::Isolate* GetIsolate() const { return m_pIsolate; }
275 CXFA_Document* GetDocument() const { return m_pDocument.Get(); }
276
277 private:
278 friend class FormCalcContextTest_GenerateSomExpression_Test;
279 friend class FormCalcContextTest_IsIsoDateFormat_Test;
280 friend class FormCalcContextTest_IsIsoTimeFormat_Test;
281
282 static ByteString GenerateSomExpression(ByteStringView bsName,
283 int32_t iIndexFlags,
284 int32_t iIndexValue,
285 bool bIsStar);
286
287 static void DotAccessorCommon(CFXJSE_HostObject* pThis,
288 const v8::FunctionCallbackInfo<v8::Value>& info,
289 bool bDotAccessor);
290
291 static bool IsIsoDateTimeFormat(ByteStringView bsData,
292 int32_t* pYear,
293 int32_t* pMonth,
294 int32_t* pDay);
295
296 static bool IsIsoDateFormat(ByteStringView bsData,
297 int32_t* pYear,
298 int32_t* pMonth,
299 int32_t* pDay);
300
301 static bool IsIsoTimeFormat(ByteStringView bsData);
302
303 static int32_t DateString2Num(ByteStringView bsDate);
304
305 bool ApplyToExpansion(
306 std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
307 const v8::FunctionCallbackInfo<v8::Value>& info,
308 bool bStrict);
309
310 bool ApplyToArray(v8::Isolate* pIsolate,
311 std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
312 v8::Local<v8::Array> pArray);
313
314 void ApplyToObject(v8::Isolate* pIsolate,
315 std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
316 v8::Local<v8::Object> pObject);
317
318 void ThrowArgumentMismatchException() const;
319 void ThrowNoDefaultPropertyException(ByteStringView name) const;
320 void ThrowCompilerErrorException() const;
321 void ThrowDivideByZeroException() const;
322 void ThrowServerDeniedException() const;
323 void ThrowPropertyNotInObjectException(ByteStringView name,
324 ByteStringView exp) const;
325 void ThrowParamCountMismatchException(ByteStringView method) const;
326 void ThrowException(ByteStringView str) const;
327
328 UnownedPtr<v8::Isolate> const m_pIsolate;
329 v8::Global<v8::Value> m_Value;
330 cppgc::WeakPersistent<CXFA_Document> const m_pDocument;
331};
332
333#endif // FXJS_XFA_CFXJSE_FORMCALC_CONTEXT_H_
const FXJSE_CLASS_DESCRIPTOR kNormalClassDescriptor
const FXJSE_CLASS_DESCRIPTOR kGlobalClassDescriptor
const FXJSE_CLASS_DESCRIPTOR kVariablesClassDescriptor
XFA_ResolveFlag
EventParamScope(CFXJSE_Engine *pEngine, CXFA_Node *pTarget, CXFA_EventParam *pEventParam)
ResolveResult & operator=(const ResolveResult &that)
XFA_SCRIPTATTRIBUTEINFO script_attribute
ResolveResult(const ResolveResult &that)
void SetRunAtType(XFA_AttributeValue eRunAt)
static CJS_Result NormalMethodCall(const v8::FunctionCallbackInfo< v8::Value > &info, const WideString &functionName)
bool IsResolvingNodes() const
CXFA_Object * ToXFAObject(v8::Local< v8::Value > obj)
CXFA_Node * GetEventTarget() const
static v8::Local< v8::Value > NormalPropertyGetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName)
static void GlobalPropertySetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName, v8::Local< v8::Value > pValue)
CFXJSE_Engine(CXFA_Document *pDocument, CJS_Runtime *fxjs_runtime)
static FXJSE_ClassPropType GlobalPropTypeGetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName, bool bQueryIn)
CXFA_EventParam * GetEventParam() const
static CXFA_Object * ToObject(const v8::FunctionCallbackInfo< v8::Value > &info)
CXFA_Object * GetThisObject() const
CXFA_Script::Type GetType()
CFXJSE_Class * GetJseNormalClass() const
void AddNodesOfRunScript(CXFA_Node *pNode)
void SetNodesOfRunScript(std::vector< cppgc::Persistent< CXFA_Node > > *pArray)
static v8::Local< v8::Value > GlobalPropertyGetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName)
friend class EventParamScope
static FXJSE_ClassPropType NormalPropTypeGetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName, bool bQueryIn)
static CXFA_Object * ToObject(v8::Isolate *pIsolate, CFXJSE_Value *pValue)
absl::optional< ResolveResult > ResolveObjectsWithBindNode(CXFA_Object *refObject, WideStringView wsExpression, Mask< XFA_ResolveFlag > dwStyles, CXFA_Node *bindNode)
CFXJSE_Context * GetJseContextForTest() const
v8::Local< v8::Object > NewNormalXFAObject(CXFA_Object *obj)
CFXJSE_Context::ExecutionResult RunScript(CXFA_Script::Type eScriptType, WideStringView wsScript, CXFA_Object *pThisObject)
static void NormalPropertySetter(v8::Isolate *pIsolate, v8::Local< v8::Object > pObject, ByteStringView szPropName, v8::Local< v8::Value > pValue)
CXFA_Node * LastObjectFromUpArray()
~CFXJSE_Engine() override
absl::optional< ResolveResult > ResolveObjects(CXFA_Object *refObject, WideStringView wsExpression, Mask< XFA_ResolveFlag > dwStyles)
static CXFA_Object * ToObject(v8::Isolate *pIsolate, v8::Local< v8::Value > value)
static CXFA_Object * ToObject(CFXJSE_HostObject *pHostObj)
CXFA_Document * GetDocument() const
void AddObjectToUpArray(CXFA_Node *pNode)
v8::Local< v8::Object > GetOrCreateJSBindingFromMap(CXFA_Object *pObject)
v8::Local< v8::Value > GlobalPropertyGetter()
static void Space(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void CTerm(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Put(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void get_fm_value(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Pmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString Local2IsoDate(CFXJSE_HostObject *pThis, ByteStringView bsDate, ByteStringView bsFormat, ByteStringView bsLocale)
static void IPmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void UnitValue(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void TimeFmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void greater_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Uuid(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Lower(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Len(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void LocalDateFmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Encode(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString Num2AllTime(CFXJSE_HostObject *pThis, int32_t iTime, ByteStringView bsFormat, ByteStringView bsLocale, bool bGM)
CXFA_Document * GetDocument() const
static void At(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString GetStandardTimeFormat(CFXJSE_HostObject *pThis, int32_t iStyle, ByteStringView bsLocale)
static bool fm_ref_equal(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Round(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Num2Time(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void less_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
v8::Isolate * GetIsolate() const
static void Time2Num(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Mod(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Concat(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void is_fm_array(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Rate(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Sum(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void is_fm_object(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Replace(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString GetStandardDateFormat(CFXJSE_HostObject *pThis, int32_t iStyle, ByteStringView bsLocale)
static void logical_or_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
CFXJSE_FormCalcContext * AsFormCalcContext() override
static void Decode(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void equality_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void concat_fm_object(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void NPV(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void positive_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void UnitType(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void DateFmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Format(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Num2GMTime(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Rtrim(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void greaterequal_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Max(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void PV(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void multiple_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void negative_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString GetLocalDateFormat(CFXJSE_HostObject *pThis, int32_t iStyle, ByteStringView bsLocale, bool bStandard)
static void Within(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void lessequal_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
~CFXJSE_FormCalcContext() override
static void Exists(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Ceil(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Right(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void logical_not_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Get(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void IsoTime2Num(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Apr(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Ref(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Ltrim(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Eval(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void divide_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Abs(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Date2Num(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void HasValue(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void If(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Date(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void WordNum(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void FV(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Stuff(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void assign_value_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void fm_var_filter(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void logical_and_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void notequality_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Str(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void minus_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void dotdot_accessor(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Choose(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Oneof(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Post(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Count(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static absl::optional< WideTextBuffer > Translate(cppgc::Heap *pHeap, WideStringView wsFormcalc)
static void get_fm_jsobj(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
CFXJSE_FormCalcContext(v8::Isolate *pIsolate, CFXJSE_Context *pScriptContext, CXFA_Document *pDoc)
static void Time(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Avg(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void dot_accessor(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString GetLocalTimeFormat(CFXJSE_HostObject *pThis, int32_t iStyle, ByteStringView bsLocale, bool bStandard)
static void IsoDate2Num(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Num2Date(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Parse(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString IsoDate2Local(CFXJSE_HostObject *pThis, ByteStringView bsDate, ByteStringView bsFormat, ByteStringView bsLocale)
static void Left(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void plus_operator(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Upper(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Substr(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static ByteString IsoTime2Local(CFXJSE_HostObject *pThis, ByteStringView bsTime, ByteStringView bsFormat, ByteStringView bsLocale)
static void PPmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void LocalTimeFmt(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Min(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void eval_translation(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Term(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
static void Floor(CFXJSE_HostObject *pThis, const v8::FunctionCallbackInfo< v8::Value > &info)
virtual CJX_Object * AsCJXObject()
Definition fxjse.cpp:38
CFXJSE_Engine::ResolveResult m_Result
CFXJSE_ScopeUtil_IsolateHandleContext(CFXJSE_Context *pContext)
static CJS_Result Failure(const WideString &str)
Definition cjs_result.h:31
bool HasMethod(const WideString &func) const
CXFA_Object * GetXFAObject() const
Definition cjx_object.h:113
CXFA_FFNotify * GetNotify() const
CFXJSE_Engine * GetScriptContext() const
CXFA_Object * GetXFAObject(XFA_HashCode wsNodeNameHash)
CXFA_Node * GetRoot() const
IJS_Runtime * GetIJSRuntime() const
CXFA_FFDoc * GetFFDoc() const
XFA_Element GetElementType() const
Definition cxfa_object.h:91
bool IsThisProxy() const
Definition cxfa_object.h:74
CXFA_Node * AsNode()
CJX_Object * JSObject()
Definition cxfa_object.h:81
CXFA_Document * GetDocument() const
Definition cxfa_object.h:48
bool IsNode() const
Definition cxfa_object.h:55
static CXFA_Script * FromNode(CXFA_Node *pNode)
XFA_AttributeValue GetRunAt()
Type GetContentType()
~CXFA_Script() override
WideString GetExpression()
CXFA_Script * GetScriptNode() const
CXFA_Node * GetThisNode() const
static CXFA_Variables * FromNode(CXFA_Node *pNode)
static WideString FromUTF8(ByteStringView str)
bool EqualsASCII(ByteStringView that) const
Definition widestring.h:216
CXFA_ThisProxy * ToThisProxy(CXFA_Object *pObj)
CXFA_Node * ToNode(CXFA_Object *pObj)
XFA_Attribute
Definition fxfa_basic.h:67
XFA_HashCode
Definition fxfa_basic.h:12
@ XFA_HASHCODE_Layout
Definition fxfa_basic.h:25
XFA_Element
Definition fxfa_basic.h:75
XFA_AttributeValue
Definition fxfa_basic.h:60
XFA_PacketType
Definition fxfa_basic.h:44
XFA_ScriptType
Definition fxfa_basic.h:104
FXJSE_ClassPropType
Definition fxjse.h:31
#define CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED
Definition heap.h:32
Definition heap.h:12
Definition fxv8.h:22
bool IsUndefined(v8::Local< v8::Value > value)
Definition fxv8.cpp:19
const char kClassTag[]
Definition fxjse.cpp:18
XFA_ScriptType eValueType
XFA_Attribute attribute
XFA_PacketMatch match
const char * uri
XFA_PacketSupport support
const char * name
XFA_PacketType packet_type
XFA_ScriptType eValueType
XFA_ATTRIBUTE_CALLBACK callback
XFA_Element XFA_GetElementByName(WideStringView name)
ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item)
absl::optional< XFA_AttributeValue > XFA_GetAttributeValueByName(WideStringView name)
XFA_PacketSupport
XFA_PacketMatch
ByteStringView XFA_ElementToName(XFA_Element elem)
absl::optional< XFA_SCRIPTATTRIBUTEINFO > XFA_GetScriptAttributeByName(XFA_Element eElement, WideStringView wsAttributeName)
absl::optional< XFA_PACKETINFO > XFA_GetPacketByName(WideStringView wsName)
absl::optional< XFA_ATTRIBUTEINFO > XFA_GetAttributeByName(WideStringView name)
XFA_PACKETINFO XFA_GetPacketByIndex(XFA_PacketType ePacket)
ByteStringView XFA_AttributeToName(XFA_Attribute attr)