| Index: fpdfsdk/include/jsapi/fxjs_v8.h
|
| diff --git a/fpdfsdk/include/jsapi/fxjs_v8.h b/fpdfsdk/include/jsapi/fxjs_v8.h
|
| index 6e4fc6f7a7e1f7e34f42e388c7f37e56415f3304..e455bfc4ae7c286eb68d6ec4a0a2e2ab3071dcdb 100644
|
| --- a/fpdfsdk/include/jsapi/fxjs_v8.h
|
| +++ b/fpdfsdk/include/jsapi/fxjs_v8.h
|
| @@ -14,20 +14,8 @@
|
| #include "../../../core/include/fxcrt/fx_string.h" // For CFX_WideString
|
|
|
| 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
|
| + FXJS_DYNAMIC = 0,
|
| + FXJS_STATIC = 1,
|
| };
|
|
|
| struct FXJSErr {
|
| @@ -46,20 +34,28 @@ extern const wchar_t kFXJSValueNameNull[];
|
| extern const wchar_t kFXJSValueNameUndefined[];
|
|
|
| // FXJS_V8 places no interpretation on these two classes; it merely
|
| -// passes them on to the caller-provided LP_CONSTRUCTORs.
|
| +// passes them on to the caller-provided FXJS_CONSTRUCTORs.
|
| class IFXJS_Context;
|
| class IFXJS_Runtime;
|
|
|
| -class JS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| +class FXJS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| void* Allocate(size_t length) override;
|
| void* AllocateUninitialized(size_t length) override;
|
| void Free(void* data, size_t length) override;
|
| };
|
|
|
| -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);
|
| +using FXJS_CONSTRUCTOR = void (*)(IFXJS_Context* cc,
|
| + v8::Local<v8::Object> obj,
|
| + v8::Local<v8::Object> global);
|
| +using FXJS_DESTRUCTOR = void (*)(v8::Local<v8::Object> obj);
|
| +
|
| +// Call before making FXJS_PrepareIsolate call.
|
| +void FXJS_Initialize(unsigned int embedderDataSlot);
|
| +void FXJS_Release();
|
| +
|
| +// Call before making FXJS_Define* calls. Resources allocated here are cleared
|
| +// as part of FXJS_ReleaseRuntime().
|
| +void FXJS_PrepareIsolate(v8::Isolate* pIsolate);
|
|
|
| // Call before making JS_PrepareIsolate call.
|
| void JS_Initialize(unsigned int embedderDataSlot);
|
| @@ -70,156 +66,146 @@ void JS_Release();
|
| void JS_PrepareIsolate(v8::Isolate* pIsolate);
|
|
|
| // Always returns a valid, newly-created objDefnID.
|
| -int JS_DefineObj(v8::Isolate* pIsolate,
|
| - const wchar_t* sObjName,
|
| - FXJSOBJTYPE eObjType,
|
| - LP_CONSTRUCTOR pConstructor,
|
| - LP_DESTRUCTOR pDestructor);
|
| -
|
| -void JS_DefineObjMethod(v8::Isolate* pIsolate,
|
| - int nObjDefnID,
|
| - const wchar_t* sMethodName,
|
| - v8::FunctionCallback pMethodCall);
|
| -void JS_DefineObjProperty(v8::Isolate* pIsolate,
|
| +int FXJS_DefineObj(v8::Isolate* pIsolate,
|
| + const wchar_t* sObjName,
|
| + FXJSOBJTYPE eObjType,
|
| + FXJS_CONSTRUCTOR pConstructor,
|
| + FXJS_DESTRUCTOR pDestructor);
|
| +
|
| +void FXJS_DefineObjMethod(v8::Isolate* pIsolate,
|
| int nObjDefnID,
|
| - const wchar_t* sPropName,
|
| - v8::AccessorGetterCallback pPropGet,
|
| - v8::AccessorSetterCallback pPropPut);
|
| -void JS_DefineObjAllProperties(v8::Isolate* pIsolate,
|
| - int nObjDefnID,
|
| - v8::NamedPropertyQueryCallback pPropQurey,
|
| - v8::NamedPropertyGetterCallback pPropGet,
|
| - v8::NamedPropertySetterCallback pPropPut,
|
| - v8::NamedPropertyDeleterCallback pPropDel);
|
| -void JS_DefineObjConst(v8::Isolate* pIsolate,
|
| - int nObjDefnID,
|
| - const wchar_t* sConstName,
|
| - v8::Local<v8::Value> pDefault);
|
| -void JS_DefineGlobalMethod(v8::Isolate* pIsolate,
|
| - const wchar_t* sMethodName,
|
| - v8::FunctionCallback pMethodCall);
|
| -void JS_DefineGlobalConst(v8::Isolate* pIsolate,
|
| - const wchar_t* sConstName,
|
| - v8::Local<v8::Value> pDefault);
|
| -
|
| -// Called after JS_Define* calls made.
|
| -void JS_InitializeRuntime(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);
|
| -
|
| -// Called after JS_InitializeRuntime call made.
|
| -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,
|
| + const wchar_t* sMethodName,
|
| + v8::FunctionCallback pMethodCall);
|
| +void FXJS_DefineObjProperty(v8::Isolate* pIsolate,
|
| + int nObjDefnID,
|
| + const wchar_t* sPropName,
|
| + v8::AccessorGetterCallback pPropGet,
|
| + v8::AccessorSetterCallback pPropPut);
|
| +void FXJS_DefineObjAllProperties(v8::Isolate* pIsolate,
|
| + int nObjDefnID,
|
| + v8::NamedPropertyQueryCallback pPropQurey,
|
| + v8::NamedPropertyGetterCallback pPropGet,
|
| + v8::NamedPropertySetterCallback pPropPut,
|
| + v8::NamedPropertyDeleterCallback pPropDel);
|
| +void FXJS_DefineObjConst(v8::Isolate* pIsolate,
|
| + int nObjDefnID,
|
| + const wchar_t* sConstName,
|
| + v8::Local<v8::Value> pDefault);
|
| +void FXJS_DefineGlobalMethod(v8::Isolate* pIsolate,
|
| + const wchar_t* sMethodName,
|
| + v8::FunctionCallback pMethodCall);
|
| +void FXJS_DefineGlobalConst(v8::Isolate* pIsolate,
|
| + const wchar_t* sConstName,
|
| + v8::Local<v8::Value> pDefault);
|
| +
|
| +// Called after FXJS_Define* calls made.
|
| +void FXJS_InitializeRuntime(v8::Isolate* pIsolate,
|
| + IFXJS_Runtime* pFXRuntime,
|
| + IFXJS_Context* context,
|
| + v8::Global<v8::Context>& v8PersistentContext);
|
| +void FXJS_ReleaseRuntime(v8::Isolate* pIsolate,
|
| + v8::Global<v8::Context>& v8PersistentContext);
|
| +
|
| +// Called after FXJS_InitializeRuntime call made.
|
| +int FXJS_Execute(v8::Isolate* pIsolate,
|
| + IFXJS_Context* pJSContext,
|
| + const wchar_t* script,
|
| + long length,
|
| + FXJSErr* perror);
|
| +
|
| +v8::Local<v8::Object> FXJS_NewFxDynamicObj(v8::Isolate* pIsolate,
|
| + IFXJS_Context* pJSContext,
|
| + int nObjDefnID);
|
| +v8::Local<v8::Object> FXJS_GetStaticObj(v8::Isolate* pIsolate, int nObjDefnID);
|
| +v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate);
|
| +int FXJS_GetObjDefnID(v8::Local<v8::Object> pObj);
|
| +v8::Isolate* FXJS_GetRuntime(v8::Local<v8::Object> pObj);
|
| +int FXJS_GetObjDefnID(v8::Isolate* pIsolate, const wchar_t* pObjName);
|
| +void FXJS_Error(v8::Isolate* isolate, const CFX_WideString& message);
|
| +const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj);
|
| +void FXJS_SetPrivate(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + void* p);
|
| +void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj);
|
| +void FXJS_SetPrivate(v8::Local<v8::Object> pObj, void* p);
|
| +void* FXJS_GetPrivate(v8::Local<v8::Object> pObj);
|
| +void FXJS_FreePrivate(void* p);
|
| +void FXJS_FreePrivate(v8::Local<v8::Object> pObj);
|
| +v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate,
|
| + const wchar_t* PropertyName,
|
| + int Len = -1);
|
| +v8::Local<v8::Value> FXJS_GetObjectValue(v8::Local<v8::Object> pObj);
|
| +v8::Local<v8::Value> FXJS_GetObjectElement(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName);
|
| +v8::Local<v8::Array> FXJS_GetObjectElementNames(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj);
|
| +void FXJS_PutObjectString(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + const wchar_t* sValue);
|
| +void FXJS_PutObjectNumber(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + int nValue);
|
| +void FXJS_PutObjectNumber(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + float fValue);
|
| +void FXJS_PutObjectNumber(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + double dValue);
|
| +void FXJS_PutObjectBoolean(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + bool bValue);
|
| +void FXJS_PutObjectObject(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj,
|
| + const wchar_t* PropertyName,
|
| + v8::Local<v8::Object> pPut);
|
| +void FXJS_PutObjectNull(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,
|
| + const wchar_t* PropertyName);
|
| +unsigned FXJS_PutArrayElement(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Array> pArray,
|
| + unsigned index,
|
| + v8::Local<v8::Value> pValue);
|
| +v8::Local<v8::Value> FXJS_GetArrayElement(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Array> pArray,
|
| + unsigned index);
|
| +unsigned FXJS_GetArrayLength(v8::Local<v8::Array> pArray);
|
| +v8::Local<v8::Value> FXJS_GetListValue(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Value> pList,
|
| + int index);
|
| +
|
| +v8::Local<v8::Array> FXJS_NewArray(v8::Isolate* pIsolate);
|
| +v8::Local<v8::Value> FXJS_NewNumber(v8::Isolate* pIsolate, int number);
|
| +v8::Local<v8::Value> FXJS_NewNumber(v8::Isolate* pIsolate, double number);
|
| +v8::Local<v8::Value> FXJS_NewNumber(v8::Isolate* pIsolate, float number);
|
| +v8::Local<v8::Value> FXJS_NewBoolean(v8::Isolate* pIsolate, bool b);
|
| +v8::Local<v8::Value> FXJS_NewObject(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Object> pObj);
|
| +v8::Local<v8::Value> FXJS_NewObject2(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Array> pObj);
|
| +v8::Local<v8::Value> FXJS_NewString(v8::Isolate* pIsolate,
|
| + const wchar_t* string);
|
| +v8::Local<v8::Value> FXJS_NewString(v8::Isolate* pIsolate,
|
| + const wchar_t* string,
|
| + unsigned nLen);
|
| +v8::Local<v8::Value> FXJS_NewNull();
|
| +v8::Local<v8::Value> FXJS_NewDate(v8::Isolate* pIsolate, double d);
|
| +v8::Local<v8::Value> FXJS_NewValue(v8::Isolate* pIsolate);
|
| +
|
| +int FXJS_ToInt32(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
|
| +bool FXJS_ToBoolean(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
|
| +double FXJS_ToNumber(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
|
| +v8::Local<v8::Object> FXJS_ToObject(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Value> pValue);
|
| +CFX_WideString FXJS_ToString(v8::Isolate* pIsolate,
|
| + v8::Local<v8::Value> pValue);
|
| +v8::Local<v8::Array> FXJS_ToArray(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);
|
| +void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom);
|
|
|
| #endif // FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_
|
|
|