本文整理汇总了C++中js::HandleValue::isNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ HandleValue::isNumber方法的具体用法?C++ HandleValue::isNumber怎么用?C++ HandleValue::isNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类js::HandleValue
的用法示例。
在下文中一共展示了HandleValue::isNumber方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rq
template<> bool ScriptInterface::FromJSVal<std::wstring>(JSContext* cx, JS::HandleValue v, std::wstring& out)
{
JSAutoRequest rq(cx);
WARN_IF_NOT(v.isString() || v.isNumber(), v); // allow implicit number conversions
JS::RootedString str(cx, JS::ToString(cx, v));
if (!str)
FAIL("Argument must be convertible to a string");
if (JS_StringHasLatin1Chars(str))
{
size_t length;
JS::AutoCheckCannotGC nogc;
const JS::Latin1Char* ch = JS_GetLatin1StringCharsAndLength(cx, nogc, str, &length);
if (!ch)
FAIL("JS_GetLatin1StringCharsAndLength failed");
out.assign(ch, ch + length);
}
else
{
size_t length;
JS::AutoCheckCannotGC nogc;
const char16_t* ch = JS_GetTwoByteStringCharsAndLength(cx, nogc, str, &length);
if (!ch)
FAIL("JS_GetTwoByteStringsCharsAndLength failed"); // out of memory
out.assign(ch, ch + length);
}
return true;
}
示例2: js_to_number
bool js_to_number(JSContext *cx, JS::HandleValue v, double *dp) {
if (v.isNumber()) {
*dp = v.toNumber();
return true;
} else {
*dp = 0;
return false;
}
}
示例3: jsval_to_std_string
bool jsval_to_std_string(JSContext *cx, JS::HandleValue v, std::string* ret) {
if(v.isString() || v.isNumber())
{
JSString *tmp = JS::ToString(cx, v);
JSB_PRECONDITION3(tmp, cx, false, "Error processing jsval_to_std_string");
JSStringWrapper str(tmp, cx);
*ret = str.get();
return true;
}
return false;
}