#include "fxjs/xfa/cfxjse_formcalc_context.h"
#include <ctype.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>
#include <algorithm>
#include <array>
#include <limits>
#include <memory>
#include <optional>
#include <utility>
#include <vector>
#include "core/fxcrt/cfx_datetime.h"
#include "core/fxcrt/check_op.h"
#include "core/fxcrt/code_point_view.h"
#include "core/fxcrt/compiler_specific.h"
#include "core/fxcrt/containers/contains.h"
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/fx_random.h"
#include "core/fxcrt/fx_safe_types.h"
#include "core/fxcrt/numerics/safe_conversions.h"
#include "core/fxcrt/span_util.h"
#include "core/fxcrt/widetext_buffer.h"
#include "fxjs/fxv8.h"
#include "fxjs/xfa/cfxjse_class.h"
#include "fxjs/xfa/cfxjse_context.h"
#include "fxjs/xfa/cfxjse_engine.h"
#include "fxjs/xfa/cfxjse_value.h"
#include "fxjs/xfa/cjx_object.h"
#include "v8/include/v8-container.h"
#include "v8/include/v8-function-callback.h"
#include "v8/include/v8-local-handle.h"
#include "v8/include/v8-object.h"
#include "v8/include/v8-primitive.h"
#include "xfa/fgas/crt/cfgas_decimal.h"
#include "xfa/fxfa/cxfa_ffnotify.h"
#include "xfa/fxfa/formcalc/cxfa_fmparser.h"
#include "xfa/fxfa/formcalc/cxfa_fmtojavascriptdepth.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/cxfa_localevalue.h"
#include "xfa/fxfa/parser/cxfa_node.h"
#include "xfa/fxfa/parser/cxfa_thisproxy.h"
#include "xfa/fxfa/parser/cxfa_timezoneprovider.h"
#include "xfa/fxfa/parser/gced_locale_iface.h"
#include "xfa/fxfa/parser/xfa_utils.h"
kClassTag;
kFuncTag;
namespace {
constexpr int kMaxCharCount = …;
const double kFinancialPrecision = …;
constexpr std::array<wchar_t, 16> kStrCode = …;
struct XFA_FMHtmlReserveCode { … };
const XFA_FMHtmlReserveCode kReservesForDecode[] = …;
const XFA_FMHtmlReserveCode kReservesForEncode[] = …;
const FXJSE_FUNCTION_DESCRIPTOR kFormCalcFunctions[] = …;
const uint8_t kAltTableDate[] = …;
static_assert …;
const uint8_t kAltTableTime[] = …;
static_assert …;
void AlternateDateTimeSymbols(WideString* pPattern,
const WideString& wsAltSymbols,
bool bIsDate) { … }
std::pair<bool, CXFA_LocaleValue::ValueType> PatternStringType(
ByteStringView bsPattern) { … }
CFXJSE_FormCalcContext* ToFormCalcContext(CFXJSE_HostObject* pHostObj) { … }
GCedLocaleIface* LocaleFromString(CXFA_Document* pDoc,
CXFA_LocaleMgr* pMgr,
ByteStringView bsLocale) { … }
WideString FormatFromString(LocaleIface* pLocale, ByteStringView bsFormat) { … }
LocaleIface::DateTimeSubcategory SubCategoryFromInt(int32_t iStyle) { … }
ByteString GetLocalDateTimeFormat(CXFA_Document* pDoc,
int32_t iStyle,
ByteStringView bsLocale,
bool bStandard,
bool bIsDate) { … }
bool IsWhitespace(char c) { … }
bool IsPartOfNumber(char ch) { … }
bool IsPartOfNumberW(wchar_t ch) { … }
ByteString GUIDString(bool bSeparator) { … }
void GetLocalTimeZone(int32_t* pHour, int32_t* pMin, int32_t* pSec) { … }
bool HTMLSTR2Code(const WideString& pData, uint32_t* iCode) { … }
bool HTMLCode2STR(uint32_t iCode, WideString* wsHTMLReserve) { … }
WideString DecodeURL(const WideString& wsURL) { … }
WideString DecodeMLInternal(const WideString& wsHTML, bool bIsHTML) { … }
WideString DecodeHTML(const WideString& wsHTML) { … }
WideString DecodeXML(const WideString& wsXML) { … }
WideString EncodeURL(const ByteString& bsURL) { … }
WideString EncodeHTML(const ByteString& bsHTML) { … }
WideString EncodeXML(const ByteString& bsXML) { … }
ByteString TrillionUS(ByteStringView bsData) { … }
ByteString WordUS(ByteStringView bsData, int32_t iStyle) { … }
v8::Local<v8::Value> GetObjectDefaultValue(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObject) { … }
bool SetObjectDefaultValue(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObject,
v8::Local<v8::Value> hNewValue) { … }
v8::Local<v8::Value> GetExtractedValue(v8::Isolate* pIsolate,
v8::Local<v8::Value> pValue) { … }
v8::Local<v8::Value> GetSimpleValue(
const v8::FunctionCallbackInfo<v8::Value>& info,
uint32_t index) { … }
bool ValueIsNull(v8::Isolate* pIsolate, v8::Local<v8::Value> arg) { … }
int32_t ValueToInteger(v8::Isolate* pIsolate, v8::Local<v8::Value> arg) { … }
float ValueToFloat(v8::Isolate* pIsolate, v8::Local<v8::Value> arg) { … }
double ValueToDouble(v8::Isolate* pIsolate, v8::Local<v8::Value> arg) { … }
std::optional<double> ExtractDouble(v8::Isolate* pIsolate,
v8::Local<v8::Value> src) { … }
ByteString ValueToUTF8String(v8::Isolate* pIsolate, v8::Local<v8::Value> arg) { … }
bool SimpleValueCompare(v8::Isolate* pIsolate,
v8::Local<v8::Value> firstValue,
v8::Local<v8::Value> secondValue) { … }
v8::LocalVector<v8::Value> UnfoldArgs(
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
v8::Local<v8::Value> GetObjectForName(CFXJSE_HostObject* pHostObject,
ByteStringView bsAccessorName) { … }
std::optional<CFXJSE_Engine::ResolveResult> ResolveObjects(
CFXJSE_HostObject* pHostObject,
v8::Local<v8::Value> pRefValue,
ByteStringView bsSomExp,
bool bDotAccessor,
bool bHasNoResolveName) { … }
v8::LocalVector<v8::Value> ParseResolveResult(
CFXJSE_HostObject* pHostObject,
const CFXJSE_Engine::ResolveResult& resolveNodeRS,
v8::Local<v8::Value> pParentValue,
bool* bAttribute) { … }
int GetValidatedPaymentPeriods(v8::Isolate* isolate, v8::Local<v8::Value> arg) { … }
}
const FXJSE_CLASS_DESCRIPTOR kFormCalcDescriptor = …;
void CFXJSE_FormCalcContext::Abs(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Avg(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Ceil(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Count(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Floor(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Max(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Min(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Mod(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Round(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Sum(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Date(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Date2Num(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::DateFmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::IsoDate2Num(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::IsoTime2Num(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::LocalDateFmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::LocalTimeFmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Num2Date(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Num2GMTime(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Num2Time(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Time(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Time2Num(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::TimeFmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
ByteString CFXJSE_FormCalcContext::Local2IsoDate(CFXJSE_HostObject* pThis,
ByteStringView bsDate,
ByteStringView bsFormat,
ByteStringView bsLocale) { … }
ByteString CFXJSE_FormCalcContext::IsoDate2Local(CFXJSE_HostObject* pThis,
ByteStringView bsDate,
ByteStringView bsFormat,
ByteStringView bsLocale) { … }
ByteString CFXJSE_FormCalcContext::IsoTime2Local(CFXJSE_HostObject* pThis,
ByteStringView bsTime,
ByteStringView bsFormat,
ByteStringView bsLocale) { … }
ByteString CFXJSE_FormCalcContext::GetLocalDateFormat(CFXJSE_HostObject* pThis,
int32_t iStyle,
ByteStringView bsLocale,
bool bStandard) { … }
ByteString CFXJSE_FormCalcContext::GetLocalTimeFormat(CFXJSE_HostObject* pThis,
int32_t iStyle,
ByteStringView bsLocale,
bool bStandard) { … }
ByteString CFXJSE_FormCalcContext::GetStandardDateFormat(
CFXJSE_HostObject* pThis,
int32_t iStyle,
ByteStringView bsLocale) { … }
ByteString CFXJSE_FormCalcContext::GetStandardTimeFormat(
CFXJSE_HostObject* pThis,
int32_t iStyle,
ByteStringView bsLocale) { … }
ByteString CFXJSE_FormCalcContext::Num2AllTime(CFXJSE_HostObject* pThis,
int32_t iTime,
ByteStringView bsFormat,
ByteStringView bsLocale,
bool bGM) { … }
void CFXJSE_FormCalcContext::Apr(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::CTerm(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::FV(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::IPmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::NPV(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Pmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::PPmt(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::PV(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Rate(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Term(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Choose(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Exists(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::HasValue(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Oneof(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Within(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::If(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Eval(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Ref(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::UnitType(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::UnitValue(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::At(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Concat(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Decode(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Encode(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Format(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Left(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Len(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Lower(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Ltrim(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Parse(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Replace(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Right(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Rtrim(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Space(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Str(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Stuff(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Substr(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Uuid(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Upper(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::WordNum(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Get(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Post(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::Put(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::assign_value_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::logical_or_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::logical_and_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::equality_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::notequality_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
bool CFXJSE_FormCalcContext::fm_ref_equal(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::less_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::lessequal_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::greater_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::greaterequal_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::plus_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::minus_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::multiple_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::divide_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::positive_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::negative_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::logical_not_operator(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::dot_accessor(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::dotdot_accessor(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::eval_translation(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::is_fm_object(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::is_fm_array(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::get_fm_value(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::get_fm_jsobj(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::fm_var_filter(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
void CFXJSE_FormCalcContext::concat_fm_object(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info) { … }
ByteString CFXJSE_FormCalcContext::GenerateSomExpression(ByteStringView bsName,
int32_t iIndexFlags,
int32_t iIndexValue,
bool bIsStar) { … }
std::optional<WideTextBuffer> CFXJSE_FormCalcContext::Translate(
cppgc::Heap* pHeap,
WideStringView wsFormcalc) { … }
CFXJSE_FormCalcContext::CFXJSE_FormCalcContext(v8::Isolate* pIsolate,
CFXJSE_Context* pScriptContext,
CXFA_Document* pDoc)
: … { … }
CFXJSE_FormCalcContext::~CFXJSE_FormCalcContext() = default;
CFXJSE_FormCalcContext* CFXJSE_FormCalcContext::AsFormCalcContext() { … }
v8::Local<v8::Value> CFXJSE_FormCalcContext::GlobalPropertyGetter() { … }
void CFXJSE_FormCalcContext::DotAccessorCommon(
CFXJSE_HostObject* pThis,
const v8::FunctionCallbackInfo<v8::Value>& info,
bool bDotAccessor) { … }
bool CFXJSE_FormCalcContext::IsIsoDateFormat(ByteStringView bsData,
int32_t* pYear,
int32_t* pMonth,
int32_t* pDay) { … }
bool CFXJSE_FormCalcContext::IsIsoTimeFormat(ByteStringView bsData) { … }
bool CFXJSE_FormCalcContext::IsIsoDateTimeFormat(ByteStringView bsData,
int32_t* pYear,
int32_t* pMonth,
int32_t* pDay) { … }
int32_t CFXJSE_FormCalcContext::DateString2Num(ByteStringView bsDate) { … }
bool CFXJSE_FormCalcContext::ApplyToExpansion(
std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
const v8::FunctionCallbackInfo<v8::Value>& info,
bool bStrict) { … }
bool CFXJSE_FormCalcContext::ApplyToArray(
v8::Isolate* pIsolate,
std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
v8::Local<v8::Array> pArray) { … }
void CFXJSE_FormCalcContext::ApplyToObject(
v8::Isolate* pIsolate,
std::function<void(v8::Isolate*, v8::Local<v8::Value>)> fn,
v8::Local<v8::Object> pObject) { … }
void CFXJSE_FormCalcContext::ThrowNoDefaultPropertyException(
ByteStringView name) const { … }
void CFXJSE_FormCalcContext::ThrowCompilerErrorException() const { … }
void CFXJSE_FormCalcContext::ThrowDivideByZeroException() const { … }
void CFXJSE_FormCalcContext::ThrowServerDeniedException() const { … }
void CFXJSE_FormCalcContext::ThrowPropertyNotInObjectException(
ByteStringView name,
ByteStringView exp) const { … }
void CFXJSE_FormCalcContext::ThrowParamCountMismatchException(
ByteStringView method) const { … }
void CFXJSE_FormCalcContext::ThrowArgumentMismatchException() const { … }
void CFXJSE_FormCalcContext::ThrowException(ByteStringView str) const { … }