Replace void* with CFXJSE_HostObect and make wrapped objects inherit from it

This will avoid a re-occurrence of BUG 613607 should someone
again optimize away CXFA_Object's virtual dtor.

Review-Url: https://codereview.chromium.org/2019333006
diff --git a/xfa/fxjse/include/fxjse.h b/xfa/fxjse/include/fxjse.h
index e432858..4a85251 100644
--- a/xfa/fxjse/include/fxjse.h
+++ b/xfa/fxjse/include/fxjse.h
@@ -16,6 +16,8 @@
 class CFXJSE_Context;
 class CFXJSE_Value;
 
+class CFXJSE_HostObject {};  // C++ object which can be wrapped by CFXJSE_value.
+
 typedef void (*FXJSE_FuncCallback)(CFXJSE_Value* pThis,
                                    const CFX_ByteStringC& szFuncName,
                                    CFXJSE_Arguments& args);
@@ -73,7 +75,7 @@
 CFXJSE_Context* FXJSE_Context_Create(
     v8::Isolate* pIsolate,
     const FXJSE_CLASS_DESCRIPTOR* lpGlobalClass,
-    void* lpGlobalObject);
+    CFXJSE_HostObject* lpGlobalObject);
 void FXJSE_Context_Release(CFXJSE_Context* pContext);
 CFXJSE_Value* FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext);
 
@@ -98,7 +100,8 @@
 int32_t FXJSE_Value_ToInteger(CFXJSE_Value* pValue);
 void FXJSE_Value_ToUTF8String(CFXJSE_Value* pValue,
                               CFX_ByteString& szStrOutput);
-void* FXJSE_Value_ToObject(CFXJSE_Value* pValue, CFXJSE_Class* pClass);
+CFXJSE_HostObject* FXJSE_Value_ToObject(CFXJSE_Value* pValue,
+                                        CFXJSE_Class* pClass);
 
 void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue);
 void FXJSE_Value_SetNull(CFXJSE_Value* pValue);
@@ -109,7 +112,7 @@
 void FXJSE_Value_SetFloat(CFXJSE_Value* pValue, FX_FLOAT fFloat);
 void FXJSE_Value_SetDouble(CFXJSE_Value* pValue, double dDouble);
 void FXJSE_Value_SetObject(CFXJSE_Value* pValue,
-                           void* lpObject,
+                           CFXJSE_HostObject* lpObject,
                            CFXJSE_Class* pClass);
 void FXJSE_Value_SetArray(CFXJSE_Value* pValue,
                           uint32_t uValueCount,