Remove some abstractions in fxjs_v8.h.
[pdfium.git] / fpdfsdk / include / jsapi / fxjs_v8.h
index 72f2a5d..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,
@@ -43,7 +39,6 @@ struct FXJSErr {
 /* --------------------------------------------- API
  * --------------------------------------------- */
 
-typedef v8::Isolate IJS_Runtime;
 class IFXJS_Context;
 class IFXJS_Runtime;
 
@@ -52,148 +47,138 @@ typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc,
                                v8::Local<v8::Object> global);
 typedef void (*LP_DESTRUCTOR)(v8::Local<v8::Object> obj);
 
-int JS_DefineObj(IJS_Runtime* pJSRuntime,
+int JS_DefineObj(v8::Isolate* pIsolate,
                  const wchar_t* sObjName,
                  FXJSOBJTYPE eObjType,
                  LP_CONSTRUCTOR pConstructor,
                  LP_DESTRUCTOR pDestructor);
-int JS_DefineObjMethod(IJS_Runtime* pJSRuntime,
+int JS_DefineObjMethod(v8::Isolate* pIsolate,
                        int nObjDefnID,
                        const wchar_t* sMethodName,
                        v8::FunctionCallback pMethodCall);
-int JS_DefineObjProperty(IJS_Runtime* pJSRuntime,
+int JS_DefineObjProperty(v8::Isolate* pIsolate,
                          int nObjDefnID,
                          const wchar_t* sPropName,
                          v8::AccessorGetterCallback pPropGet,
                          v8::AccessorSetterCallback pPropPut);
-int JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime,
+int JS_DefineObjAllProperties(v8::Isolate* pIsolate,
                               int nObjDefnID,
                               v8::NamedPropertyQueryCallback pPropQurey,
                               v8::NamedPropertyGetterCallback pPropGet,
                               v8::NamedPropertySetterCallback pPropPut,
                               v8::NamedPropertyDeleterCallback pPropDel);
-int JS_DefineObjConst(IJS_Runtime* pJSRuntime,
+int JS_DefineObjConst(v8::Isolate* pIsolate,
                       int nObjDefnID,
                       const wchar_t* sConstName,
                       v8::Local<v8::Value> pDefault);
-int JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime,
+int JS_DefineGlobalMethod(v8::Isolate* pIsolate,
                           const wchar_t* sMethodName,
                           v8::FunctionCallback pMethodCall);
-int JS_DefineGlobalConst(IJS_Runtime* pJSRuntime,
+int JS_DefineGlobalConst(v8::Isolate* pIsolate,
                          const wchar_t* sConstName,
                          v8::Local<v8::Value> pDefault);
 
-void JS_InitialRuntime(IJS_Runtime* pJSRuntime,
+void JS_InitialRuntime(v8::Isolate* pIsolate,
                        IFXJS_Runtime* pFXRuntime,
                        IFXJS_Context* context,
                        v8::Global<v8::Context>& v8PersistentContext);
-void JS_ReleaseRuntime(IJS_Runtime* pJSRuntime,
+void JS_ReleaseRuntime(v8::Isolate* pIsolate,
                        v8::Global<v8::Context>& v8PersistentContext);
 void JS_Initial(unsigned int embedderDataSlot);
 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,
+int JS_Execute(v8::Isolate* pIsolate,
                IFXJS_Context* pJSContext,
                const wchar_t* script,
                long length,
                FXJSErr* perror);
-v8::Local<v8::Object> JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Object> JS_NewFxDynamicObj(v8::Isolate* pIsolate,
                                          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);
+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);
-IJS_Runtime* JS_GetRuntime(v8::Local<v8::Object> pObj);
-int JS_GetObjDefnID(IJS_Runtime* pJSRuntime, const wchar_t* pObjName);
+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(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::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(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_GetObjectElement(v8::Isolate* pIsolate,
                                          v8::Local<v8::Object> pObj,
                                          const wchar_t* PropertyName);
-v8::Local<v8::Array> JS_GetObjectElementNames(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Array> JS_GetObjectElementNames(v8::Isolate* pIsolate,
                                               v8::Local<v8::Object> pObj);
-void JS_PutObjectString(IJS_Runtime* pJSRuntime,
+void JS_PutObjectString(v8::Isolate* pIsolate,
                         v8::Local<v8::Object> pObj,
                         const wchar_t* PropertyName,
                         const wchar_t* sValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
                         v8::Local<v8::Object> pObj,
                         const wchar_t* PropertyName,
                         int nValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
                         v8::Local<v8::Object> pObj,
                         const wchar_t* PropertyName,
                         float fValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
                         v8::Local<v8::Object> pObj,
                         const wchar_t* PropertyName,
                         double dValue);
-void JS_PutObjectBoolean(IJS_Runtime* pJSRuntime,
+void JS_PutObjectBoolean(v8::Isolate* pIsolate,
                          v8::Local<v8::Object> pObj,
                          const wchar_t* PropertyName,
                          bool bValue);
-void JS_PutObjectObject(IJS_Runtime* pJSRuntime,
+void JS_PutObjectObject(v8::Isolate* pIsolate,
                         v8::Local<v8::Object> pObj,
                         const wchar_t* PropertyName,
                         v8::Local<v8::Object> pPut);
-void JS_PutObjectNull(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNull(v8::Isolate* pIsolate,
                       v8::Local<v8::Object> pObj,
                       const wchar_t* PropertyName);
-unsigned JS_PutArrayElement(IJS_Runtime* pJSRuntime,
+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(IJS_Runtime* pJSRuntime,
+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(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_GetListValue(v8::Isolate* pIsolate,
                                      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::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(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_NewObject2(v8::Isolate* pIsolate,
                                    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,
+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(IJS_Runtime* pJSRuntime, double d);
-v8::Local<v8::Value> JS_NewValue(IJS_Runtime* pJSRuntime);
+v8::Local<v8::Value> JS_NewDate(v8::Isolate* pIsolate, double d);
+v8::Local<v8::Value> JS_NewValue(v8::Isolate* pIsolate);
 
-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,
+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(IJS_Runtime* pJSRuntime,
-                           v8::Local<v8::Value> pValue);
-v8::Local<v8::Array> JS_ToArray(IJS_Runtime* pJSRuntime,
+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);