summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-09-01 19:18:36 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-09-01 19:18:36 (GMT)
commitfd0778237785840ec754f98e847a524590cbf61c (patch)
treeebf4609be11843f9657810515d47faa3873c2db8 /src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp
parent99d2c52f1068b2dd4bd16b8c1c8231beeb94a649 (diff)
downloaduscxml-fd0778237785840ec754f98e847a524590cbf61c.zip
uscxml-fd0778237785840ec754f98e847a524590cbf61c.tar.gz
uscxml-fd0778237785840ec754f98e847a524590cbf61c.tar.bz2
More work on TypedArrays
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp')
-rw-r--r--src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp70
1 files changed, 51 insertions, 19 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp
index 69b7969..a53585f 100644
--- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp
+++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCXPathResult.cpp
@@ -46,59 +46,91 @@ JSValueRef JSCXPathResult::booleanValueAttrGetter(JSContextRef ctx, JSObjectRef
return JSValueMakeBoolean(ctx, privData->nativeObj->asBool());
}
+
JSValueRef JSCXPathResult::asNodeSetCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCXPathResultPrivate* privData = (struct JSCXPathResultPrivate*)JSObjectGetPrivate(thisObj);
+ if (false) {
+ } else if (argumentCount == 0) {
+
+ Arabica::XPath::NodeSet<std::string>* retVal = new Arabica::XPath::NodeSet<std::string>(privData->nativeObj->asNodeSet());
+ JSClassRef retClass = JSCNodeSet::getTmpl();
- Arabica::XPath::NodeSet<std::string>* retVal = new Arabica::XPath::NodeSet<std::string>(privData->nativeObj->asNodeSet());
- JSClassRef retClass = JSCNodeSet::getTmpl();
+ struct JSCNodeSet::JSCNodeSetPrivate* retPrivData = new JSCNodeSet::JSCNodeSetPrivate();
+ retPrivData->dom = privData->dom;
+ retPrivData->nativeObj = retVal;
- struct JSCNodeSet::JSCNodeSetPrivate* retPrivData = new JSCNodeSet::JSCNodeSetPrivate();
- retPrivData->dom = privData->dom;
- retPrivData->nativeObj = retVal;
+ JSObjectRef retObj = JSObjectMake(ctx, retClass, retPrivData);
- JSObjectRef retObj = JSObjectMake(ctx, retClass, retPrivData);
+ return retObj;
- return retObj;
+ }
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling asNodeSet");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
}
JSValueRef JSCXPathResult::asBoolCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCXPathResultPrivate* privData = (struct JSCXPathResultPrivate*)JSObjectGetPrivate(thisObj);
+ if (false) {
+ } else if (argumentCount == 0) {
+
+ bool retVal = privData->nativeObj->asBool();
- bool retVal = privData->nativeObj->asBool();
+ JSValueRef jscRetVal = JSValueMakeBoolean(ctx, retVal);
+ return jscRetVal;
+ }
- JSValueRef jscRetVal = JSValueMakeBoolean(ctx, retVal);
- return jscRetVal;
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling asBool");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
}
JSValueRef JSCXPathResult::asStringCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCXPathResultPrivate* privData = (struct JSCXPathResultPrivate*)JSObjectGetPrivate(thisObj);
+ if (false) {
+ } else if (argumentCount == 0) {
- std::string retVal = privData->nativeObj->asString();
+ std::string retVal = privData->nativeObj->asString();
- JSStringRef jscString = JSStringCreateWithUTF8CString(retVal.c_str());
- JSValueRef jscRetVal = JSValueMakeString(ctx, jscString);
- JSStringRelease(jscString);
- return jscRetVal;
+ JSStringRef jscString = JSStringCreateWithUTF8CString(retVal.c_str());
+ JSValueRef jscRetVal = JSValueMakeString(ctx, jscString);
+ JSStringRelease(jscString);
+ return jscRetVal;
+ }
+
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling asString");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
}
JSValueRef JSCXPathResult::asNumberCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
struct JSCXPathResultPrivate* privData = (struct JSCXPathResultPrivate*)JSObjectGetPrivate(thisObj);
+ if (false) {
+ } else if (argumentCount == 0) {
- double retVal = privData->nativeObj->asNumber();
+ double retVal = privData->nativeObj->asNumber();
- JSValueRef jscRetVal = JSValueMakeNumber(ctx, retVal);
- return jscRetVal;
-}
+ JSValueRef jscRetVal = JSValueMakeNumber(ctx, retVal);
+ return jscRetVal;
+ }
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling asNumber");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
+}
}
}