本文整理汇总了C++中v8::Handle::NumberValue方法的典型用法代码示例。如果您正苦于以下问题:C++ Handle::NumberValue方法的具体用法?C++ Handle::NumberValue怎么用?C++ Handle::NumberValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类v8::Handle
的用法示例。
在下文中一共展示了Handle::NumberValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createNumber
static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, Vector<v8::Handle<v8::Array> >& stack, v8::Isolate* isolate)
{
if (value->IsNumber() && !std::isnan(value->NumberValue()))
return IDBKey::createNumber(value->NumberValue());
if (value->IsString())
return IDBKey::createString(toCoreString(value.As<v8::String>()));
if (value->IsDate() && !std::isnan(value->NumberValue()))
return IDBKey::createDate(value->NumberValue());
if (value->IsArray()) {
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(value);
if (stack.contains(array))
return 0;
if (stack.size() >= maximumDepth)
return 0;
stack.append(array);
IDBKey::KeyArray subkeys;
uint32_t length = array->Length();
for (uint32_t i = 0; i < length; ++i) {
v8::Local<v8::Value> item = array->Get(v8::Int32::New(i, isolate));
RefPtr<IDBKey> subkey = createIDBKeyFromValue(item, stack, isolate);
if (!subkey)
subkeys.append(IDBKey::createInvalid());
else
subkeys.append(subkey);
}
stack.removeLast();
return IDBKey::createArray(subkeys);
}
return 0;
}
示例2: createNull
PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value)
{
if (value->IsNull())
return IDBKey::createNull();
if (value->IsNumber())
return IDBKey::createNumber(value->NumberValue());
if (value->IsString())
return IDBKey::createString(v8ValueToWebCoreString(value));
if (value->IsDate())
return IDBKey::createDate(value->NumberValue());
return 0; // Signals type error.
}
示例3: NewDate
jobject NewDate(JNIEnv *pEnv, v8::Handle<v8::Date> date)
{
static jclass cls = reinterpret_cast<jclass>(pEnv->NewGlobalRef(pEnv->FindClass("java/lang/Double")));
static jmethodID cid = pEnv->GetMethodID(cls, "<init>", "(J)V");
jlong value = floor(date->NumberValue());
return pEnv->NewObject(cls, cid, value);
}
示例4: jsDateToJavaDate
jobject TypeConverter::jsDateToJavaDate(v8::Handle<v8::Date> jsDate)
{
JNIEnv *env = JNIScope::getEnv();
if (env == NULL) {
return NULL;
}
return env->NewObject(JNIUtil::dateClass, JNIUtil::dateInitMethod, (jlong) jsDate->NumberValue());
}
示例5: operator
inline bool operator()( v8::Handle<v8::Value> const & h ) const
{
if( h.IsEmpty() || ! h->IsNumber() ) return false;
else
{
double const dv( h->NumberValue() );
return (dv >= std::numeric_limits<NumT>::min())
&& (dv <= std::numeric_limits<NumT>::max());
}
}
示例6: null
static PassRefPtr<JSONValue> v8ToJSONValue(v8::Handle<v8::Value> value, int maxDepth, v8::Isolate* isolate)
{
if (value.IsEmpty()) {
ASSERT_NOT_REACHED();
return 0;
}
if (!maxDepth)
return 0;
maxDepth--;
if (value->IsNull() || value->IsUndefined())
return JSONValue::null();
if (value->IsBoolean())
return JSONBasicValue::create(value->BooleanValue());
if (value->IsNumber())
return JSONBasicValue::create(value->NumberValue());
if (value->IsString())
return JSONString::create(toCoreString(value.As<v8::String>()));
if (value->IsArray()) {
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(value);
RefPtr<JSONArray> inspectorArray = JSONArray::create();
uint32_t length = array->Length();
for (uint32_t i = 0; i < length; i++) {
v8::Local<v8::Value> value = array->Get(v8::Int32::New(isolate, i));
RefPtr<JSONValue> element = v8ToJSONValue(value, maxDepth, isolate);
if (!element)
return 0;
inspectorArray->pushValue(element);
}
return inspectorArray;
}
if (value->IsObject()) {
RefPtr<JSONObject> jsonObject = JSONObject::create();
v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(value);
v8::Local<v8::Array> propertyNames = object->GetPropertyNames();
uint32_t length = propertyNames->Length();
for (uint32_t i = 0; i < length; i++) {
v8::Local<v8::Value> name = propertyNames->Get(v8::Int32::New(isolate, i));
// FIXME(yurys): v8::Object should support GetOwnPropertyNames
if (name->IsString() && !object->HasRealNamedProperty(v8::Handle<v8::String>::Cast(name)))
continue;
RefPtr<JSONValue> propertyValue = v8ToJSONValue(object->Get(name), maxDepth, isolate);
if (!propertyValue)
return 0;
V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<WithNullCheck>, nameString, name, 0);
jsonObject->setValue(nameString, propertyValue);
}
return jsonObject;
}
ASSERT_NOT_REACHED();
return 0;
}
示例7: null
static PassRefPtr<InspectorValue> v8ToInspectorValue(v8::Handle<v8::Value> value, int maxDepth)
{
if (value.IsEmpty()) {
ASSERT_NOT_REACHED();
return 0;
}
if (!maxDepth)
return 0;
maxDepth--;
if (value->IsNull() || value->IsUndefined())
return InspectorValue::null();
if (value->IsBoolean())
return InspectorBasicValue::create(value->BooleanValue());
if (value->IsNumber())
return InspectorBasicValue::create(value->NumberValue());
if (value->IsString())
return InspectorString::create(toWebCoreString(value));
if (value->IsArray()) {
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(value);
RefPtr<InspectorArray> inspectorArray = InspectorArray::create();
uint32_t length = array->Length();
for (uint32_t i = 0; i < length; i++) {
v8::Local<v8::Value> value = array->Get(v8::Int32::New(i));
RefPtr<InspectorValue> element = v8ToInspectorValue(value, maxDepth);
if (!element)
return 0;
inspectorArray->pushValue(element);
}
return inspectorArray;
}
if (value->IsObject()) {
RefPtr<InspectorObject> inspectorObject = InspectorObject::create();
v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(value);
v8::Local<v8::Array> propertyNames = object->GetPropertyNames();
uint32_t length = propertyNames->Length();
for (uint32_t i = 0; i < length; i++) {
v8::Local<v8::Value> name = propertyNames->Get(v8::Int32::New(i));
// FIXME(yurys): v8::Object should support GetOwnPropertyNames
if (name->IsString() && !object->HasRealNamedProperty(v8::Handle<v8::String>::Cast(name)))
continue;
RefPtr<InspectorValue> propertyValue = v8ToInspectorValue(object->Get(name), maxDepth);
if (!propertyValue)
return 0;
inspectorObject->setValue(toWebCoreStringWithNullCheck(name), propertyValue);
}
return inspectorObject;
}
ASSERT_NOT_REACHED();
return 0;
}
示例8: 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;
}
示例9: FillShapeValueNumber
static bool FillShapeValueNumber (TRI_shaper_t* shaper, TRI_shape_value_t* dst, v8::Handle<v8::NumberObject> json) {
TRI_shape_number_t* ptr;
dst->_type = TRI_SHAPE_NUMBER;
dst->_sid = shaper->_sidNumber;
dst->_fixedSized = true;
dst->_size = sizeof(TRI_shape_number_t);
dst->_value = (char*)(ptr = (TRI_shape_number_t*) TRI_Allocate(shaper->_memoryZone, dst->_size, true));
if (dst->_value == NULL) {
return false;
}
*ptr = json->NumberValue();
return true;
}
示例10: GetTmMSecs
uint64 TNodeJsUtil::GetTmMSecs(v8::Handle<v8::Value>& Value) {
v8::Isolate* Isolate = v8::Isolate::GetCurrent();
v8::HandleScope HandleScope(Isolate);
if (Value->IsDate()) {
v8::Local<v8::Date> Date = v8::Handle<v8::Date>::Cast(Value);
return GetTmMSecs(Date);
}
else if (Value->IsString()) {
v8::String::Utf8Value Utf8(Value);
TTm Tm = TTm::GetTmFromWebLogDateTimeStr(TStr(*Utf8), '-', ':', '.', 'T');
return TTm::GetMSecsFromTm(Tm);
}
else {
EAssertR(Value->IsNumber(), "Date is not in a representation of a string, date or number!");
return GetCppTimestamp(int64(Value->NumberValue()));
}
}
示例11: QJsonValue
QJsonValue QV8JsonWrapper::toJsonValue(v8::Handle<v8::Value> value,
V8ObjectSet &visitedObjects)
{
if (value->IsString())
return QJsonValue(QJSConverter::toString(value.As<v8::String>()));
else if (value->IsNumber())
return QJsonValue(value->NumberValue());
else if (value->IsBoolean())
return QJsonValue(value->BooleanValue());
else if (value->IsArray())
return toJsonArray(value.As<v8::Array>(), visitedObjects);
else if (value->IsObject())
return toJsonObject(value.As<v8::Object>(), visitedObjects);
else if (value->IsNull())
return QJsonValue(QJsonValue::Null);
else
return QJsonValue(QJsonValue::Undefined);
}
示例12: FillShapeValueNumber
static int FillShapeValueNumber (VocShaper* shaper,
TRI_shape_value_t* dst,
v8::Handle<v8::NumberObject> const json) {
TRI_shape_number_t* ptr;
dst->_type = TRI_SHAPE_NUMBER;
dst->_sid = BasicShapes::TRI_SHAPE_SID_NUMBER;
dst->_fixedSized = true;
dst->_size = sizeof(TRI_shape_number_t);
dst->_value = (char*) (ptr = (TRI_shape_number_t*) TRI_Allocate(shaper->memoryZone(), dst->_size, false));
if (dst->_value == nullptr) {
return TRI_ERROR_OUT_OF_MEMORY;
}
*ptr = json->NumberValue();
return TRI_ERROR_NO_ERROR;
}
示例13: Value
static Value v8ValueToValue(v8::Handle<v8::Value> v8Value)
{
v8::HandleScope scope;
if (v8Value->IsArray()) {
List<Value> value;
const v8::Handle<v8::Array> v8Array = v8::Handle<v8::Array>::Cast(v8Value);
const uint32_t size = v8Array->Length();
for (uint32_t i = 0; i < size; ++i) {
if (v8Array->Has(i))
value.append(v8ValueToValue(v8Array->Get(i)));
else
value.append(Value());
}
return Value(value);
} else if (v8Value->IsObject()) {
Map<String, Value> value;
const v8::Handle<v8::Object> v8Object = v8Value->ToObject();
const v8::Handle<v8::Array> props = v8Object->GetPropertyNames();
const uint32_t size = props->Length();
for (uint32_t i = 0; i < size; ++i) {
assert(props->Has(i));
const v8::Handle<v8::Value> name = props->Get(i);
value[String(*v8::String::Utf8Value(name))] = v8ValueToValue(v8Object->Get(name));
}
return Value(value);
} else if (v8Value->IsBoolean()) {
return Value(v8Value->BooleanValue());
} else if (v8Value->IsInt32() || v8Value->IsUint32()) {
return Value(v8Value->Int32Value());
} else if (v8Value->IsNumber()) {
return Value(v8Value->NumberValue());
} else if (v8Value->IsString()) {
return Value(String(*v8::String::Utf8Value(v8Value)));
} else {
error() << "Unexpected v8 value type in JSONParser";
}
// undefined or null?
return Value();
}
示例14: DoubleSet
void ArrayType::DoubleSet(ArrayType *arr, JNIEnv *jniEnv, jobject ob, uint32_t index, v8::Handle<v8::Value> elt) {
jniEnv->CallVoidMethod(ob, arr->setElement, index, (jdouble)elt->NumberValue());
}
示例15: toWebCoreDate
double toWebCoreDate(v8::Handle<v8::Value> object)
{
return (object->IsDate() || object->IsNumber()) ? object->NumberValue() : std::numeric_limits<double>::quiet_NaN();
}