当前位置: 首页>>代码示例>>C++>>正文


C++ Handle::IsObject方法代码示例

本文整理汇总了C++中v8::Handle::IsObject方法的典型用法代码示例。如果您正苦于以下问题:C++ Handle::IsObject方法的具体用法?C++ Handle::IsObject怎么用?C++ Handle::IsObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在v8::Handle的用法示例。


在下文中一共展示了Handle::IsObject方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: scope

	static result_type from_v8(v8::Isolate* isolate, v8::Handle<v8::Value> value)
	{
		v8::HandleScope scope(isolate);

		result_type result;

		if (value->IsArray())
		{
			v8::Local<v8::Array> arr = value.As<v8::Array>();
			v8::Local<v8::Value> x = arr->Get(0), y = arr->Get(1);
			if (arr->Length() != 2 || !x->IsNumber() || !y->IsNumber())
			{
				throw std::invalid_argument("expected [x, y] array");
			}
			result.x = v8pp::from_v8<T>(isolate, x);
			result.y = v8pp::from_v8<T>(isolate, y);
		}
		else if (value->IsObject())
		{
			v8::Local<v8::Object> obj = value.As<v8::Object>();
			if (!get_option(isolate, obj, "x", result.x) || !get_option(isolate, obj, "y", result.y))
			{
				throw std::invalid_argument("expected {x, y} object");
			}
		}
		else
		{
			throw std::invalid_argument("expected [x, y] array or {x, y} object");
		}
		return result;
	}
开发者ID:aspectron,项目名称:jsx,代码行数:31,代码来源:geometry.hpp

示例2: PointJsFromC

	//Twin
	void PointJsFromC(v8::Handle<Value> value,cs::Twin* r){
		HandleScope store;
		if(!value->IsObject()) return;
		Local<Object> vObj = value->ToObject();
		vObj->Set(String::New("x"),Int32::New(r->x));
		vObj->Set(String::New("y"),Int32::New(r->y));
	}
开发者ID:pgmsoul,项目名称:GitLib,代码行数:8,代码来源:v8base.cpp

示例3: toJsonValue

QJsonObject QV8JsonWrapper::toJsonObject(v8::Handle<v8::Value> value,
                                         V8ObjectSet &visitedObjects)
{
    QJsonObject result;
    if (!value->IsObject() || value->IsArray() || value->IsFunction())
        return result;

    v8::Handle<v8::Object> v8object(value.As<v8::Object>());
    if (visitedObjects.contains(v8object)) {
        // Avoid recursion.
        // For compatibility with QVariant{List,Map} conversion, we return an
        // empty object (and no error is thrown).
        return result;
    }

    visitedObjects.insert(v8object);

    v8::Local<v8::Array> propertyNames = m_engine->getOwnPropertyNames(v8object);
    uint32_t length = propertyNames->Length();
    for (uint32_t i = 0; i < length; ++i) {
        v8::Local<v8::Value> name = propertyNames->Get(i);
        v8::Local<v8::Value> propertyValue = v8object->Get(name);
        if (!propertyValue->IsFunction())
            result.insert(QJSConverter::toString(name->ToString()),
                          toJsonValue(propertyValue, visitedObjects));
    }

    visitedObjects.remove(v8object);

    return result;
}
开发者ID:SamuelNevala,项目名称:qtdeclarative,代码行数:31,代码来源:qv8jsonwrapper.cpp

示例4: if

// XPath-related utilities
RefPtr<XPathNSResolver> V8DOMWrapper::getXPathNSResolver(v8::Handle<v8::Value> value, V8Proxy* proxy)
{
    RefPtr<XPathNSResolver> resolver;
    if (V8XPathNSResolver::HasInstance(value))
        resolver = V8XPathNSResolver::toNative(v8::Handle<v8::Object>::Cast(value));
    else if (value->IsObject())
        resolver = V8CustomXPathNSResolver::create(value->ToObject());
    return resolver;
}
开发者ID:ACSOP,项目名称:android_external_webkit,代码行数:10,代码来源:V8DOMWrapper.cpp

示例5: get

static bool get(v8::Handle<v8::Value>& object, const String& keyPathElement, v8::Handle<v8::Value>& result, v8::Isolate* isolate)
{
    if (object->IsString() && keyPathElement == "length") {
        int32_t length = v8::Handle<v8::String>::Cast(object)->Length();
        result = v8::Number::New(isolate, length);
        return true;
    }
    return object->IsObject() && getValueFrom(v8String(isolate, keyPathElement), result);
}
开发者ID:Metrological,项目名称:chromium,代码行数:9,代码来源:IDBBindingUtilities.cpp

示例6: RectJsFromC


//.........这里部分代码省略.........
	//	"return":{
	//		"type":"void",
	//		"text":"函数没有返回值。"
	//	},
	//	"remark":[
	//		"输出窗口是一个用于显示日志消息的窗口,不能响应用户的输入,但是可以控制字体大小、字体颜色、背景颜色。日志窗口有自己的消息循环,与主城市是否是窗口程序无关。"
	//	],
	//	"member":[
	//{
	//	"type":"function",
	//	"name":"show([exit])",
	//	"text":"显示日志窗口。",
	//	"param":[
	//		{
	//			"type":"boolean",
	//			"name":"exit",
	//			"text":"当用户关闭日志窗口时,是否退出程序,缺省是 true。"
	//		}
	//	],
	//	"return":{
	//		"type":"void",
	//		"text":"没有返回值。"
	//	}
	//}
	//,{
	//	"type":"function",
	//	"name":"close()",
	//	"text":"隐藏日志窗口,但是日志不会被清空。",
	//	"return":{
	//		"type":"void",
	//		"text":"这个函数没有返回值。"
	//	}
	//}
	//,{
	//	"type":"function",
	//	"name":"setMaxLine([count])",
	//	"text":"设置日志窗口最大的文本行数,如果日志达到这个行数,前面的日志会被舍弃。",
	//	"param":[
	//		{
	//			"type":"integer",
	//			"name":"[count]",
	//			"text":"可能的最大行数,缺省是 1000"
	//		}
	//	],
	//	"return":{
	//		"type":"void",
	//		"text":"这个函数没有返回值。"
	//	}
	//}
	//,{
	//	"type":"function",
	//	"name":"setFontSize(size)",
	//	"text":"设置输出文本的字体大小,这个设置是会影响所有文本。",
	//	"param":[
	//		{
	//			"type":"integer",
	//			"name":"size",
	//			"text":"字体的尺寸,缺省是 16."
	//		}
	//	],
	//	"return":{
	//		"type":"void",
	//		"text":"这个函数没有返回值。"
	//	}
	//},
	//{
	//	"type":"function",
	//	"name":"setBkColor(color)",
	//	"text":"设置输出窗口的背景色,缺省是黑色。",
	//	"param":[
	//		{
	//			"type":"integer",
	//			"name":"color",
	//			"text":"颜色值。"
	//		}
	//	],
	//	"return":{
	//		"type":"void",
	//		"text":"这个函数没有返回值。"
	//	}
	//},
	//{
	//	"type":"function",
	//	"name":"clear()",
	//	"text":"清空所有日志。",
	//	"return":{
	//		"type":"void",
	//		"text":"这个函数没有返回值。"
	//	}
	//}
	//],"source":"D:\\SoftProject\\GitLib\\jsuser\\example\\logwnd.jsuser"}//*
	void RectJsFromC(v8::Handle<Value> value,cs::Rect* r){
		HandleScope store;
		if(!value->IsObject()) return;
		Local<Object> vObj = value->ToObject();
		vObj->Set(String::New("left"),Int32::New(r->left));
		vObj->Set(String::New("top"),Int32::New(r->top));
		vObj->Set(String::New("right"),Int32::New(r->right));
		vObj->Set(String::New("bottom"),Int32::New(r->bottom));
	}
开发者ID:pgmsoul,项目名称:GitLib,代码行数:101,代码来源:v8base.cpp

示例7: if

PassRefPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value> value)
{
    RefPtr<XPathNSResolver> resolver;
    if (V8XPathNSResolver::HasInstance(value))
        resolver = V8XPathNSResolver::toNative(v8::Handle<v8::Object>::Cast(value));
    else if (value->IsObject())
        resolver = V8CustomXPathNSResolver::create(value->ToObject());
    return resolver;
}
开发者ID:anger123520,项目名称:qtwebkit-23_from_gitorious,代码行数:9,代码来源:V8Binding.cpp

示例8:

v8::Handle<v8::Object> V8PerIsolateData::findInstanceInPrototypeChain(const WrapperTypeInfo* info, v8::Handle<v8::Value> value, DOMTemplateMap& domTemplateMap)
{
    if (value.IsEmpty() || !value->IsObject())
        return v8::Handle<v8::Object>();
    DOMTemplateMap::iterator result = domTemplateMap.find(info);
    if (result == domTemplateMap.end())
        return v8::Handle<v8::Object>();
    v8::Handle<v8::FunctionTemplate> templ = result->value.Get(m_isolate);
    return v8::Handle<v8::Object>::Cast(value)->FindInstanceInPrototypeChain(templ);
}
开发者ID:junmin-zhu,项目名称:blink,代码行数:10,代码来源:V8PerIsolateData.cpp

示例9:

v8::Handle<v8::Value> JS_GetListValue(v8::Handle<v8::Value> pList, int index)
{

	if(!pList.IsEmpty() && pList->IsObject())
	{
		v8::Local<v8::Object> obj = pList->ToObject();
		return obj->Get(index);
	}
	return v8::Handle<v8::Value>();
}
开发者ID:mcanthony,项目名称:libpdf,代码行数:10,代码来源:fxjs_v8.cpp

示例10:

V8NodeFilterCondition::V8NodeFilterCondition(v8::Handle<v8::Value> filter, v8::Handle<v8::Object> owner, ScriptState* scriptState)
    : m_scriptState(scriptState)
{
    // ..acceptNode(..) will only dispatch m_filter if m_filter->IsObject().
    // We'll make sure m_filter is either usable by acceptNode or empty.
    // (See the fast/dom/node-filter-gc test for a case where 'empty' happens.)
    if (!filter.IsEmpty() && filter->IsObject()) {
        V8HiddenValue::setHiddenValue(scriptState->isolate(), owner, V8HiddenValue::condition(scriptState->isolate()), filter);
        m_filter.set(scriptState->isolate(), filter);
        m_filter.setWeak(this, &setWeakCallback);
    }
}
开发者ID:Drakey83,项目名称:steamlink-sdk,代码行数:12,代码来源:V8NodeFilterCondition.cpp

示例11: PointJsToC

	bool PointJsToC(v8::Handle<Value> value,cs::Twin* r){
		HandleScope store;
		if(!value->IsObject()) return false;
		Local<Object> vObj = value->ToObject();
		Local<Value> vx = vObj->Get(String::New("x"));
		if(vx->IsUndefined()) return false;
		Local<Value> vy = vObj->Get(String::New("y"));
		if(vy->IsUndefined()) return false;
		r->x = vx->Int32Value();
		r->y = vy->Int32Value();
		return true;
	}
开发者ID:pgmsoul,项目名称:GitLib,代码行数:12,代码来源:v8base.cpp

示例12: 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;
}
开发者ID:Tkkg1994,项目名称:Platfrom-kccat6,代码行数:53,代码来源:ScriptValue.cpp

示例13:

v8::Handle<v8::Function> V8AdaptorFunction::wrap(v8::Handle<v8::Object> object, const AtomicString& name, v8::Isolate* isolate)
{
    if (object.IsEmpty() || !object->IsObject())
        return v8::Handle<v8::Function>();
    v8::Handle<v8::Function> adaptor = v8::Handle<v8::Function>::Cast(getTemplate(isolate)->GetFunction());
    if (adaptor.IsEmpty())
        return v8::Handle<v8::Function>();
    adaptor->SetName(v8String(name.string(), isolate));
    adaptor->SetHiddenValue(V8HiddenPropertyName::adaptorFunctionPeer(), object);
    object->SetHiddenValue(V8HiddenPropertyName::adaptorFunctionPeer(), adaptor);
    return adaptor;
}
开发者ID:,项目名称:,代码行数:12,代码来源:

示例14: internalPrint

// The callback that is invoked by v8 whenever the JavaScript 'print'
// function is called.  Prints its arguments on stdout separated by
// spaces and ending with a newline.
void internalPrint(const v8::Handle<v8::Value> arg) {
	v8::HandleScope handle_scope;
	std::string cstr;
	if (arg->IsObject()) {
		v8::String::Utf8Value str(toJson(arg->ToObject(), true));
		cstr = ToCString(str);
	} else {
		v8::String::Utf8Value str(arg);
		cstr = ToCString(str);
	}
	printf("%s", cstr.c_str());
}
开发者ID:chiehwen,项目名称:djondb,代码行数:15,代码来源:shell.cpp

示例15: 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;
}
开发者ID:Channely,项目名称:know-your-chrome,代码行数:52,代码来源:ScriptValue.cpp


注:本文中的v8::Handle::IsObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。