namespace WrtDeviceApis {
namespace CommonsJavaScript {
-
Converter::Converter(JSContextRef context) : m_context(context)
-{
-}
+{}
Converter::~Converter()
-{
-}
+{}
JSObjectRef Converter::toJSObjectRef(const JSValueRef& arg)
{
unsigned long Converter::toULong(const JSValueRef& arg)
{
- return static_cast<unsigned long>(toLong(arg));
+ double tmp = toNumber_(arg);
+ return (isNan(tmp) ? 0 : static_cast<unsigned long>(tmp));
}
std::size_t Converter::toSizeT(const JSValueRef& arg)
{
return toString_(arg);
}
-
+#ifndef __x86_64__
std::string Converter::toString(std::size_t arg)
{
return toString_(arg);
}
-
+#endif
std::string Converter::toString(const JSValueRef& arg)
{
return toString_(arg);
{
if (!JSValueIsString(m_context, arg) &&
!JSValueIsNumber(m_context, arg) &&
- !JSValueIsBoolean(m_context, arg)) {
+ !JSValueIsBoolean(m_context, arg))
+ {
ThrowMsg(ConversionException,
"Argument is not convertable to JS String.");
}
return toVectorOfT_(arg, &Converter::toString);
}
-std::vector<time_t> Converter::toVectorOfTimeT(const JSValueRef& arg) {
+std::vector<time_t> Converter::toVectorOfTimeT(const JSValueRef& arg)
+{
return toVectorOfT_(arg, &Converter::toDateTimeT);
}
return JSValueMakeNumber(m_context, arg);
}
-JSValueRef Converter::toJSValueRefLong(const long arg) {
+JSValueRef Converter::toJSValueRefLong(const long arg)
+{
return JSValueMakeNumber(m_context, arg);
}
JSValueRef Converter::toJSValueRef(const time_t arg)
{
- struct tm *tminfo = localtime(&arg);
- return toJSValueRef(*tminfo);
+ struct tm tminfo;
+ memset(&tminfo,0,sizeof(tminfo));
+ localtime_r(&arg, &tminfo);
+ return toJSValueRef(tminfo);
}
JSValueRef Converter::toJSValueRef(const std::vector<std::string>& arg)
return toJSValueRef(std::string(arg));
}
-JSValueRef Converter::toJSValueRef(const std::vector<int>& arg) {
+JSValueRef Converter::toJSValueRef(const std::vector<int>& arg)
+{
return toJSValueRef_(arg);
}
-JSValueRef Converter::toJSValueRef(const std::vector<time_t>& arg) {
+JSValueRef Converter::toJSValueRef(const std::vector<time_t>& arg)
+{
return toJSValueRef_(arg);
}
NOT_IEEE754_REPRESENTATION);
return (value != value);
}
-
} // CommonsJavaScript
} // WrtDeviceApis