/* PRBool getProperty (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in JSVal id, in JSValPtr vp); */ NS_IMETHODIMP calDateTime::GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj_, jsval id, jsval * vp, PRBool *_retval) { NS_ENSURE_ARG_POINTER(vp); NS_ENSURE_ARG_POINTER(_retval); if (JSVAL_IS_STRING(id)) { nsDependentString const jsid( reinterpret_cast<PRUnichar const*>( JS_GetStringChars(JSVAL_TO_STRING(id))), JS_GetStringLength(JSVAL_TO_STRING(id))); if (jsid.EqualsLiteral("jsDate")) { PRTime tmp, thousand; jsdouble msec; LL_I2L(thousand, 1000); LL_DIV(tmp, mNativeTime, thousand); LL_L2D(msec, tmp); JSObject *obj; PRBool b; if (NS_SUCCEEDED(mTimezone->GetIsFloating(&b)) && b) obj = js_NewDateObject(cx, mYear, mMonth, mDay, mHour, mMinute, mSecond); else obj = js_NewDateObjectMsec(cx, msec); *vp = OBJECT_TO_JSVAL(obj); *_retval = PR_TRUE; return NS_SUCCESS_I_DID_SOMETHING; } } *_retval = PR_TRUE; return NS_OK; }
/* bool getProperty (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsid id, in JSValPtr vp); */ NS_IMETHODIMP calDateTime::GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj_, jsid id, jsval * vp, bool *_retval) { NS_ENSURE_ARG_POINTER(vp); NS_ENSURE_ARG_POINTER(_retval); if (JSID_IS_STRING(id)) { size_t length; JSString *idString = JSID_TO_STRING(id); const jschar *str = JS_GetStringCharsAndLength(cx, idString, &length); nsDependentString const val(reinterpret_cast<PRUnichar const*>(str), length); if (val.EqualsLiteral("jsDate")) { PRTime tmp, thousand; jsdouble msec; LL_I2L(thousand, 1000); LL_DIV(tmp, mNativeTime, thousand); LL_L2D(msec, tmp); ensureTimezone(); JSObject *obj; bool b; if (NS_SUCCEEDED(mTimezone->GetIsFloating(&b)) && b) { obj = js_NewDateObject(cx, mYear, mMonth, mDay, mHour, mMinute, mSecond); } else { obj = js_NewDateObjectMsec(cx, msec); } *vp = OBJECT_TO_JSVAL(obj); *_retval = PR_TRUE; return NS_SUCCESS_I_DID_SOMETHING; } } *_retval = PR_TRUE; return NS_OK; }