本文整理汇总了C++中v8::Handle::IsTrue方法的典型用法代码示例。如果您正苦于以下问题:C++ Handle::IsTrue方法的具体用法?C++ Handle::IsTrue怎么用?C++ Handle::IsTrue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类v8::Handle
的用法示例。
在下文中一共展示了Handle::IsTrue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wrapJSObject
jobject wrapJSObject(JNIEnv *pEnv, v8::Handle<v8::Value> value)
{
v8::HandleScope handle_scope;
if (value.IsEmpty() || value->IsNull() || value->IsUndefined()) return NULL;
if (value->IsTrue()) return NewBoolean(pEnv, JNI_TRUE);
if (value->IsFalse()) return NewBoolean(pEnv, JNI_FALSE);
if (value->IsInt32()) return NewInt(pEnv, value->Int32Value());
if (value->IsUint32()) return NewLong(pEnv, value->IntegerValue());
if (value->IsString()) return NewString(pEnv, v8::Handle<v8::String>::Cast(value));
if (value->IsDate()) return NewDate(pEnv, v8::Handle<v8::Date>::Cast(value));
if (value->IsNumber()) return NewDouble(pEnv, value->NumberValue());
// return wrap(value->ToObject());
return NULL;
}
示例2: CanConvert
bool CJavaFunction::CanConvert(jclass clazz, v8::Handle<v8::Value> value)
{
jni::V8Env env(m_pEnv);
if (value->IsTrue() || value->IsFalse() || value->IsBoolean())
{
return env.IsAssignableFrom(env.buildins.java.lang.Boolean, clazz);
}
else if (value->IsInt32() || value->IsUint32())
{
return env.IsAssignableFrom(env.buildins.java.lang.Long, clazz) ||
env.IsAssignableFrom(env.buildins.java.lang.Integer, clazz) ||
env.IsAssignableFrom(env.buildins.java.lang.Short, clazz) ||
env.IsAssignableFrom(env.buildins.java.lang.Byte, clazz);
}
else if (value->IsNumber())
{
return env.IsAssignableFrom(env.buildins.java.lang.Double, clazz) ||
env.IsAssignableFrom(env.buildins.java.lang.Float, clazz);
}
else if (value->IsString())
{
return env.IsAssignableFrom(env.buildins.java.lang.String, clazz);
}
else if (value->IsDate())
{
return env.IsAssignableFrom(env.buildins.java.util.Date, clazz);
}
else if (value->IsArray())
{
return env.IsAssignableFrom(env.buildins.lu.flier.script.V8Array, clazz);
}
else if (value.IsEmpty() || value->IsNull() || value->IsUndefined() || value->IsObject())
{
return true;
}
return false;
}
示例3: Value
inline Value InterpreterData::v8ValueToValue(const v8::Handle<v8::Value>& value)
{
if (value.IsEmpty() || value->IsNull() || value->IsUndefined())
return Value();
else if (value->IsTrue())
return Value(true);
else if (value->IsFalse())
return Value(false);
else if (value->IsInt32())
return Value(value->ToInt32()->Value());
else if (value->IsNumber())
return Value(value->ToNumber()->Value());
else if (value->IsString()) {
const v8::String::Utf8Value str(value);
return Value(ToCString(str));
} else if (value->IsObject()) {
const v8::String::Utf8Value str(toJSON(value));
return Value::fromJSON(ToCString(str));
} else {
error() << "Unknown v8 value in Interpreter::v8ValueToValue";
}
return Value();
}
示例4: jsValToBoolean
bool SBController::jsValToBoolean(const v8::Handle<v8::Value>& str)
{
if (!str->IsBoolean())
return false;
return str->IsTrue();;
}
示例5: if
void QV8Worker::serialize(QByteArray &data, v8::Handle<v8::Value> v, QV8Engine *engine)
{
if (v.IsEmpty()) {
} else if (v->IsUndefined()) {
push(data, valueheader(WorkerUndefined));
} else if (v->IsNull()) {
push(data, valueheader(WorkerNull));
} else if (v->IsTrue()) {
push(data, valueheader(WorkerTrue));
} else if (v->IsFalse()) {
push(data, valueheader(WorkerFalse));
} else if (v->IsString()) {
v8::Handle<v8::String> string = v->ToString();
int length = string->Length() + 1;
if (length > 0xFFFFFF) {
push(data, valueheader(WorkerUndefined));
return;
}
int utf16size = ALIGN(length * sizeof(uint16_t));
reserve(data, utf16size + sizeof(quint32));
push(data, valueheader(WorkerString, length));
int offset = data.size();
data.resize(data.size() + utf16size);
char *buffer = data.data() + offset;
string->Write((uint16_t*)buffer);
} else if (v->IsFunction()) {
// XXX TODO: Implement passing function objects between the main and
// worker scripts
push(data, valueheader(WorkerUndefined));
} else if (v->IsArray()) {
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(v);
uint32_t length = array->Length();
if (length > 0xFFFFFF) {
push(data, valueheader(WorkerUndefined));
return;
}
reserve(data, sizeof(quint32) + length * sizeof(quint32));
push(data, valueheader(WorkerArray, length));
for (uint32_t ii = 0; ii < length; ++ii)
serialize(data, array->Get(ii), engine);
} else if (v->IsInt32()) {
reserve(data, 2 * sizeof(quint32));
push(data, valueheader(WorkerInt32));
push(data, (quint32)v->Int32Value());
} else if (v->IsUint32()) {
reserve(data, 2 * sizeof(quint32));
push(data, valueheader(WorkerUint32));
push(data, v->Uint32Value());
} else if (v->IsNumber()) {
reserve(data, sizeof(quint32) + sizeof(double));
push(data, valueheader(WorkerNumber));
push(data, v->NumberValue());
} else if (v->IsDate()) {
reserve(data, sizeof(quint32) + sizeof(double));
push(data, valueheader(WorkerDate));
push(data, v8::Handle<v8::Date>::Cast(v)->NumberValue());
} else if (v->IsRegExp()) {
v8::Handle<v8::RegExp> regexp = v8::Handle<v8::RegExp>::Cast(v);
quint32 flags = regexp->GetFlags();
v8::Local<v8::String> source = regexp->GetSource();
int length = source->Length() + 1;
if (length > 0xFFFFFF) {
push(data, valueheader(WorkerUndefined));
return;
}
int utf16size = ALIGN(length * sizeof(uint16_t));
reserve(data, sizeof(quint32) + utf16size);
push(data, valueheader(WorkerRegexp, flags));
push(data, (quint32)length);
int offset = data.size();
data.resize(data.size() + utf16size);
char *buffer = data.data() + offset;
source->Write((uint16_t*)buffer);
} else if (v->IsObject() && !v->ToObject()->GetExternalResource()) {
v8::Handle<v8::Object> object = v->ToObject();
v8::Local<v8::Array> properties = engine->getOwnPropertyNames(object);
quint32 length = properties->Length();
if (length > 0xFFFFFF) {
push(data, valueheader(WorkerUndefined));
return;
}
push(data, valueheader(WorkerObject, length));
v8::TryCatch tc;
for (quint32 ii = 0; ii < length; ++ii) {
v8::Local<v8::String> str = properties->Get(ii)->ToString();
serialize(data, str, engine);
v8::Local<v8::Value> val = object->Get(str);
if (tc.HasCaught()) {
serialize(data, v8::Undefined(), engine);
tc.Reset();
} else {
serialize(data, val, engine);
}
//.........这里部分代码省略.........