本文整理汇总了C++中Local::IsNumberObject方法的典型用法代码示例。如果您正苦于以下问题:C++ Local::IsNumberObject方法的具体用法?C++ Local::IsNumberObject怎么用?C++ Local::IsNumberObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Local
的用法示例。
在下文中一共展示了Local::IsNumberObject方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TryConvertToJavaLong
bool ArgConverter::TryConvertToJavaLong(const Local<Value>& value, jlong& javaLong)
{
bool success = false;
if (!value.IsEmpty())
{
if (value->IsNumber() || value->IsNumberObject())
{
javaLong = (jlong)value->IntegerValue();
success = true;
}
else if (value->IsObject())
{
auto obj = Local<Object>::Cast(value);
auto isJavaLongValue = obj->GetHiddenValue(V8StringConstants::GetJavaLong());
if (!isJavaLongValue.IsEmpty() && isJavaLongValue->BooleanValue())
{
javaLong = (jlong)ConvertToJavaLong(value);
success = true;
}
}
}
return success;
}
示例2: getGetdnsType
static GetdnsType getGetdnsType(Local<Value> value) {
if (value->IsNumber() || value->IsNumberObject()) {
return IntType;
} else if (value->IsBoolean() || value->IsBooleanObject()) {
return BoolType;
} else if (value->IsString() || value->IsStringObject()) {
return StringType;
} else if (value->IsObject()) {
// could be a node buffer or array
if (node::Buffer::HasInstance(value)) {
return BinDataType;
} else if (value->IsArray()) {
return ListType;
} else if (GNUtil::isDictionaryObject(value)) {
return DictType;
}
}
return UnknownType;
}
示例3: ConvertArg
bool JsArgToArrayConverter::ConvertArg(const Local<Value>& arg, int index)
{
bool success = false;
stringstream s;
JEnv env;
Type returnType = JType::getClassType(m_return_type);
if (arg.IsEmpty())
{
s << "Cannot convert empty JavaScript object";
success = false;
}
else if (arg->IsInt32() && (returnType == Type::Int || returnType == Type::Null))
{
jint value = arg->Int32Value();
JniLocalRef javaObject(JType::NewInt(env, value));
SetConvertedObject(env, index, javaObject);
success = true;
}
else if (arg->IsNumber() || arg->IsNumberObject())
{
double d = arg->NumberValue();
int64_t i = (int64_t)d;
bool isInteger = d == i;
if (isInteger)
{
jobject obj;
//if returnType is long it will cast to long
//if there is no return type specified it will cast to int
//because default return type is null (ref type)
if ((INT_MIN <= i) && (i <= INT_MAX) && (returnType == Type::Int || returnType == Type::Null))
{
obj = JType::NewInt(env, (jint)d);
}
else /*isLong*/
{
obj = JType::NewLong(env, (jlong)d);
}
JniLocalRef javaObject(obj);
SetConvertedObject(env, index, javaObject);
success = true;
}
else
{
jobject obj;
//if returnType is double it will cast to double
//if there is no return type specified it will cast to float
//because default return type is null (ref type)
if((FLT_MIN <= d) && (d <= FLT_MAX) && (returnType == Type::Float || returnType == Type::Null)) {
obj = JType::NewFloat(env, (jfloat)d);
}
else {/*isDouble*/
obj = JType::NewDouble(env, (jdouble)d);
}
JniLocalRef javaObject(obj);
SetConvertedObject(env, index, javaObject);
success = true;
}
}
else if (arg->IsBoolean())
{
jboolean value = arg->BooleanValue();
JniLocalRef javaObject(JType::NewBoolean(env, value));
SetConvertedObject(env, index, javaObject);
success = true;
}
else if (arg->IsBooleanObject())
{
auto boolObj = Local<BooleanObject>::Cast(arg);
jboolean value = boolObj->BooleanValue() ? JNI_TRUE : JNI_FALSE;
JniLocalRef javaObject(JType::NewBoolean(env, value));
SetConvertedObject(env, index, javaObject);
success = true;
}
else if (arg->IsString() || arg->IsStringObject())
{
JniLocalRef stringObject(ConvertToJavaString(arg));
SetConvertedObject(env, index, stringObject);
success = true;
}
else if (arg->IsObject())
{
auto objectWithHiddenID = arg->ToObject();
auto hidden = objectWithHiddenID->GetHiddenValue(V8StringConstants::GetMarkedAsLong());
if (!hidden.IsEmpty())
{
jlong value = 0;
//.........这里部分代码省略.........