diff options
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp index 968e53d..265bcfe 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp @@ -6,7 +6,6 @@ namespace DOM { v8::Persistent<v8::FunctionTemplate> V8XPathResult::Tmpl; - v8::Handle<v8::Value> V8XPathResult::numberValueAttrGetter(v8::Local<v8::String> property, const v8::AccessorInfo& info) { v8::Local<v8::Object> self = info.Holder(); struct V8XPathResultPrivate* privData = V8DOM::toClassPtr<V8XPathResultPrivate >(self->GetInternalField(0)); @@ -27,56 +26,76 @@ v8::Handle<v8::Value> V8XPathResult::booleanValueAttrGetter(v8::Local<v8::String return v8::Boolean::New(privData->nativeObj->asBool()); } + v8::Handle<v8::Value> V8XPathResult::asNodeSetCallback(const v8::Arguments& args) { v8::Local<v8::Object> self = args.Holder(); struct V8XPathResultPrivate* privData = V8DOM::toClassPtr<V8XPathResultPrivate >(self->GetInternalField(0)); + if (false) { + } else if (args.Length() == 0) { - Arabica::XPath::NodeSet<std::string>* retVal = new Arabica::XPath::NodeSet<std::string>(privData->nativeObj->asNodeSet()); - v8::Handle<v8::Function> retCtor = V8NodeSet::getTmpl()->GetFunction(); - v8::Persistent<v8::Object> retObj = v8::Persistent<v8::Object>::New(retCtor->NewInstance()); + Arabica::XPath::NodeSet<std::string>* retVal = new Arabica::XPath::NodeSet<std::string>(privData->nativeObj->asNodeSet()); + v8::Handle<v8::Function> retCtor = V8NodeSet::getTmpl()->GetFunction(); + v8::Persistent<v8::Object> retObj = v8::Persistent<v8::Object>::New(retCtor->NewInstance()); - struct V8NodeSet::V8NodeSetPrivate* retPrivData = new V8NodeSet::V8NodeSetPrivate(); - retPrivData->dom = privData->dom; - retPrivData->nativeObj = retVal; + struct V8NodeSet::V8NodeSetPrivate* retPrivData = new V8NodeSet::V8NodeSetPrivate(); + retPrivData->dom = privData->dom; + retPrivData->nativeObj = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8NodeSet::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8NodeSet::jsDestructor); + return retObj; + } + throw V8Exception("Parameter mismatch while calling asNodeSet"); + return v8::Undefined(); } v8::Handle<v8::Value> V8XPathResult::asBoolCallback(const v8::Arguments& args) { v8::Local<v8::Object> self = args.Holder(); struct V8XPathResultPrivate* privData = V8DOM::toClassPtr<V8XPathResultPrivate >(self->GetInternalField(0)); + if (false) { + } else if (args.Length() == 0) { - bool retVal = privData->nativeObj->asBool(); + bool retVal = privData->nativeObj->asBool(); - return v8::Boolean::New(retVal); + return v8::Boolean::New(retVal); + } + throw V8Exception("Parameter mismatch while calling asBool"); + return v8::Undefined(); } v8::Handle<v8::Value> V8XPathResult::asStringCallback(const v8::Arguments& args) { v8::Local<v8::Object> self = args.Holder(); struct V8XPathResultPrivate* privData = V8DOM::toClassPtr<V8XPathResultPrivate >(self->GetInternalField(0)); + if (false) { + } else if (args.Length() == 0) { - std::string retVal = privData->nativeObj->asString(); + std::string retVal = privData->nativeObj->asString(); - return v8::String::New(retVal.c_str()); + return v8::String::New(retVal.c_str()); + } + throw V8Exception("Parameter mismatch while calling asString"); + return v8::Undefined(); } v8::Handle<v8::Value> V8XPathResult::asNumberCallback(const v8::Arguments& args) { v8::Local<v8::Object> self = args.Holder(); struct V8XPathResultPrivate* privData = V8DOM::toClassPtr<V8XPathResultPrivate >(self->GetInternalField(0)); + if (false) { + } else if (args.Length() == 0) { - double retVal = privData->nativeObj->asNumber(); + double retVal = privData->nativeObj->asNumber(); - return v8::Number::New(retVal); + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling asNumber"); + return v8::Undefined(); } - bool V8XPathResult::hasInstance(v8::Handle<v8::Value> value) { return getTmpl()->HasInstance(value); } |