diff options
Diffstat (limited to 'xfa/fxfa/fm2js/cxfa_fm2jscontext.h')
-rw-r--r-- | xfa/fxfa/fm2js/cxfa_fm2jscontext.h | 445 |
1 files changed, 0 insertions, 445 deletions
diff --git a/xfa/fxfa/fm2js/cxfa_fm2jscontext.h b/xfa/fxfa/fm2js/cxfa_fm2jscontext.h deleted file mode 100644 index 8d1b33bf81..0000000000 --- a/xfa/fxfa/fm2js/cxfa_fm2jscontext.h +++ /dev/null @@ -1,445 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_FM2JS_CXFA_FM2JSCONTEXT_H_ -#define XFA_FXFA_FM2JS_CXFA_FM2JSCONTEXT_H_ - -#include <memory> -#include <vector> - -#include "fxjs/cfxjse_arguments.h" -#include "fxjs/cfxjse_context.h" -#include "xfa/fxfa/parser/xfa_resolvenode_rs.h" - -class CFX_WideTextBuf; -class CXFA_Document; - -class CXFA_FM2JSContext : public CFXJSE_HostObject { - public: - CXFA_FM2JSContext(v8::Isolate* pScriptIsolate, - CFXJSE_Context* pScriptContext, - CXFA_Document* pDoc); - ~CXFA_FM2JSContext() override; - - static void Abs(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Avg(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Ceil(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Count(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Floor(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Max(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Min(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Mod(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Round(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Sum(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Date(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Date2Num(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void DateFmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void IsoDate2Num(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void IsoTime2Num(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void LocalDateFmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void LocalTimeFmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Num2Date(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Num2GMTime(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Num2Time(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Time(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Time2Num(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void TimeFmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - - static bool IsIsoDateFormat(const char* pData, - int32_t iLength, - int32_t& iStyle, - int32_t& iYear, - int32_t& iMonth, - int32_t& iDay); - static bool IsIsoTimeFormat(const char* pData, - int32_t iLength, - int32_t& iHour, - int32_t& iMinute, - int32_t& iSecond, - int32_t& iMilliSecond, - int32_t& iZoneHour, - int32_t& iZoneMinute); - static bool IsIsoDateTimeFormat(const char* pData, - int32_t iLength, - int32_t& iYear, - int32_t& iMonth, - int32_t& iDay, - int32_t& iHour, - int32_t& iMinute, - int32_t& iSecond, - int32_t& iMillionSecond, - int32_t& iZoneHour, - int32_t& iZoneMinute); - static ByteString Local2IsoDate(CFXJSE_Value* pThis, - const ByteStringView& szDate, - const ByteStringView& szFormat, - const ByteStringView& szLocale); - static ByteString IsoDate2Local(CFXJSE_Value* pThis, - const ByteStringView& szDate, - const ByteStringView& szFormat, - const ByteStringView& szLocale); - static ByteString IsoTime2Local(CFXJSE_Value* pThis, - const ByteStringView& szTime, - const ByteStringView& szFormat, - const ByteStringView& szLocale); - static int32_t DateString2Num(const ByteStringView& szDateString); - static ByteString GetLocalDateFormat(CFXJSE_Value* pThis, - int32_t iStyle, - const ByteStringView& szLocalStr, - bool bStandard); - static ByteString GetLocalTimeFormat(CFXJSE_Value* pThis, - int32_t iStyle, - const ByteStringView& szLocalStr, - bool bStandard); - static ByteString GetStandardDateFormat(CFXJSE_Value* pThis, - int32_t iStyle, - const ByteStringView& szLocalStr); - static ByteString GetStandardTimeFormat(CFXJSE_Value* pThis, - int32_t iStyle, - const ByteStringView& szLocalStr); - static ByteString Num2AllTime(CFXJSE_Value* pThis, - int32_t iTime, - const ByteStringView& szFormat, - const ByteStringView& szLocale, - bool bGM); - static void GetLocalTimeZone(int32_t& iHour, int32_t& iMin, int32_t& iSec); - - static void Apr(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void CTerm(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void FV(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void IPmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void NPV(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Pmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void PPmt(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void PV(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Rate(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Term(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Choose(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Exists(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void HasValue(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Oneof(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Within(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void If(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Eval(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Ref(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void UnitType(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void UnitValue(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - - static void At(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Concat(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Decode(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static WideString DecodeURL(const WideString& wsURLString); - static WideString DecodeHTML(const WideString& wsHTMLString); - static WideString DecodeXML(const WideString& wsXMLString); - static void Encode(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static WideString EncodeURL(const ByteString& szURLString); - static WideString EncodeHTML(const ByteString& szHTMLString); - static WideString EncodeXML(const ByteString& szXMLString); - static bool HTMLSTR2Code(const WideStringView& pData, uint32_t* iCode); - static bool HTMLCode2STR(uint32_t iCode, WideString* wsHTMLReserve); - static void Format(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Left(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Len(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Lower(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Ltrim(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Parse(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Replace(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Right(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Rtrim(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Space(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Str(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Stuff(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Substr(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Uuid(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Upper(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void WordNum(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static ByteString TrillionUS(const ByteStringView& szData); - static ByteString WordUS(const ByteString& szData, int32_t iStyle); - - static void Get(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Post(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void Put(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void assign_value_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void logical_or_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void logical_and_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void equality_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void notequality_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static bool fm_ref_equal(CFXJSE_Value* pThis, CFXJSE_Arguments& args); - static void less_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void lessequal_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void greater_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void greaterequal_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void plus_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void minus_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void multiple_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void divide_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void positive_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void negative_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void logical_not_operator(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void dot_accessor(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void dotdot_accessor(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void eval_translation(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void is_fm_object(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void is_fm_array(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void get_fm_value(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void get_fm_jsobj(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void fm_var_filter(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - static void concat_fm_object(CFXJSE_Value* pThis, - const ByteStringView& szFuncName, - CFXJSE_Arguments& args); - - static int32_t hvalue_get_array_length(CFXJSE_Value* pThis, - CFXJSE_Value* arg); - static bool simpleValueCompare(CFXJSE_Value* pThis, - CFXJSE_Value* firstValue, - CFXJSE_Value* secondValue); - static void unfoldArgs( - CFXJSE_Value* pThis, - CFXJSE_Arguments& args, - std::vector<std::unique_ptr<CFXJSE_Value>>* resultValues, - int32_t iStart = 0); - static void GetObjectDefaultValue(CFXJSE_Value* pObjectValue, - CFXJSE_Value* pDefaultValue); - static bool SetObjectDefaultValue(CFXJSE_Value* pObjectValue, - CFXJSE_Value* pNewValue); - static ByteString GenerateSomExpression(const ByteStringView& szName, - int32_t iIndexFlags, - int32_t iIndexValue, - bool bIsStar); - static bool GetObjectForName(CFXJSE_Value* pThis, - CFXJSE_Value* accessorValue, - const ByteStringView& szAccessorName); - static int32_t ResolveObjects(CFXJSE_Value* pThis, - CFXJSE_Value* pParentValue, - const ByteStringView& bsSomExp, - XFA_RESOLVENODE_RS& resoveNodeRS, - bool bdotAccessor = true, - bool bHasNoResolveName = false); - static void ParseResolveResult( - CFXJSE_Value* pThis, - const XFA_RESOLVENODE_RS& resoveNodeRS, - CFXJSE_Value* pParentValue, - std::vector<std::unique_ptr<CFXJSE_Value>>* resultValues, - bool* bAttribute); - - static std::unique_ptr<CFXJSE_Value> GetSimpleValue(CFXJSE_Value* pThis, - CFXJSE_Arguments& args, - uint32_t index); - static bool ValueIsNull(CFXJSE_Value* pThis, CFXJSE_Value* pValue); - static int32_t ValueToInteger(CFXJSE_Value* pThis, CFXJSE_Value* pValue); - static float ValueToFloat(CFXJSE_Value* pThis, CFXJSE_Value* pValue); - static double ValueToDouble(CFXJSE_Value* pThis, CFXJSE_Value* pValue); - static ByteString ValueToUTF8String(CFXJSE_Value* pValue); - static double ExtractDouble(CFXJSE_Value* pThis, - CFXJSE_Value* src, - bool* ret); - - static bool Translate(const WideStringView& wsFormcalc, - CFX_WideTextBuf* wsJavascript); - - void GlobalPropertyGetter(CFXJSE_Value* pValue); - - private: - v8::Isolate* GetScriptRuntime() const { return m_pIsolate; } - CXFA_Document* GetDocument() const { return m_pDocument.Get(); } - - void ThrowNoDefaultPropertyException(const ByteStringView& name) const; - void ThrowCompilerErrorException() const; - void ThrowDivideByZeroException() const; - void ThrowServerDeniedException() const; - void ThrowPropertyNotInObjectException(const WideString& name, - const WideString& exp) const; - void ThrowArgumentMismatchException() const; - void ThrowParamCountMismatchException(const WideString& method) const; - void ThrowException(const wchar_t* str, ...) const; - - v8::Isolate* m_pIsolate; - CFXJSE_Class* m_pFMClass; - std::unique_ptr<CFXJSE_Value> m_pValue; - UnownedPtr<CXFA_Document> const m_pDocument; -}; - -#endif // XFA_FXFA_FM2JS_CXFA_FM2JSCONTEXT_H_ |