Remove some abstractions in fxjs_v8.h.
[pdfium.git] / fpdfsdk / include / jsapi / fxjs_v8.h
index f5d6992..8e52c68 100644 (file)
 #include <v8.h>
 #include "../../../core/include/fxcrt/fx_string.h"  // For CFX_WideString
 
-typedef v8::Value                      JSValue;
-typedef v8::Local<v8::Object>  JSObject;
-typedef v8::Local<v8::Object>  JSFXObject;
-
-enum FXJSOBJTYPE
-{
-       JS_DYNAMIC = 0,
-       JS_STATIC = 1,
+enum FXJSOBJTYPE {
+  JS_DYNAMIC = 0,
+  JS_STATIC = 1,
 };
 
-enum FXJSVALUETYPE
-{
-       VT_unknown,
-       VT_string,
-       VT_number,
-       VT_boolean,
-       VT_date,
-       VT_object,
-       VT_fxobject,
-       VT_null,
-       VT_undefined
+enum FXJSVALUETYPE {
+  VT_unknown,
+  VT_string,
+  VT_number,
+  VT_boolean,
+  VT_date,
+  VT_object,
+  VT_fxobject,
+  VT_null,
+  VT_undefined
 };
 
-struct FXJSErr
-{
-       const wchar_t* message;
-    const wchar_t* srcline;
-    unsigned linnum;
+struct FXJSErr {
+  const wchar_t* message;
+  const wchar_t* srcline;
+  unsigned linnum;
 };
 
-/* --------------------------------------------- API --------------------------------------------- */
+/* --------------------------------------------- API
+ * --------------------------------------------- */
 
-typedef v8::Isolate IJS_Runtime;
 class IFXJS_Context;
 class IFXJS_Runtime;
 
-typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc, v8::Local<v8::Object> obj, v8::Local<v8::Object> global);
+typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc,
+                               v8::Local<v8::Object> obj,
+                               v8::Local<v8::Object> global);
 typedef void (*LP_DESTRUCTOR)(v8::Local<v8::Object> obj);
 
-
-int                                                            JS_DefineObj(IJS_Runtime* pJSRuntime, const wchar_t* sObjName, FXJSOBJTYPE eObjType, LP_CONSTRUCTOR pConstructor, LP_DESTRUCTOR pDestructor, unsigned bApplyNew);
-int                                                            JS_DefineObjMethod(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sMethodName, v8::FunctionCallback pMethodCall);
-int                                                            JS_DefineObjProperty(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sPropName, v8::AccessorGetterCallback pPropGet, v8::AccessorSetterCallback pPropPut);
-int                                                            JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime, int nObjDefnID, v8::NamedPropertyQueryCallback pPropQurey, v8::NamedPropertyGetterCallback pPropGet, v8::NamedPropertySetterCallback pPropPut, v8::NamedPropertyDeleterCallback pPropDel);
-int                                                            JS_DefineObjConst(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sConstName, v8::Local<v8::Value> pDefault);
-int                                                            JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime, const wchar_t* sMethodName, v8::FunctionCallback pMethodCall);
-int                                                            JS_DefineGlobalConst(IJS_Runtime* pJSRuntime, const wchar_t* sConstName, v8::Local<v8::Value> pDefault);
-
-void                                                   JS_InitialRuntime(IJS_Runtime* pJSRuntime,IFXJS_Runtime* pFXRuntime, IFXJS_Context* context, v8::Global<v8::Context>& v8PersistentContext);
-void                                                   JS_ReleaseRuntime(IJS_Runtime* pJSRuntime, v8::Global<v8::Context>& v8PersistentContext);
-void                                                   JS_Initial();
-void                                                   JS_Release();
-int                                                            JS_Parse(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, const wchar_t* script, long length, FXJSErr* perror);
-int                                                            JS_Execute(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, const wchar_t* script, long length, FXJSErr* perror);
-v8::Local<v8::Object>                  JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, int nObjDefnID);
-v8::Local<v8::Object>                  JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID);
-void                                                   JS_SetThisObj(IJS_Runtime* pJSRuntime, int nThisObjID);
-v8::Local<v8::Object>                  JS_GetThisObj(IJS_Runtime * pJSRuntime);
-int                                                            JS_GetObjDefnID(v8::Local<v8::Object> pObj);
-IJS_Runtime*                                   JS_GetRuntime(v8::Local<v8::Object> pObj);
-int                                                            JS_GetObjDefnID(IJS_Runtime * pJSRuntime, const wchar_t* pObjName);
-void                                                   JS_Error(v8::Isolate* isolate, const CFX_WideString& message);
-unsigned                                               JS_CalcHash(const wchar_t* main, unsigned nLen);
-unsigned                                               JS_CalcHash(const wchar_t* main);
-const wchar_t*                                 JS_GetTypeof(v8::Local<v8::Value> pObj);
-void                                                   JS_SetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj, void* p);
-void*                                                  JS_GetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj);
-void                                                   JS_SetPrivate(v8::Local<v8::Object> pObj, void* p);
-void*                                                  JS_GetPrivate(v8::Local<v8::Object> pObj);
-void                                                   JS_FreePrivate(void* p);
-void                                                   JS_FreePrivate(v8::Local<v8::Object> pObj);
-v8::Local<v8::Value>                   JS_GetObjectValue(v8::Local<v8::Object> pObj);
-v8::Local<v8::Value>                   JS_GetObjectElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj,const wchar_t* PropertyName);
-v8::Local<v8::Array>                   JS_GetObjectElementNames(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj);
-void                                                   JS_PutObjectString(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, const wchar_t* sValue);
-void                                                   JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, int nValue);
-void                                                   JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, float fValue);
-void                                                   JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, double dValue);
-void                                                   JS_PutObjectBoolean(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, bool bValue);
-void                                                   JS_PutObjectObject(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, v8::Local<v8::Object> pPut);
-void                                                   JS_PutObjectNull(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName);
-unsigned                                               JS_PutArrayElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Array> pArray,unsigned index,v8::Local<v8::Value> pValue,FXJSVALUETYPE eType);
-v8::Local<v8::Value>                   JS_GetArrayElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Array> pArray,unsigned index);
-unsigned                                               JS_GetArrayLength(v8::Local<v8::Array> pArray);
-v8::Local<v8::Value>                   JS_GetListValue(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pList, int index);
-
-
-v8::Local<v8::Array>                   JS_NewArray(IJS_Runtime* pJSRuntime);
-v8::Local<v8::Value>                   JS_NewNumber(IJS_Runtime* pJSRuntime,int number);
-v8::Local<v8::Value>                   JS_NewNumber(IJS_Runtime* pJSRuntime,double number);
-v8::Local<v8::Value>                   JS_NewNumber(IJS_Runtime* pJSRuntime,float number);
-v8::Local<v8::Value>                   JS_NewBoolean(IJS_Runtime* pJSRuntime,bool b);
-v8::Local<v8::Value>                   JS_NewObject(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj);
-v8::Local<v8::Value>                   JS_NewObject2(IJS_Runtime* pJSRuntime,v8::Local<v8::Array> pObj);
-v8::Local<v8::Value>                   JS_NewString(IJS_Runtime* pJSRuntime,const wchar_t* string);
-v8::Local<v8::Value>                   JS_NewString(IJS_Runtime* pJSRuntime,const wchar_t* string, unsigned nLen);
-v8::Local<v8::Value>                   JS_NewNull();
-v8::Local<v8::Value>                   JS_NewDate(IJS_Runtime* pJSRuntime,double d);
-v8::Local<v8::Value>                   JS_NewValue(IJS_Runtime* pJSRuntime);
-
-
-int                                                            JS_ToInt32(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-bool                                                   JS_ToBoolean(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-double                                                 JS_ToNumber(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-v8::Local<v8::Object>                  JS_ToObject(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-CFX_WideString                                 JS_ToString(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-v8::Local<v8::Array>                   JS_ToArray(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-void                                                   JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom);
-
-double                                                 JS_GetDateTime();
-int                                                            JS_GetYearFromTime(double dt);
-int                                                            JS_GetMonthFromTime(double dt);
-int                                                            JS_GetDayFromTime(double dt);
-int                                                            JS_GetHourFromTime(double dt);
-int                                                            JS_GetMinFromTime(double dt);
-int                                                            JS_GetSecFromTime(double dt);
-double                                                 JS_DateParse(const wchar_t* string);
-double                                                 JS_MakeDay(int nYear, int nMonth, int nDay);
-double                                                 JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
-double                                                 JS_MakeDate(double day, double time);
-bool                                                   JS_PortIsNan(double d);
-double                                                 JS_LocalTime(double d);
+int JS_DefineObj(v8::Isolate* pIsolate,
+                 const wchar_t* sObjName,
+                 FXJSOBJTYPE eObjType,
+                 LP_CONSTRUCTOR pConstructor,
+                 LP_DESTRUCTOR pDestructor);
+int JS_DefineObjMethod(v8::Isolate* pIsolate,
+                       int nObjDefnID,
+                       const wchar_t* sMethodName,
+                       v8::FunctionCallback pMethodCall);
+int JS_DefineObjProperty(v8::Isolate* pIsolate,
+                         int nObjDefnID,
+                         const wchar_t* sPropName,
+                         v8::AccessorGetterCallback pPropGet,
+                         v8::AccessorSetterCallback pPropPut);
+int JS_DefineObjAllProperties(v8::Isolate* pIsolate,
+                              int nObjDefnID,
+                              v8::NamedPropertyQueryCallback pPropQurey,
+                              v8::NamedPropertyGetterCallback pPropGet,
+                              v8::NamedPropertySetterCallback pPropPut,
+                              v8::NamedPropertyDeleterCallback pPropDel);
+int JS_DefineObjConst(v8::Isolate* pIsolate,
+                      int nObjDefnID,
+                      const wchar_t* sConstName,
+                      v8::Local<v8::Value> pDefault);
+int JS_DefineGlobalMethod(v8::Isolate* pIsolate,
+                          const wchar_t* sMethodName,
+                          v8::FunctionCallback pMethodCall);
+int JS_DefineGlobalConst(v8::Isolate* pIsolate,
+                         const wchar_t* sConstName,
+                         v8::Local<v8::Value> pDefault);
+
+void JS_InitialRuntime(v8::Isolate* pIsolate,
+                       IFXJS_Runtime* pFXRuntime,
+                       IFXJS_Context* context,
+                       v8::Global<v8::Context>& v8PersistentContext);
+void JS_ReleaseRuntime(v8::Isolate* pIsolate,
+                       v8::Global<v8::Context>& v8PersistentContext);
+void JS_Initial(unsigned int embedderDataSlot);
+void JS_Release();
+int JS_Execute(v8::Isolate* pIsolate,
+               IFXJS_Context* pJSContext,
+               const wchar_t* script,
+               long length,
+               FXJSErr* perror);
+v8::Local<v8::Object> JS_NewFxDynamicObj(v8::Isolate* pIsolate,
+                                         IFXJS_Context* pJSContext,
+                                         int nObjDefnID);
+v8::Local<v8::Object> JS_GetStaticObj(v8::Isolate* pIsolate, int nObjDefnID);
+v8::Local<v8::Object> JS_GetThisObj(v8::Isolate* pIsolate);
+int JS_GetObjDefnID(v8::Local<v8::Object> pObj);
+v8::Isolate* JS_GetRuntime(v8::Local<v8::Object> pObj);
+int JS_GetObjDefnID(v8::Isolate* pIsolate, const wchar_t* pObjName);
+void JS_Error(v8::Isolate* isolate, const CFX_WideString& message);
+unsigned JS_CalcHash(const wchar_t* main, unsigned nLen);
+unsigned JS_CalcHash(const wchar_t* main);
+const wchar_t* JS_GetTypeof(v8::Local<v8::Value> pObj);
+void JS_SetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, void* p);
+void* JS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj);
+void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p);
+void* JS_GetPrivate(v8::Local<v8::Object> pObj);
+void JS_FreePrivate(void* p);
+void JS_FreePrivate(v8::Local<v8::Object> pObj);
+v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj);
+v8::Local<v8::Value> JS_GetObjectElement(v8::Isolate* pIsolate,
+                                         v8::Local<v8::Object> pObj,
+                                         const wchar_t* PropertyName);
+v8::Local<v8::Array> JS_GetObjectElementNames(v8::Isolate* pIsolate,
+                                              v8::Local<v8::Object> pObj);
+void JS_PutObjectString(v8::Isolate* pIsolate,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        const wchar_t* sValue);
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        int nValue);
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        float fValue);
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        double dValue);
+void JS_PutObjectBoolean(v8::Isolate* pIsolate,
+                         v8::Local<v8::Object> pObj,
+                         const wchar_t* PropertyName,
+                         bool bValue);
+void JS_PutObjectObject(v8::Isolate* pIsolate,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        v8::Local<v8::Object> pPut);
+void JS_PutObjectNull(v8::Isolate* pIsolate,
+                      v8::Local<v8::Object> pObj,
+                      const wchar_t* PropertyName);
+unsigned JS_PutArrayElement(v8::Isolate* pIsolate,
+                            v8::Local<v8::Array> pArray,
+                            unsigned index,
+                            v8::Local<v8::Value> pValue,
+                            FXJSVALUETYPE eType);
+v8::Local<v8::Value> JS_GetArrayElement(v8::Isolate* pIsolate,
+                                        v8::Local<v8::Array> pArray,
+                                        unsigned index);
+unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray);
+v8::Local<v8::Value> JS_GetListValue(v8::Isolate* pIsolate,
+                                     v8::Local<v8::Value> pList,
+                                     int index);
+
+v8::Local<v8::Array> JS_NewArray(v8::Isolate* pIsolate);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, int number);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, double number);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, float number);
+v8::Local<v8::Value> JS_NewBoolean(v8::Isolate* pIsolate, bool b);
+v8::Local<v8::Value> JS_NewObject(v8::Isolate* pIsolate,
+                                  v8::Local<v8::Object> pObj);
+v8::Local<v8::Value> JS_NewObject2(v8::Isolate* pIsolate,
+                                   v8::Local<v8::Array> pObj);
+v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate, const wchar_t* string);
+v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate,
+                                  const wchar_t* string,
+                                  unsigned nLen);
+v8::Local<v8::Value> JS_NewNull();
+v8::Local<v8::Value> JS_NewDate(v8::Isolate* pIsolate, double d);
+v8::Local<v8::Value> JS_NewValue(v8::Isolate* pIsolate);
+
+int JS_ToInt32(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+bool JS_ToBoolean(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+double JS_ToNumber(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+v8::Local<v8::Object> JS_ToObject(v8::Isolate* pIsolate,
+                                  v8::Local<v8::Value> pValue);
+CFX_WideString JS_ToString(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+v8::Local<v8::Array> JS_ToArray(v8::Isolate* pIsolate,
+                                v8::Local<v8::Value> pValue);
+void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom);
+
+double JS_GetDateTime();
+int JS_GetYearFromTime(double dt);
+int JS_GetMonthFromTime(double dt);
+int JS_GetDayFromTime(double dt);
+int JS_GetHourFromTime(double dt);
+int JS_GetMinFromTime(double dt);
+int JS_GetSecFromTime(double dt);
+double JS_DateParse(const wchar_t* string);
+double JS_MakeDay(int nYear, int nMonth, int nDay);
+double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
+double JS_MakeDate(double day, double time);
+bool JS_PortIsNan(double d);
+double JS_LocalTime(double d);
 
 #endif  // FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_