Kill overloaded cast operators in CJS_Value.
authorTom Sepez <tsepez@chromium.org>
Thu, 23 Apr 2015 18:23:10 +0000 (11:23 -0700)
committerTom Sepez <tsepez@chromium.org>
Thu, 23 Apr 2015 18:23:10 +0000 (11:23 -0700)
The red-flag here is the explicit invocation of things like
    params[1].operator CFX_WideString()

rather than
    static_cast<CFX_WideString>(params[1])

to invoke the conversion.  Turns out the above won't compile due to
ambiguity given the number of implicit constructors for widestrings.
CJS_Value has both constructors and assignment operators for the
primitive types, which means that conversions can take place
unexpectedly in both directions, a second red flag.

We don't want the compiler invoking these at will since it may hide
bugs. In fact, when they are removed, three such places were
discovered.

Also rename ToJSValue to ToV8Value to match the other ToV8xxxxx
functions added.

R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1096813008

fpdfsdk/include/javascript/JS_Define.h
fpdfsdk/include/javascript/JS_Value.h
fpdfsdk/src/javascript/Document.cpp
fpdfsdk/src/javascript/Field.cpp
fpdfsdk/src/javascript/JS_Value.cpp
fpdfsdk/src/javascript/PublicMethods.cpp
fpdfsdk/src/javascript/app.cpp
fpdfsdk/src/javascript/color.cpp
fpdfsdk/src/javascript/event.cpp
fpdfsdk/src/javascript/global.cpp
fpdfsdk/src/javascript/util.cpp

index 67f283b..2a033d1 100644 (file)
@@ -137,7 +137,7 @@ void JSMethod(const char* method_name_string,
       JS_Error(isolate, JSFormatErrorString(class_name_string, method_name_string, sError));
     return;
   }
-  info.GetReturnValue().Set(valueRes.ToJSValue());
+  info.GetReturnValue().Set(valueRes.ToV8Value());
 }
 
 #define JS_STATIC_METHOD(method_name, class_name) \
@@ -404,7 +404,7 @@ void JSGlobalFunc(const char *func_name_string,
       JS_Error(isolate, JSFormatErrorString(func_name_string, nullptr, sError));
     return;
   }
-  info.GetReturnValue().Set(valueRes.ToJSValue());
+  info.GetReturnValue().Set(valueRes.ToV8Value());
 }
 
 #define JS_STATIC_GLOBAL_FUN(fun_name) \
@@ -452,7 +452,7 @@ for (int i=0; i<size; i++) array.SetElement(i,CJS_Value(pRuntime,ArrayContent[i]
 \
 CJS_PropValue prop(pRuntime);\
 prop << array;\
-if (JS_DefineGlobalConst(pRuntime, (const wchar_t*)ArrayName, prop.ToJSValue()) < 0)\
+if (JS_DefineGlobalConst(pRuntime, (const wchar_t*)ArrayName, prop.ToV8Value()) < 0)\
        return -1
 
 /* ============================================================ */
index 1431349..ecd0f83 100644 (file)
@@ -39,16 +39,16 @@ public:
        void Detach();
 
 
-       operator int() const;
-       operator bool() const;
-       operator double() const;
-       operator float() const;
-       operator CJS_Object*() const;
-       operator v8::Handle<v8::Object>() const;
-       operator v8::Handle<v8::Array>() const;
-       operator CFX_WideString() const;
-       operator CFX_ByteString() const;
-       v8::Handle<v8::Value> ToJSValue();
+       int ToInt() const;
+       bool ToBool() const;
+       double ToDouble() const;
+       float  ToFloat() const;
+       CJS_Object* ToCJSObject() const;
+       CFX_WideString ToCFXWideString() const;
+       CFX_ByteString ToCFXByteString() const;
+       v8::Handle<v8::Object> ToV8Object() const;
+       v8::Handle<v8::Array> ToV8Array() const;
+       v8::Handle<v8::Value> ToV8Value() const;
 
        void operator = (int iValue);
        void operator = (bool bValue);
index f823d80..00721bd 100644 (file)
@@ -326,7 +326,7 @@ FX_BOOL Document::getField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_
 
        if (params.size() < 1) return FALSE;
 
-       CFX_WideString wideName = params[0].operator CFX_WideString();
+       CFX_WideString wideName = params[0].ToCFXWideString();
 
        CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
        ASSERT(pInterForm != NULL);
@@ -364,7 +364,7 @@ FX_BOOL Document::getNthFieldName(IFXJS_Context* cc, const CJS_Parameters& param
 {
        ASSERT(m_pDocument != NULL);
 
-       int nIndex = params.size() > 0 ? (int)params[0] : -1;
+       int nIndex = params.size() > 0 ? params[0].ToInt() : -1;
        if (nIndex == -1) return FALSE;
 
        CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
@@ -412,12 +412,12 @@ FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_
 
        int iLength = params.size();
 
-       FX_BOOL bUI = iLength > 0 ? (FX_BOOL)params[0] : TRUE;
-       CFX_WideString cTo = iLength > 1 ? (FX_LPCWSTR)params[1].operator CFX_WideString() : L"";
-       CFX_WideString cCc = iLength > 2 ? (FX_LPCWSTR)params[2].operator CFX_WideString() : L"";
-       CFX_WideString cBcc = iLength > 3 ? (FX_LPCWSTR)params[3].operator CFX_WideString() : L"";
-       CFX_WideString cSubject = iLength > 4 ? (FX_LPCWSTR)params[4].operator CFX_WideString() : L"";
-       CFX_WideString cMsg = iLength > 5 ? (FX_LPCWSTR)params[5].operator CFX_WideString() : L"";
+       FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE;
+       CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L"";
+       CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L"";
+       CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L"";
+       CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L"";
+       CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L"";
 
        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
        ASSERT(pInterForm != NULL);
@@ -460,11 +460,11 @@ FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
        {
                if (params[8].GetType() == VT_fxobject)
                {
-                       JSFXObject pObj = (JSFXObject)params[8];
+                       JSFXObject pObj = params[8].ToV8Object();
                        {
                                if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintParamsObj"))
                                {
-                                       if (CJS_Object* pJSObj = (CJS_Object*)params[8])
+                                       if (CJS_Object* pJSObj = params[8].ToCJSObject())
                                        {
                                                        if (PrintParamsObj* pprintparamsObj = (PrintParamsObj*)pJSObj->GetEmbedObject())
                                                        {
@@ -485,21 +485,21 @@ FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
        else
        {
                if(nlength >= 1)
-                        bUI = params[0];
+                       bUI = params[0].ToBool();
                if(nlength >= 2)
-                        nStart = (int)params[1];
+                       nStart = params[1].ToInt();
                if(nlength >= 3)
-                       nEnd = (int)params[2];
+                       nEnd = params[2].ToInt();
                if(nlength >= 4)
-                       bSilent = params[3];
+                       bSilent = params[3].ToBool();
                if(nlength >= 5)
-                       bShrinkToFit = params[4];
+                       bShrinkToFit = params[4].ToBool();
                if(nlength >= 6)
-                       bPrintAsImage = params[5];
+                       bPrintAsImage = params[5].ToBool();
                if(nlength >= 7)
-                       bReverse = params[6];
+                       bReverse = params[6].ToBool();
                if(nlength >= 8)
-                       bAnnotations = params[7];
+                       bAnnotations = params[7].ToBool();
        }
 
        ASSERT(m_pDocument != NULL);
@@ -526,7 +526,7 @@ FX_BOOL Document::removeField(IFXJS_Context* cc, const CJS_Parameters& params, C
        if (params.size() < 1)
                return TRUE;
 
-       CFX_WideString sFieldName = params[0].operator CFX_WideString();
+       CFX_WideString sFieldName = params[0].ToCFXWideString();
 
        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
        ASSERT(pInterForm != NULL);
@@ -592,7 +592,7 @@ FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS
                switch (params[0].GetType())
                {
                default:
-                       aName.Attach(params[0]);
+                       aName.Attach(params[0].ToV8Array());
                        break;
                case VT_string:
                        aName.SetElement(0,params[0]);
@@ -605,7 +605,7 @@ FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS
                {
                        CJS_Value valElement(isolate);
                        aName.GetElement(i,valElement);
-                       CFX_WideString swVal = valElement.operator CFX_WideString();
+                       CFX_WideString swVal = valElement.ToCFXWideString();
 
                        for (int j=0,jsz=pPDFForm->CountFields(swVal); j<jsz; j++)
                        {
@@ -656,26 +656,26 @@ FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJ
        CJS_Value v = params[0];
        if (v.GetType() == VT_string)
        {
-               strURL = params[0].operator CFX_WideString();
+               strURL = params[0].ToCFXWideString();
                if (nSize > 1)
-                       bFDF = params[1];
+                       bFDF = params[1].ToBool();
                if (nSize > 2)
-                       bEmpty = params[2];
+                       bEmpty = params[2].ToBool();
                if (nSize > 3)
-                       aFields.Attach(params[3]);
+                       aFields.Attach(params[3].ToV8Array());
        }
        else if (v.GetType() == VT_object)
        {
-               JSObject pObj = (JSObject)params[0];
-               v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"cURL");
+               JSObject pObj = params[0].ToV8Object();
+               v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cURL");
                if (!pValue.IsEmpty())
-                       strURL = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
-               pValue = JS_GetObjectElement(isolate,pObj, L"bFDF");
-                       bFDF = CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue));
-               pValue = JS_GetObjectElement(isolate,pObj, L"bEmpty");
-                       bEmpty = CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue));
-               pValue = JS_GetObjectElement(isolate,pObj,L"aFields");
-                       aFields.Attach(CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue)));
+                       strURL = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+               pValue = JS_GetObjectElement(isolate, pObj, L"bFDF");
+               bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+               pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty");
+               bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+               pValue = JS_GetObjectElement(isolate, pObj,L"aFields");
+               aFields.Attach(CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
        }
 
        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
@@ -710,7 +710,7 @@ FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJ
                {
                        CJS_Value valName(isolate);
                        aFields.GetElement(i, valName);
-                       CFX_WideString sName = valName.operator CFX_WideString();
+                       CFX_WideString sName = valName.ToCFXWideString();
 
                        CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
                        ASSERT(pPDFForm != NULL);
@@ -781,37 +781,42 @@ FX_BOOL Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V
        CFX_WideString cSubject = L"";
        CFX_WideString cMsg = L"";
 
-
-       bUI = params.size()>=1?static_cast<FX_BOOL>(params[0]):TRUE;
-       cTo = params.size()>=2?(const wchar_t*)params[1].operator CFX_WideString():L"";
-       cCc = params.size()>=3?(const wchar_t*)params[2].operator CFX_WideString():L"";
-       cBcc = params.size()>=4?(const wchar_t*)params[3].operator CFX_WideString():L"";
-       cSubject = params.size()>=5?(const wchar_t*)params[4].operator CFX_WideString():L"";
-       cMsg = params.size()>=6?(const wchar_t*)params[5].operator CFX_WideString():L"";
+       if (params.size() >= 1)
+               bUI = params[0].ToBool();
+       if (params.size() >= 2)
+               cTo = params[1].ToCFXWideString();
+       if (params.size() >= 3)
+               cCc = params[2].ToCFXWideString();
+       if (params.size() >= 4)
+               cBcc = params[3].ToCFXWideString();
+       if (params.size() >= 5)
+               cSubject = params[4].ToCFXWideString();
+       if (params.size() >= 6)
+               cMsg = params[5].ToCFXWideString();
 
        v8::Isolate* isolate = GetIsolate(cc);
 
-       if(params.size()>=1 && params[0].GetType() == VT_object)
+       if(params.size() >= 1 && params[0].GetType() == VT_object)
        {
-               JSObject  pObj = (JSObject )params[0];
+               JSObject pObj = params[0].ToV8Object();
 
                v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI");
-                       bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
+               bUI = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToInt();
 
                pValue = JS_GetObjectElement(isolate,pObj, L"cTo");
-                       cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj, L"cCc");
-                       cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj, L"cBcc");
-                       cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj, L"cSubject");
-                       cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj, L"cMsg");
-                       cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
        }
 
@@ -1459,12 +1464,12 @@ FX_BOOL Document::addIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V
        CJS_Runtime* pRuntime = pContext->GetJSRuntime();
        ASSERT(pRuntime != NULL);
 
-       CFX_WideString swIconName = params[0].operator CFX_WideString();
+       CFX_WideString swIconName = params[0].ToCFXWideString();
 
-       JSFXObject pJSIcon = (JSFXObject)params[1];
+       JSFXObject pJSIcon = params[1].ToV8Object();
        if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) return FALSE;
 
-       CJS_EmbedObj* pEmbedObj = ((CJS_Object*)params[1])->GetEmbedObject();
+       CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject();
        if (!pEmbedObj)return FALSE;
        Icon* pIcon = (Icon*)pEmbedObj;
 
@@ -1527,7 +1532,7 @@ FX_BOOL Document::getIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V
        if (params.size() != 1)return FALSE;
        if(!m_pIconTree)
                return FALSE;
-       CFX_WideString swIconName = params[0].operator CFX_WideString();
+       CFX_WideString swIconName = params[0].ToCFXWideString();
        int iIconCounts = m_pIconTree->GetLength();
 
        CJS_Context* pContext = (CJS_Context *)cc;
@@ -1563,7 +1568,7 @@ FX_BOOL Document::removeIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJ
        if (params.size() != 1)return FALSE;
        if(!m_pIconTree)
                return FALSE;
-       CFX_WideString swIconName = params[0].operator CFX_WideString();
+       CFX_WideString swIconName = params[0].ToCFXWideString();
        return TRUE;
 }
 
@@ -1603,9 +1608,9 @@ FX_BOOL Document::getPageNthWord(IFXJS_Context* cc, const CJS_Parameters& params
 
        if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
 
-       int nPageNo = params.GetSize() > 0 ? (int)params[0] : 0;
-       int nWordNo = params.GetSize() > 1 ? (int)params[1] : 0;
-       bool bStrip = params.GetSize() > 2 ? (bool)params[2] : true;
+       int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
+       int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0;
+       bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true;
 
        CPDF_Document* pDocument = m_pDocument->GetDocument();
        if (!pDocument) return FALSE;
@@ -1675,7 +1680,7 @@ FX_BOOL Document::getPageNumWords(IFXJS_Context* cc, const CJS_Parameters& param
 
        if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
 
-       int nPageNo = params.GetSize() > 0 ? (int)params[0] : 0;
+       int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
 
        CPDF_Document* pDocument = m_pDocument->GetDocument();
        ASSERT(pDocument != NULL);
@@ -1847,22 +1852,22 @@ FX_BOOL Document::deletePages(IFXJS_Context* cc, const CJS_Parameters& params, C
        {
                if (params[0].GetType() == VT_object)
                {
-                       JSObject  pObj = (JSObject )params[0];
-                       v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"nStart");
-                               nStart = (int)CJS_Value(m_isolate,pValue,GET_VALUE_TYPE(pValue));
+                       JSObject pObj = params[0].ToV8Object();
+                       v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"nStart");
+            nStart = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
 
-                       pValue = JS_GetObjectElement(isolate,pObj, L"nEnd");
-                               nEnd = (int)CJS_Value(m_isolate,pValue,GET_VALUE_TYPE(pValue));
+                       pValue = JS_GetObjectElement(isolate, pObj, L"nEnd");
+                       nEnd = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
                }
                else
                {
-                       nStart = (int)params[0];
+                       nStart = params[0].ToInt();
                }
        }
        else
        {
-               nStart = (int)params[0];
-               nEnd = (int)params[1];
+               nStart = params[0].ToInt();
+               nEnd = params[1].ToInt();
        }
 
        int nTotal = m_pDocument->GetPageCount();
index 85b7d12..36bd1ca 100644 (file)
@@ -1072,7 +1072,7 @@ FX_BOOL Field::currentValueIndices(IFXJS_Context* cc, CJS_PropValue& vp, CFX_Wid
                        for (int i=0,sz=SelArray.GetLength(); i<sz; i++)
                        {
                                SelArray.GetElement(i,SelValue);
-                               iSelecting = (FX_INT32)SelValue;
+                               iSelecting = SelValue.ToInt();
                                array.Add(iSelecting);
                        }
                }
@@ -2375,10 +2375,10 @@ FX_BOOL Field::rect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError
                rcArray.GetElement(3, Lower_Righty);
 
                FX_FLOAT pArray[4] = {0.0f,0.0f,0.0f,0.0f};
-               pArray[0] = (FX_FLOAT)(FX_INT32)Upper_Leftx;
-               pArray[1] = (FX_FLOAT)(FX_INT32)Lower_Righty;
-               pArray[2] = (FX_FLOAT)(FX_INT32)Lower_Rightx;
-               pArray[3] = (FX_FLOAT)(FX_INT32)Upper_Lefty;
+               pArray[0] = (FX_FLOAT)Upper_Leftx.ToInt();
+               pArray[1] = (FX_FLOAT)Lower_Righty.ToInt();
+               pArray[2] = (FX_FLOAT)Lower_Rightx.ToInt();
+               pArray[3] = (FX_FLOAT)Upper_Lefty.ToInt();
 
                CPDF_Rect crRect(pArray);
 
@@ -3085,7 +3085,7 @@ FX_BOOL Field::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro
                        {
                                CJS_Value ElementValue(m_isolate);
                                ValueArray.GetElement(i, ElementValue);
-                               strArray.Add(ElementValue.operator CFX_WideString());
+                               strArray.Add(ElementValue.ToCFXWideString());
                        }
                }
                else
@@ -3149,7 +3149,7 @@ FX_BOOL Field::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro
                                        {
                                                iIndex = pFormField->GetSelectedIndex(i);
                                                ElementValue = pFormField->GetOptionValue(iIndex);
-                                               if (FXSYS_wcslen((FX_LPCWSTR)ElementValue.operator CFX_WideString()) == 0)
+                                               if (FXSYS_wcslen(ElementValue.ToCFXWideString().c_str()) == 0)
                                                        ElementValue = pFormField->GetOptionLabel(iIndex);
                                                ValueArray.SetElement(i, ElementValue);
                                        }
@@ -3374,8 +3374,8 @@ FX_BOOL Field::buttonGetCaption(IFXJS_Context* cc, const CJS_Parameters& params,
 
        int nface = 0;
        int iSize = params.size();
-       if ( iSize >= 1)
-               nface = (FX_INT32) params[0];
+       if (iSize >= 1)
+               nface = params[0].ToInt();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3410,8 +3410,8 @@ FX_BOOL Field::buttonGetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJ
 
        int nface = 0;
        int iSize = params.size();
-       if ( iSize >= 1)
-               nface = (FX_INT32) params[0];
+       if (iSize >= 1)
+               nface = params[0].ToInt();
        
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3519,15 +3519,14 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS
        if (!m_bCanSet) return FALSE;
 
        int iSize = params.size();
-       int nWidget = -1;
-       if ( iSize >= 1)
-               nWidget= (FX_INT32) params[0];
-       else
+       if (iSize < 1)
                return FALSE;
-       FX_BOOL bCheckit = TRUE;
-       if ( iSize >= 2)
-               bCheckit = params[1];
 
+       int nWidget = params[0].ToInt();
+
+       FX_BOOL bCheckit = TRUE;
+       if (iSize >= 2)
+               bCheckit = params[1].ToBool();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3535,9 +3534,9 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS
 
        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
        ASSERT(pFormField != NULL);
-       
+
        if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX && pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
-               return FALSE;   
+               return FALSE;
        if(nWidget <0 || nWidget >= pFormField->CountControls())
                return FALSE;
        if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)
@@ -3546,7 +3545,6 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS
                pFormField->CheckControl(nWidget, bCheckit, TRUE);
 
        UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE);
-
        return TRUE;
 }
 
@@ -3562,14 +3560,10 @@ FX_BOOL Field::defaultIsChecked(IFXJS_Context* cc, const CJS_Parameters& params,
        if (!m_bCanSet) return FALSE;
 
        int iSize = params.size();
-       int nWidget = -1;
-       if ( iSize >= 1)
-               nWidget= (FX_INT32) params[0];
-       else
+       if (iSize < 1)
                return FALSE;
-       //FX_BOOL bIsDefaultChecked = TRUE;
-       //if ( iSize >= 2)
-       //      bIsDefaultChecked =  params[1];
+
+       int nWidget = params[0].ToInt();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3665,16 +3659,15 @@ FX_BOOL Field::getArray(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
 FX_BOOL Field::getItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
 {
        ASSERT(m_pDocument != NULL);
+       int iSize = params.size();
 
        int nIdx = -1;
-       if (params.size() >=1)
-               nIdx = (FX_INT32) params[0];
+       if (iSize >= 1)
+               nIdx = params[0].ToInt();
+
        FX_BOOL bExport = TRUE;
-       int iSize = params.size();
-       if ( iSize >= 2)
-       {
-               bExport =(FX_BOOL) params[1];
-       }
+       if (iSize >= 2)
+               bExport = params[1].ToBool();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3720,8 +3713,8 @@ FX_BOOL Field::isBoxChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS
        ASSERT(m_pDocument != NULL);
 
        int nIndex = -1;
-       if (params.size() >=1)
-               nIndex = (FX_INT32) params[0];
+       if (params.size() >= 1)
+               nIndex = params[0].ToInt();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
@@ -3755,8 +3748,8 @@ FX_BOOL Field::isDefaultChecked(IFXJS_Context* cc, const CJS_Parameters& params,
        ASSERT(m_pDocument != NULL);
 
        int nIndex = -1;
-       if (params.size() >=1)
-               nIndex = (FX_INT32) params[0];
+       if (params.size() >= 1)
+               nIndex = params[0].ToInt();
 
        CFX_PtrArray FieldArray;
        GetFormFields(m_FieldName,FieldArray);
index 6743daa..be37489 100644 (file)
@@ -85,7 +85,7 @@ void CJS_Value::Attach(v8::Handle<v8::Value> pValue,FXJSVALUETYPE t)
 void CJS_Value::Attach(CJS_Value *pValue)
 {
        if (pValue)
-               Attach(pValue->ToJSValue(),pValue->GetType());
+               Attach(pValue->ToV8Value(), pValue->GetType());
 }
 
 void CJS_Value::Detach()
@@ -96,63 +96,53 @@ void CJS_Value::Detach()
 
 /* ---------------------------------------------------------------------------------------- */
 
-CJS_Value::operator int() const
+int CJS_Value::ToInt() const
 {
-
        return JS_ToInt32(m_pValue);
-
 }
 
-CJS_Value::operator bool() const
+bool CJS_Value::ToBool() const
 {
-
        return JS_ToBoolean(m_pValue);
-       
 }
 
-CJS_Value::operator double() const
+double CJS_Value::ToDouble() const
 {
-
        return JS_ToNumber(m_pValue);
-       
 }
 
-CJS_Value::operator float() const
+float CJS_Value::ToFloat() const
 {
-
-       return (float)JS_ToNumber(m_pValue);
-
+       return (float)ToDouble();
 }
 
-CJS_Value::operator CJS_Object *() const
+CJS_Object* CJS_Value::ToCJSObject() const
 {
-
        v8::Handle<v8::Object>  pObj = JS_ToObject(m_pValue);
        return (CJS_Object*)JS_GetPrivate(m_isolate, pObj);
 }
 
-CJS_Value::operator v8::Handle<v8::Object>() const
+v8::Handle<v8::Object> CJS_Value::ToV8Object() const
 {
        return JS_ToObject(m_pValue);
 }
 
-CJS_Value::operator CFX_WideString() const
+CFX_WideString CJS_Value::ToCFXWideString() const
 {
        return JS_ToString(m_pValue);
 }
 
-CJS_Value::operator CFX_ByteString() const
+CFX_ByteString CJS_Value::ToCFXByteString() const
 {
-       return CFX_ByteString::FromUnicode(operator CFX_WideString());
+       return CFX_ByteString::FromUnicode(ToCFXWideString());
 }
 
-v8::Handle<v8::Value> CJS_Value::ToJSValue()
+v8::Handle<v8::Value> CJS_Value::ToV8Value() const
 {
        return m_pValue;
 }
 
-
-CJS_Value::operator v8::Handle<v8::Array>() const
+v8::Handle<v8::Array>CJS_Value::ToV8Array() const
 {
        if (IsArrayObject())
                return v8::Handle<v8::Array>::Cast(JS_ToObject(m_pValue));
@@ -245,7 +235,7 @@ void CJS_Value::operator = (CJS_Date & date)
 
 void CJS_Value::operator = (CJS_Value value)
 {
-       m_pValue = value.ToJSValue();
+       m_pValue = value.ToV8Value();
 
        m_eType = value.m_eType;
 }
@@ -342,7 +332,7 @@ void CJS_PropValue::operator <<(int iValue)
 void CJS_PropValue::operator >>(int & iValue) const
 {
        ASSERT(m_bIsSetting);
-       iValue = CJS_Value::operator int();
+       iValue = CJS_Value::ToInt();
 }
 
 
@@ -355,8 +345,7 @@ void CJS_PropValue::operator <<(bool bValue)
 void CJS_PropValue::operator >>(bool& bValue) const
 {
        ASSERT(m_bIsSetting);
-       bValue = CJS_Value::operator bool();
-
+       bValue = CJS_Value::ToBool();
 }
 
 void CJS_PropValue::operator <<(double dValue)
@@ -368,7 +357,7 @@ void CJS_PropValue::operator <<(double dValue)
 void CJS_PropValue::operator >>(double& dValue) const
 {
        ASSERT(m_bIsSetting);
-       dValue = CJS_Value::operator double();
+       dValue = CJS_Value::ToDouble();
 }
 
 void CJS_PropValue::operator <<(CJS_Object* pObj)
@@ -380,7 +369,7 @@ void CJS_PropValue::operator <<(CJS_Object* pObj)
 void CJS_PropValue::operator >>(CJS_Object*& ppObj) const
 {
        ASSERT(m_bIsSetting);
-       ppObj = CJS_Value::operator CJS_Object *();
+       ppObj = CJS_Value::ToCJSObject();
 }
 
 void CJS_PropValue::operator <<(CJS_Document* pJsDoc)
@@ -392,7 +381,7 @@ void CJS_PropValue::operator <<(CJS_Document* pJsDoc)
 void CJS_PropValue::operator >>(CJS_Document*& ppJsDoc) const
 {
        ASSERT(m_bIsSetting);
-       ppJsDoc = static_cast<CJS_Document*>(CJS_Value::operator CJS_Object *());
+       ppJsDoc = static_cast<CJS_Document*>(CJS_Value::ToCJSObject());
 }
 
 void CJS_PropValue::operator<<(JSFXObject pObj)
@@ -404,7 +393,7 @@ void CJS_PropValue::operator<<(JSFXObject pObj)
 void CJS_PropValue::operator>>(JSFXObject &ppObj) const
 {
        ASSERT(m_bIsSetting);
-       ppObj = CJS_Value::operator JSFXObject ();
+       ppObj = CJS_Value::ToV8Object();
 }
 
 
@@ -426,7 +415,7 @@ void CJS_PropValue::operator <<(CFX_ByteString string)
 void CJS_PropValue::operator >>(CFX_ByteString &string) const
 {
        ASSERT(m_bIsSetting);
-       string = CJS_Value::operator CFX_ByteString();
+       string = CJS_Value::ToCFXByteString();
 }
 
 void CJS_PropValue::operator <<(FX_LPCWSTR c_string)
@@ -438,7 +427,7 @@ void CJS_PropValue::operator <<(FX_LPCWSTR c_string)
 void CJS_PropValue::operator >>(CFX_WideString &wide_string) const
 {
        ASSERT(m_bIsSetting);
-       wide_string = CJS_Value::operator CFX_WideString();
+       wide_string = CJS_Value::ToCFXWideString();
 }
 
 void CJS_PropValue::operator <<(CFX_WideString wide_string)
@@ -508,7 +497,7 @@ void CJS_Array::SetElement(unsigned index,CJS_Value value)
        if (m_pArray.IsEmpty())
                m_pArray = JS_NewArray(m_isolate);
 
-       JS_PutArrayElement(m_pArray,index,value.ToJSValue(),value.GetType());
+       JS_PutArrayElement(m_pArray, index, value.ToV8Value(), value.GetType());
 }
 
 int CJS_Array::GetLength()
index e3479f1..ff5b9a7 100644 (file)
@@ -430,7 +430,7 @@ CJS_Array CJS_PublicMethods::AF_MakeArrayFromList(v8::Isolate* isolate, CJS_Valu
                val.ConvertToArray(StrArray);
                return StrArray;
        }
-       CFX_WideString wsStr = val.operator CFX_WideString();
+       CFX_WideString wsStr = val.ToCFXWideString();
        CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr);
        const char * p = (const char *)t;
 
@@ -1071,12 +1071,12 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IFXJS_Context* cc, const CJS_Paramete
        
        if (strValue.IsEmpty()) return TRUE;
        
-       int iDec = params[0];
-       int iSepStyle = params[1];
-       int iNegStyle = params[2];
+       int iDec = params[0].ToInt();
+       int iSepStyle = params[1].ToInt();
+       int iNegStyle = params[2].ToInt();
        // params[3] is iCurrStyle, it's not used.
-       std::wstring wstrCurrency(params[4].operator CFX_WideString());
-       FX_BOOL bCurrencyPrepend = params[5];
+       std::wstring wstrCurrency(params[4].ToCFXWideString());
+       FX_BOOL bCurrencyPrepend = params[5].ToBool();
        
        if (iDec < 0) iDec = -iDec;
        
@@ -1268,7 +1268,7 @@ FX_BOOL CJS_PublicMethods::AFNumber_Keystroke(IFXJS_Context* cc, const CJS_Param
        
        if(params.size() < 2)
                return FALSE;
-       int iSepStyle = params[1];
+       int iSepStyle = params[1].ToInt();
        
        if (iSepStyle < 0 || iSepStyle > 3)
                iSepStyle = 0;
@@ -1406,30 +1406,20 @@ FX_BOOL CJS_PublicMethods::AFPercent_Format(IFXJS_Context* cc, const CJS_Paramet
        }
        if(!pEvent->m_pValue)
                return FALSE;
+
        CFX_WideString& Value = pEvent->Value();
-       
-//     HWND hMainFrame = NULL;
-//     
-//     CPDFSDK_FormFillApp *pApp = pContext->GetReaderApp();
-//     ASSERT(pApp);
-//     hMainFrame = pApp->GetMainFrameWnd();
-               
        CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
-       
        if (strValue.IsEmpty())
                return TRUE;
-       
-       int iDec = params[0];
-       int iSepStyle = params[1];
-       
-       //ASSERT(iDec > 0);
+
+       int iDec = params[0].ToInt();
        if (iDec < 0)
                iDec = -iDec;
-       
+
+       int iSepStyle = params[1].ToInt();
        if (iSepStyle < 0 || iSepStyle > 3)
                iSepStyle = 0;
-       
-       
+
        //////////////////////////////////////////////////////
        //for processing decimal places
        double dValue = atof(strValue);
@@ -1527,16 +1517,16 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc, const CJS_Paramete
        {
                sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
                return FALSE;
-       }       
+       }
        if(!pEvent->m_pValue)
                return FALSE;
-       CFX_WideString& val = pEvent->Value();
-       
-       CFX_WideString strValue = val;  
-       if (strValue.IsEmpty()) return TRUE;            
 
-       CFX_WideString sFormat = params[0].operator CFX_WideString();
+       CFX_WideString& val = pEvent->Value();
+       CFX_WideString strValue = val;
+       if (strValue.IsEmpty())
+               return TRUE;
 
+       CFX_WideString sFormat = params[0].ToCFXWideString();
        FX_BOOL bWrongFormat = FALSE;
        double dDate = 0.0f;
 
@@ -1558,9 +1548,8 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc, const CJS_Paramete
                Alert(pContext, swMsg);
                return FALSE;
        }
-       
-       val =  MakeFormatDate(dDate,sFormat);
 
+       val =  MakeFormatDate(dDate,sFormat);
        return TRUE;
 }
 
@@ -1636,17 +1625,17 @@ FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(IFXJS_Context* cc, const CJS_Param
        {
                sError = L"AFDate_KeystrokeEx's parameters' size r not correct";
                return FALSE;
-       }       
-       
+       }
+
        if (pEvent->WillCommit())
        {
                if(!pEvent->m_pValue)
                        return FALSE;
                CFX_WideString strValue = pEvent->Value();
-               if (strValue.IsEmpty()) return TRUE;
-
-               CFX_WideString sFormat = params[0].operator CFX_WideString();
+               if (strValue.IsEmpty())
+                       return TRUE;
 
+               CFX_WideString sFormat = params[0].ToCFXWideString();
                FX_BOOL bWrongFormat = FALSE;
                double dRet = MakeRegularDate(strValue,sFormat,bWrongFormat);
                if (bWrongFormat || JS_PortIsNan(dRet))
@@ -1674,7 +1663,7 @@ FX_BOOL CJS_PublicMethods::AFDate_Format(IFXJS_Context* cc, const CJS_Parameters
                return FALSE;
        }
 
-       int iIndex = params[0];
+       int iIndex = params[0].ToInt();
        FX_LPCWSTR cFormats[] =  {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy",
                L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy",
                L"m/d/yy h:MM tt", L"m/d/yy HH:MM" };
@@ -1705,7 +1694,7 @@ FX_BOOL CJS_PublicMethods::AFDate_Keystroke(IFXJS_Context* cc, const CJS_Paramet
                return FALSE;
        }
 
-       int iIndex = params[0];
+       int iIndex = params[0].ToInt();
        FX_LPCWSTR cFormats[] =  {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy",
                L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy",
                L"m/d/yy h:MM tt", L"m/d/yy HH:MM" };
@@ -1735,7 +1724,7 @@ FX_BOOL CJS_PublicMethods::AFTime_Format(IFXJS_Context* cc, const CJS_Parameters
                return FALSE;
        }
 
-       int iIndex = params[0];
+       int iIndex = params[0].ToInt();
        FX_LPCWSTR cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"};
 
        ASSERT(iIndex<FX_ArraySize(cFormats));
@@ -1761,7 +1750,7 @@ FX_BOOL CJS_PublicMethods::AFTime_Keystroke(IFXJS_Context* cc, const CJS_Paramet
                return FALSE;
        }
 
-       int iIndex = params[0];
+       int iIndex = params[0].ToInt();
        FX_LPCWSTR cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"};
 
        ASSERT(iIndex<FX_ArraySize(cFormats));
@@ -1799,7 +1788,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Format(IFXJS_Context* cc, const CJS_Paramet
        }
 
        std::string cFormat;
-       int iIndex = params[0];
+       int iIndex = params[0].ToInt();
 
        CJS_EventHandler* pEvent = pContext->GetEventHandler();
        ASSERT(pEvent != NULL);
@@ -1858,11 +1847,12 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa
                return FALSE;
        CFX_WideString& valEvent = pEvent->Value();
 
-       CFX_WideString wstrMask = params[0].operator CFX_WideString();
-       if (wstrMask.IsEmpty()) return TRUE;
-       
+       CFX_WideString wstrMask = params[0].ToCFXWideString();
+       if (wstrMask.IsEmpty())
+               return TRUE;
+
        std::wstring wstrValue(valEvent);
-       
+
        if (pEvent->WillCommit())
        {
                if (wstrValue.empty())
@@ -1871,7 +1861,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa
                for (std::wstring::iterator it = wstrValue.begin(); it != wstrValue.end(); it++)
                {
                        wchar_t w_Value = *it;
-            if (!maskSatisfied(w_Value,wstrMask[iIndexMask]))
+                       if (!maskSatisfied(w_Value,wstrMask[iIndexMask]))
                                break;
                        iIndexMask++;
                }
@@ -1884,31 +1874,27 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa
                return TRUE;
        }
 
-       
        CFX_WideString &wideChange = pEvent->Change();
        std::wstring wChange(wideChange);
-       
        if (wChange.empty())
                return TRUE;
-    int iIndexMask = pEvent->SelStart();
-       //iIndexMask++;
-       
-       
+
+       int iIndexMask = pEvent->SelStart();
+
        if (wstrValue.length() - (pEvent->SelEnd()-pEvent->SelStart()) + wChange.length() > (FX_DWORD)wstrMask.GetLength())
        {
                Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG));
                pEvent->Rc() = FALSE;
                return TRUE;
        }
-       
-       
+
        if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty()))
        {
                Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG));
                pEvent->Rc() = FALSE;
                return TRUE;
        }
-       
+
        for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++)
        {
                if (iIndexMask >= wstrMask.GetLength())
@@ -1920,21 +1906,18 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa
                wchar_t w_Mask = wstrMask[iIndexMask];
                if (!isReservedMaskChar(w_Mask))
                {
-                       //wChange.insert(it,w_Mask);                            
                        *it = w_Mask;
                }
                wchar_t w_Change = *it;
-               
-        if (!maskSatisfied(w_Change,w_Mask))
+               if (!maskSatisfied(w_Change,w_Mask))
                {
                        pEvent->Rc() = FALSE;
                        return TRUE;
                }
                iIndexMask++;
        }
-       
-       wideChange = wChange.c_str();   
-       
+
+       wideChange = wChange.c_str();
        return TRUE;
 }
 
@@ -1956,7 +1939,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Keystroke(IFXJS_Context* cc, const CJS_Para
        }
 
        std::string cFormat;
-       int iIndex = (int)params[0];    
+       int iIndex = params[0].ToInt();
 
        if(!pEvent->m_pValue)
                return FALSE;
@@ -2050,8 +2033,8 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters
                return FALSE;
        }
 
-       CFX_WideString sValue = params[0].operator CFX_WideString();
-       CFX_WideString sFormat = params[1].operator CFX_WideString();
+       CFX_WideString sValue = params[0].ToCFXWideString();
+       CFX_WideString sFormat = params[1].ToCFXWideString();
 
        FX_BOOL bWrongFormat = FALSE;
        double dDate = MakeRegularDate(sValue,sFormat,bWrongFormat);
@@ -2063,9 +2046,8 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters
                Alert((CJS_Context *)cc, swMsg);
                return FALSE;
        }
-       
-       vRet = dDate;
 
+       vRet = dDate;
        return TRUE;
 }
 
@@ -2080,7 +2062,7 @@ FX_BOOL CJS_PublicMethods::AFSimple(IFXJS_Context* cc, const CJS_Parameters& par
                return FALSE;
        }
 
-       vRet = (double)AF_Simple(params[0].operator CFX_WideString(), (double)params[1], (double)params[2]);
+       vRet = (double)AF_Simple(params[0].ToCFXWideString(), params[1].ToDouble(), params[2].ToDouble());
        return TRUE;
 }
 
@@ -2094,7 +2076,7 @@ FX_BOOL CJS_PublicMethods::AFMakeNumber(IFXJS_Context* cc, const CJS_Parameters&
                sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
                return FALSE;
        }
-    vRet = ParseStringToNumber(params[0].operator CFX_WideString());
+       vRet = ParseStringToNumber(params[0].ToCFXWideString());
        return TRUE;
 }
 
@@ -2118,7 +2100,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param
                sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
                return FALSE;
        }
-       
+
        CPDFSDK_Document* pReaderDoc = pContext->GetReaderDocument();
     ASSERT(pReaderDoc != NULL);
 
@@ -2129,7 +2111,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param
        ASSERT(pInterForm != NULL);
 
        double dValue;
-       CFX_WideString sFunction = params[0].operator CFX_WideString();
+       CFX_WideString sFunction = params[0].ToCFXWideString();
        if (wcscmp(sFunction, L"PRD") == 0)
        dValue = 1.0;
        else
@@ -2143,7 +2125,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param
        {
                CJS_Value jsValue(isolate);
                FieldNameArray.GetElement(i,jsValue);
-        CFX_WideString wsFieldName = jsValue.operator CFX_WideString();
+               CFX_WideString wsFieldName = jsValue.ToCFXWideString();
 
         for (int j=0,jsz=pInterForm->CountFields(wsFieldName); j<jsz; j++)
                {
@@ -2214,7 +2196,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param
        dValue = (double)floor(dValue * FXSYS_pow((double)10,(double)6) + 0.49) / FXSYS_pow((double)10,(double)6);
        CJS_Value jsValue(isolate,dValue);
        if((CJS_EventHandler*)pContext->GetEventHandler()->m_pValue)
-               ((CJS_EventHandler*)pContext->GetEventHandler())->Value() = jsValue;
+               ((CJS_EventHandler*)pContext->GetEventHandler())->Value() = jsValue.ToCFXWideString();
 
        return TRUE;
 }
@@ -2240,28 +2222,30 @@ FX_BOOL CJS_PublicMethods::AFRange_Validate(IFXJS_Context* cc, const CJS_Paramet
        if (pEvent->Value().IsEmpty() )
                return TRUE;
        double dEentValue = atof(CFX_ByteString::FromUnicode(pEvent->Value()));
-       FX_BOOL bGreaterThan, bLessThan;
-       double  dGreaterThan, dLessThan;
-    bGreaterThan = (FX_BOOL)params[0];
+       FX_BOOL bGreaterThan = params[0].ToBool();
+       double dGreaterThan = params[1].ToDouble();
+       FX_BOOL bLessThan = params[2].ToBool();
+       double dLessThan = params[3].ToDouble();
        CFX_WideString swMsg;
-       dGreaterThan = (double)params[1];
-       bLessThan = (FX_BOOL)params[2];
-       dLessThan = (double)params[3];
 
        if (bGreaterThan && bLessThan)
        {
                if (dEentValue < dGreaterThan || dEentValue > dLessThan)
-                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1),(FX_LPCWSTR)params[1].operator CFX_WideString(), (FX_LPCWSTR)params[3].operator CFX_WideString());
+                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1),
+                                                params[1].ToCFXWideString().c_str(),
+                                                params[3].ToCFXWideString().c_str());
        }
        else if (bGreaterThan)
        {
                if (dEentValue < dGreaterThan)
-                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2), (FX_LPCWSTR)params[1].operator CFX_WideString());
+                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2),
+                                                params[1].ToCFXWideString().c_str());
        }
        else if (bLessThan)
        {
                if (dEentValue > dLessThan)
-                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3), (FX_LPCWSTR)params[3].operator CFX_WideString());
+                       swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3),
+                                                params[3].ToCFXWideString().c_str());
        }
 
        if (!swMsg.IsEmpty())
@@ -2286,7 +2270,7 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(IFXJS_Context* cc, const CJS_Parameters
 
        CJS_Array nums(isolate);
 
-       CFX_WideString str = params[0].operator CFX_WideString();
+       CFX_WideString str = params[0].ToCFXWideString();
        CFX_WideString sPart;
 
        if (str.GetAt(0) == L'.' || str.GetAt(0) == L',')
index e17857b..57d9cfe 100644 (file)
@@ -325,19 +325,19 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
        {
                if (params[0].GetType() == VT_object)
                {
-                       JSObject pObj = params[0];
+                       JSObject pObj = params[0].ToV8Object();
                        {
                                v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
-                               swMsg = CJS_Value(isolate,pValue,VT_unknown).operator CFX_WideString();
+                               swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
 
-                               pValue = JS_GetObjectElement(isolate,pObj,L"cTitle");
-                               swTitle = CJS_Value(isolate, pValue,VT_unknown).operator CFX_WideString();
+                               pValue = JS_GetObjectElement(isolate, pObj, L"cTitle");
+                               swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
 
-                               pValue = JS_GetObjectElement(isolate,pObj,L"nIcon");
-                               iIcon = (int)CJS_Value(isolate,pValue,VT_unknown);
+                               pValue = JS_GetObjectElement(isolate, pObj, L"nIcon");
+                               iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt();
 
-                               pValue = JS_GetObjectElement(isolate,pObj,L"nType");
-                               iType = (int)CJS_Value(isolate,pValue,VT_unknown);
+                               pValue = JS_GetObjectElement(isolate, pObj, L"nType");
+                               iType = CJS_Value(isolate, pValue, VT_unknown).ToInt();
                        }
 
                        if (swMsg == L"")
@@ -355,22 +355,12 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
                                        for(int i = 0; i < iLenth; i++)
                                        {
                                                carray.GetElement(i, *pValue);
-                                               swMsg += (*pValue).operator CFX_WideString();
+                                               swMsg += (*pValue).ToCFXWideString();
                                                if (i < iLenth - 1)
                                                        swMsg += L",  ";
                                        }
 
                                        if(pValue) delete pValue;
-//                                     if ((iLenth > 1) && pValue)
-//                                     {
-//                                             delete[]pValue;
-//                                             pValue = NULL;
-//                                     }
-//                                     else if ((iLenth == 1) && pValue)
-//                                     {
-//                                             delete pValue;
-//                                             pValue = NULL;
-//                                     }
                                }
                        }
 
@@ -379,7 +369,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
                }
                else if (params[0].GetType() == VT_boolean)
                {
-                       FX_BOOL bGet = (FX_BOOL)params[0];
+                       FX_BOOL bGet = params[0].ToBool();
                        if (bGet)
                                swMsg = L"true";
                        else
@@ -389,7 +379,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
                }
                else
                {
-                       swMsg = params[0];
+                       swMsg = params[0].ToCFXWideString();
                        swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
                }
        }
@@ -397,7 +387,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
        {
                if (params[0].GetType() == VT_boolean)
                {
-                       FX_BOOL bGet = (FX_BOOL)params[0];
+                       FX_BOOL bGet = params[0].ToBool();
                        if (bGet)
                                swMsg = L"true";
                        else
@@ -405,18 +395,18 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v
                }
                else
                {
-                       swMsg = params[0];
+                       swMsg = params[0].ToCFXWideString();
                }
                swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
 
                for(int i = 1;i<iSize;i++)
                {
                        if (i == 1)
-                               iIcon = int(params[i]);
+                               iIcon = params[i].ToInt();
                        if (i == 2)
-                               iType = int(params[i]);
+                               iType = params[i].ToInt();
                        if (i == 3)
-                               swTitle = params[i];
+                               swTitle = params[i].ToCFXWideString();
                }
        }
 
@@ -440,15 +430,12 @@ FX_BOOL app::beep(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vR
                CJS_Context* pContext = (CJS_Context*)cc;
                CJS_Runtime* pRuntime = pContext->GetJSRuntime();
                CPDFDoc_Environment * pEnv = pRuntime->GetReaderApp();
-               pEnv->JS_appBeep((int)params[0]);
-
+               pEnv->JS_appBeep(params[0].ToInt());
                return TRUE;
        }
-       else
-       {
-               sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
-               return FALSE;
-       }
+
+       sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
+       return FALSE;
 }
 
 FX_BOOL app::findComponent(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
@@ -479,14 +466,14 @@ FX_BOOL app::setInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va
        CJS_Runtime* pRuntime = pContext->GetJSRuntime();
        ASSERT(pRuntime != NULL);
 
-       CFX_WideString script = params.size() > 0 ?  (FX_LPCWSTR)(params[0].operator CFX_WideString()) : L"";
+       CFX_WideString script = params.size() > 0 ?  (FX_LPCWSTR)(params[0].ToCFXWideString()) : L"";
        if (script.IsEmpty())
        {
                sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE);
                return TRUE;
        }
 
-       FX_DWORD dwInterval = params.size() > 1 ? (int)params[1] : 1000;
+       FX_DWORD dwInterval = params.size() > 1 ? params[1].ToInt() : 1000;
 
        CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
        ASSERT(pApp);
@@ -528,17 +515,18 @@ FX_BOOL app::setTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
        CJS_Runtime* pRuntime = pContext->GetJSRuntime();
        ASSERT(pRuntime != NULL);
 
-       CFX_WideString script = params.size() > 0 ?  (FX_LPCWSTR)(params[0].operator CFX_WideString()) : L"";
+       CFX_WideString script = params.size() > 0 ?  (FX_LPCWSTR)(params[0].ToCFXWideString()) : L"";
        if (script.IsEmpty())
        {
                sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE);
                return TRUE;
        }
 
-       FX_DWORD dwTimeOut = params.size() > 1 ? (int)params[1] : 1000;
+       FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000;
 
        CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
        ASSERT(pApp);
+
        CJS_Timer* pTimer = new CJS_Timer(this, pApp);
        m_aTimer.Add(pTimer);
 
@@ -546,12 +534,9 @@ FX_BOOL app::setTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
        pTimer->SetRuntime(pRuntime);
        pTimer->SetJScript(script);
        pTimer->SetTimeOut(dwTimeOut);
-//     pTimer->SetStartTime(GetTickCount());
-//     pTimer->SetJSTimer(1000);
        pTimer->SetJSTimer(dwTimeOut);
 
        JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj"));
-//     ASSERT(pRetObj != NULL);
 
        CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(),pRetObj);
        ASSERT(pJS_TimerObj != NULL);
@@ -581,11 +566,11 @@ FX_BOOL app::clearTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V
 
        if (params[0].GetType() == VT_fxobject)
        {
-               JSFXObject pObj = (JSFXObject)params[0];
+               JSFXObject pObj = params[0].ToV8Object();
                {
                        if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
                        {
-                               if (CJS_Object* pJSObj = (CJS_Object*)params[0])
+                               if (CJS_Object* pJSObj = params[0].ToCJSObject())
                                {
                                        if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject())
                                        {
@@ -629,11 +614,11 @@ FX_BOOL app::clearInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_
 
        if (params[0].GetType() == VT_fxobject)
        {
-               JSFXObject pObj = (JSFXObject)params[0];
+               JSFXObject pObj = params[0].ToV8Object();
                {
                        if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
                        {
-                               if (CJS_Object* pJSObj = (CJS_Object*)params[0])
+                               if (CJS_Object* pJSObj = params[0].ToCJSObject())
                                {
                                        if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject())
                                        {
@@ -717,8 +702,6 @@ FX_BOOL app::goForward(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu
 FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
 {
        CJS_Context* pContext = (CJS_Context*)cc;
-       ASSERT(pContext != NULL);
-
        v8::Isolate* isolate = GetIsolate(cc);
 
        FX_BOOL bUI = TRUE;
@@ -727,42 +710,48 @@ FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
        CFX_WideString cBcc = L"";
        CFX_WideString cSubject = L"";
        CFX_WideString cMsg = L"";
-       if(params.size() < 2)
-               return FALSE;
-
-       bUI = params.size()>=1?(int)params[0]:TRUE;
-       cTo = params.size()>=2?(const wchar_t*)(FX_LPCWSTR)params[1].operator CFX_WideString():L"";
-       cCc = params.size()>=3?(const wchar_t*)(FX_LPCWSTR)params[2].operator CFX_WideString():L"";
-       cBcc = params.size()>=4?(const wchar_t*)(FX_LPCWSTR)params[3].operator CFX_WideString():L"";
-       cSubject = params.size()>=5?(const wchar_t*)(FX_LPCWSTR)params[4].operator CFX_WideString():L"";
-       cMsg = params.size()>=6?(const wchar_t*)(FX_LPCWSTR)params[5].operator CFX_WideString():L"";
 
+       if (params.size() < 1)
+               return FALSE;
 
        if (params[0].GetType() == VT_object)
        {
-               JSObject pObj = (JSObject)params[0];
+               JSObject pObj = params[0].ToV8Object();
 
-               v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI");
-                       bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
+               v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI");
+               bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
 
                pValue = JS_GetObjectElement(isolate, pObj, L"cTo");
-                       cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
-
-               pValue = JS_GetObjectElement(isolate,pObj, L"cCc");
-                       cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
-
-               pValue = JS_GetObjectElement(isolate,pObj, L"cBcc");
-                       cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
-
-               pValue = JS_GetObjectElement(isolate,pObj, L"cSubject");
-                       cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
-
-               pValue = JS_GetObjectElement(isolate,pObj, L"cMsg");
-                       cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+               pValue = JS_GetObjectElement(isolate, pObj, L"cCc");
+               cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+               pValue = JS_GetObjectElement(isolate, pObj, L"cBcc");
+               cBcc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+               pValue = JS_GetObjectElement(isolate, pObj, L"cSubject");
+               cSubject = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+               pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
+               cMsg = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+       } else {
+               if (params.size() < 2)
+                       return FALSE;
+
+               bUI = params[0].ToBool();
+               cTo = params[1].ToCFXWideString();
+
+               if (params.size() >= 3)
+                       cCc = params[2].ToCFXWideString();
+               if (params.size() >= 4)
+                       cBcc = params[3].ToCFXWideString();
+               if (params.size() >= 5)
+                       cSubject = params[4].ToCFXWideString();
+               if (params.size() >= 6)
+                       cMsg = params[5].ToCFXWideString();
        }
 
-
-
        CJS_Runtime* pRuntime = pContext->GetJSRuntime();
        ASSERT(pRuntime != NULL);
 
@@ -771,10 +760,8 @@ FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
 
        pRuntime->BeginBlock();
        pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
-       ///////////////////////////////////////////////////////////////////////////////////////////////
        pRuntime->EndBlock();
 
-       //return bRet;
        return FALSE;
 }
 
@@ -864,40 +851,40 @@ FX_BOOL app::response(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value
        int iLength = params.size();
        if (iLength > 0 && params[0].GetType() == VT_object)
        {
-               JSObject pObj = (JSObject )params[0];
+               JSObject pObj = params[0].ToV8Object();
                v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj,L"cQuestion");
-               swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj,L"cTitle");
-               swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj,L"cDefault");
-               swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj,L"cLabel");
-               swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+               swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
                pValue = JS_GetObjectElement(isolate,pObj,L"bPassword");
-               bPassWord = (bool)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
+               bPassWord = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToBool();
        }
        else
        {
                switch(iLength)
                {
                case 5:
-                       swLabel = params[4];
+                       swLabel = params[4].ToCFXWideString();
                        // FALLTHROUGH
                case 4:
-                       bPassWord = params[3];
+                       bPassWord = params[3].ToBool();
                        // FALLTHROUGH
                case 3:
-                       swDefault = params[2];
+                       swDefault = params[2].ToCFXWideString();
                        // FALLTHROUGH
                case 2:
-                       swTitle = params[1];
+                       swTitle = params[1].ToCFXWideString();
                        // FALLTHROUGH
                case 1:
-                       swQuestion = params[0];
+                       swQuestion = params[0].ToCFXWideString();
                        // FALLTHROUGH
                default:
                        break;
index a338624..ddf6ed4 100644 (file)
@@ -104,9 +104,8 @@ void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color)
        if (nArrayLen < 1) return;
 
        CJS_Value value(array.GetIsolate());
-       CFX_ByteString sSpace;
        array.GetElement(0, value);
-       sSpace = value;
+       CFX_ByteString sSpace = value.ToCFXByteString();
 
        double d1 = 0;
        double d2 = 0;
@@ -116,25 +115,25 @@ void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color)
        if (nArrayLen > 1)
        {
                array.GetElement(1, value);
-               d1 = value;
+               d1 = value.ToDouble();
        }
 
        if (nArrayLen > 2)
        {
                array.GetElement(2, value);
-               d2 = value;
+               d2 = value.ToDouble();
        }
 
        if (nArrayLen > 3)
        {
                array.GetElement(3, value);
-               d3 = value;
+               d3 = value.ToDouble();
        }
 
        if (nArrayLen > 4)
        {
                array.GetElement(4, value);
-               d4 = value;
+               d4 = value.ToDouble();
        }
 
        if (sSpace == "T")
@@ -199,10 +198,9 @@ FX_BOOL color::convert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu
        CPWL_Color crSource;
        ConvertArrayToPWLColor(aSource, crSource);
 
-       CFX_ByteString sDestSpace = params[1];
-
+       CFX_ByteString sDestSpace = params[1].ToCFXByteString();
        int nColorType = COLORTYPE_TRANSPARENT;
-       
+
        if (sDestSpace == "T")
        {
                nColorType = COLORTYPE_TRANSPARENT;
index 620b43e..fb57e74 100644 (file)
@@ -352,7 +352,7 @@ FX_BOOL event::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro
        CFX_WideString & val = pEvent->Value();
        if (vp.IsSetting())
        {
-               val = vp;
+               vp >> val;
        }
        else
        {
index 4ed0d66..6b5d5e2 100644 (file)
@@ -174,7 +174,7 @@ FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc, FX_LPCWSTR propname, CJS
                        {
                                bool bData;
                                vp >> bData;
-                               return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, (bool)vp, "", v8::Handle<v8::Object>(), FALSE);
+                               return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, bData, "", v8::Handle<v8::Object>(), FALSE);
                        }
                case VT_string:
                        {
@@ -184,20 +184,9 @@ FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc, FX_LPCWSTR propname, CJS
                        }
                case VT_object:
                        {
-                               JSObject pData = (JSObject)vp;
+                               JSObject pData;
+                               vp >> pData;
                                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "", pData, FALSE);
-//                             else
-//                             {
-//                                     if (vp.IsArrayObject())
-//                                     {
-//                                             CJS_Array array;
-//                                             vp.ConvertToArray(array);
-//                                             return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "", 
-//                                                     (Dobject*)(Darray*)array, FALSE);
-//                                     }
-//                                     else
-//                                             return FALSE;
-//                             }
                        }
                case VT_null:
                        {
@@ -278,14 +267,14 @@ FX_BOOL global_alternate::setPersistent(IFXJS_Context* cc, const CJS_Parameters&
                return FALSE;
        }
 
-       CFX_ByteString sName = params[0];
+       CFX_ByteString sName = params[0].ToCFXByteString();
 
        js_global_data* pData = NULL;
        if (m_mapGlobal.Lookup(sName, (FX_LPVOID&)pData))
        {
                if (pData && !pData->bDeleted)
                {
-                       pData->bPersistent = (bool)params[1];
+                       pData->bPersistent = params[1].ToBool();
                        return TRUE;
                }
        }
@@ -434,7 +423,7 @@ void global_alternate::ObjectToArray(v8::Handle<v8::Object> pObj, CJS_GlobalVari
                        break;
                case VT_string:
                        {
-                               CFX_ByteString sValue = CJS_Value(isolate, v, VT_string);
+                               CFX_ByteString sValue = CJS_Value(isolate, v, VT_string).ToCFXByteString();
                                CJS_KeyValue* pObjElement = new CJS_KeyValue;
                                pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
                                pObjElement->sKey = sKey;
index 0ac98dd..6898d0c 100644 (file)
@@ -142,7 +142,7 @@ FX_BOOL util::printf(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
        int iSize = params.size();
        if (iSize < 1)
                return FALSE;
-       std::wstring  c_ConvChar((const wchar_t*)(FX_LPCWSTR)params[0].operator CFX_WideString());
+       std::wstring c_ConvChar(params[0].ToCFXWideString().c_str());
        std::vector<std::wstring> c_strConvers;
        int iOffset = 0;
        int iOffend = 0;
@@ -182,13 +182,13 @@ FX_BOOL util::printf(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
                switch (ParstDataType(&c_strFormat))
                {
                        case UTIL_INT:
-                               strSegment.Format(c_strFormat.c_str(),(int)params[iIndex]);
+                               strSegment.Format(c_strFormat.c_str(), params[iIndex].ToInt());
                                break;
                        case UTIL_DOUBLE:
-                               strSegment.Format(c_strFormat.c_str(),(double)params[iIndex]);
+                               strSegment.Format(c_strFormat.c_str(), params[iIndex].ToDouble());
                                break;
                        case UTIL_STRING:
-                               strSegment.Format(c_strFormat.c_str(),(FX_LPCWSTR)params[iIndex].operator CFX_WideString());
+                               strSegment.Format(c_strFormat.c_str(), params[iIndex].ToCFXWideString().c_str());
                                break;
                        default:
                                strSegment.Format(L"%S", c_strFormat.c_str());
@@ -229,8 +229,7 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
 
        if (p1.GetType() == VT_number)
        {
-               int nFormat = p1;
-
+               int nFormat = p1.ToInt();
                CFX_WideString swResult;
 
                switch (nFormat)
@@ -271,13 +270,12 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
        }
        else if (p1.GetType() == VT_string)
        {
-               std::basic_string<wchar_t> cFormat = (FX_LPCWSTR)p1.operator CFX_WideString();          
+               std::basic_string<wchar_t> cFormat = p1.ToCFXWideString().c_str();
 
                bool bXFAPicture = false;
                if (iSize > 2)
                {
-                       //CJS_Value value;
-                       bXFAPicture = params[2];
+                       bXFAPicture = params[2].ToBool();
                }
 
                if (bXFAPicture)
@@ -467,8 +465,8 @@ FX_BOOL util::printx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
        int iSize = params.size();
        if (iSize<2)
                return FALSE;
-       CFX_WideString sFormat = params[0].operator CFX_WideString();
-       CFX_WideString sSource = params[1].operator CFX_WideString();
+       CFX_WideString sFormat = params[0].ToCFXWideString();
+       CFX_WideString sSource = params[1].ToCFXWideString();
        std::string cFormat = CFX_ByteString::FromUnicode(sFormat).c_str();
        std::string cSource = CFX_ByteString::FromUnicode(sSource).c_str();
        std::string cDest;
@@ -582,9 +580,9 @@ FX_BOOL util::scand(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
        int iSize = params.size();
        if (iSize < 2)
                return FALSE;
-       CFX_WideString sFormat = params[0].operator CFX_WideString();
-       CFX_WideString sDate = params[1].operator CFX_WideString();
 
+       CFX_WideString sFormat = params[0].ToCFXWideString();
+       CFX_WideString sDate = params[1].ToCFXWideString();
        double dDate = JS_GetDateTime();
        if (sDate.GetLength() > 0)
        {
@@ -638,7 +636,7 @@ FX_BOOL util::byteToChar(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va
        int iSize = params.size();
        if (iSize == 0)
                return FALSE;
-       int nByte = (int)params[0];
+       int nByte = params[0].ToInt();
        unsigned char cByte = (unsigned char)nByte;
        CFX_WideString csValue;
        csValue.Format(L"%c", cByte);