summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp')
-rw-r--r--src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp229
1 files changed, 183 insertions, 46 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp
index 85222dc..df5de18 100644
--- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp
+++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCUint8ClampedArray.cpp
@@ -1,3 +1,5 @@
+#include "JSCArrayBuffer.h"
+#include "JSCArrayBufferView.h"
#include "JSCUint8ClampedArray.h"
namespace Arabica {
@@ -15,12 +17,84 @@ JSStaticValue JSCUint8ClampedArray::staticValues[] = {
JSStaticFunction JSCUint8ClampedArray::staticFunctions[] = {
{ "get", getCallback, kJSPropertyAttributeDontDelete },
{ "set", setCallback, kJSPropertyAttributeDontDelete },
- { "set", setCallback, kJSPropertyAttributeDontDelete },
- { "set", setCallback, kJSPropertyAttributeDontDelete },
{ "subarray", subarrayCallback, kJSPropertyAttributeDontDelete },
{ 0, 0, 0 }
};
+JSObjectRef JSCUint8ClampedArray::jsConstructor(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) {
+ uscxml::Uint8ClampedArray* localInstance = NULL;
+
+ if (false) {
+ } else if (argumentCount == 3 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCArrayBuffer::getTmpl()) &&
+ JSValueIsNumber(ctx, arguments[1]) &&
+ JSValueIsNumber(ctx, arguments[2])) {
+
+ uscxml::ArrayBuffer* localBuffer = ((struct JSCArrayBuffer::JSCArrayBufferPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+ unsigned long localByteOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
+ unsigned long localLength = (unsigned long)JSValueToNumber(ctx, arguments[2], exception);
+ localInstance = new uscxml::Uint8ClampedArray(localBuffer, localByteOffset, localLength);
+
+ } else if (argumentCount == 2 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCArrayBuffer::getTmpl()) &&
+ JSValueIsNumber(ctx, arguments[1])) {
+
+ uscxml::ArrayBuffer* localBuffer = ((struct JSCArrayBuffer::JSCArrayBufferPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+ unsigned long localByteOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
+ localInstance = new uscxml::Uint8ClampedArray(localBuffer, localByteOffset);
+
+ } else if (argumentCount == 1 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCUint8ClampedArray::getTmpl())) {
+
+ uscxml::Uint8ClampedArray* localArray = ((struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+ localInstance = new uscxml::Uint8ClampedArray(localArray);
+
+ } else if (argumentCount == 1 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCArrayBuffer::getTmpl())) {
+
+ uscxml::ArrayBuffer* localBuffer = ((struct JSCArrayBuffer::JSCArrayBufferPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+ localInstance = new uscxml::Uint8ClampedArray(localBuffer);
+
+ } else if (argumentCount == 1 &&
+ JSValueIsNumber(ctx, arguments[0])) {
+
+ unsigned long localLength = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
+ localInstance = new uscxml::Uint8ClampedArray(localLength);
+
+ } else if (argumentCount == 1 &&
+ JSValueIsObject(ctx, arguments[0])) {
+
+
+ std::vector<unsigned char> localArray;
+
+ JSValueRef localArrayItem;
+ unsigned int localArrayIndex = 0;
+ while((localArrayItem = JSObjectGetPropertyAtIndex(ctx, JSValueToObject(ctx, arguments[0], exception), localArrayIndex, exception))) {
+ if (JSValueIsUndefined(ctx, localArrayItem))
+ break;
+ if (JSValueIsNumber(ctx,localArrayItem))
+ localArray.push_back(JSValueToNumber(ctx, localArrayItem, exception));
+ localArrayIndex++;
+ }
+ localInstance = new uscxml::Uint8ClampedArray(localArray);
+
+ }
+ if (!localInstance) {
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling constructor for Uint8ClampedArray");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return (JSObjectRef)JSValueMakeNull(ctx);
+ }
+
+ JSClassRef retClass = JSCUint8ClampedArray::getTmpl();
+
+ struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate* retPrivData = new JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate();
+ retPrivData->nativeObj = localInstance;
+
+ JSObjectRef retObj = JSObjectMake(ctx, retClass, retPrivData);
+ return retObj;
+}
+
JSValueRef JSCUint8ClampedArray::lengthAttrGetter(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef *exception) {
struct JSCUint8ClampedArrayPrivate* privData = (struct JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(object);
@@ -31,75 +105,138 @@ JSValueRef JSCUint8ClampedArray::BYTES_PER_ELEMENTConstGetter(JSContextRef ctx,
return JSValueMakeNumber(ctx, 1);
}
+
JSValueRef JSCUint8ClampedArray::getCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
- if (argumentCount < 1) {
- std::string errorMsg = "Wrong number of arguments in get";
- JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
- JSValueRef exceptionString =JSValueMakeString(ctx, string);
- JSStringRelease(string);
- *exception = JSValueToObject(ctx, exceptionString, NULL);
- return NULL;
- }
struct JSCUint8ClampedArrayPrivate* privData = (struct JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(thisObj);
- unsigned long localIndex = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
+ if (false) {
+ } else if (argumentCount == 1 &&
+ JSValueIsNumber(ctx, arguments[0])) {
+ unsigned long localIndex = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
- char retVal = privData->nativeObj->get(localIndex);
+ unsigned char retVal = privData->nativeObj->get(localIndex);
- JSValueRef jscRetVal = JSValueMakeNumber(ctx, retVal);
- return jscRetVal;
+ JSValueRef jscRetVal = JSValueMakeNumber(ctx, retVal);
+ return jscRetVal;
+ }
+
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling get");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
}
JSValueRef JSCUint8ClampedArray::setCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
- if (argumentCount < 2) {
- std::string errorMsg = "Wrong number of arguments in set";
- JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
- JSValueRef exceptionString =JSValueMakeString(ctx, string);
- JSStringRelease(string);
- *exception = JSValueToObject(ctx, exceptionString, NULL);
- return NULL;
- }
struct JSCUint8ClampedArrayPrivate* privData = (struct JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(thisObj);
- unsigned long localIndex = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
- unsigned char localValue = (char)JSValueToNumber(ctx, arguments[1], exception);
-
- privData->nativeObj->set(localIndex, localValue);
+ if (false) {
+ } else if (argumentCount == 2 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCUint8ClampedArray::getTmpl()) &&
+ JSValueIsNumber(ctx, arguments[1])) {
+ uscxml::Uint8ClampedArray* localArray = ((struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+ unsigned long localOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
+
+ privData->nativeObj->set(localArray, localOffset);
+
+ JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
+ return jscRetVal;
+ } else if (argumentCount == 2 &&
+ JSValueIsNumber(ctx, arguments[0]) &&
+ JSValueIsNumber(ctx, arguments[1])) {
+ unsigned long localIndex = (unsigned long)JSValueToNumber(ctx, arguments[0], exception);
+ unsigned char localValue = (unsigned char)JSValueToNumber(ctx, arguments[1], exception);
+
+ privData->nativeObj->set(localIndex, localValue);
+
+ JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
+ return jscRetVal;
+ } else if (argumentCount == 2 &&
+ JSValueIsObject(ctx, arguments[0]) &&
+ JSValueIsNumber(ctx, arguments[1])) {
+
+ std::vector<unsigned char> localArray;
+
+ JSValueRef localArrayItem;
+ unsigned int localArrayIndex = 0;
+ while((localArrayItem = JSObjectGetPropertyAtIndex(ctx, JSValueToObject(ctx, arguments[0], exception), localArrayIndex, exception))) {
+ if (JSValueIsUndefined(ctx, localArrayItem))
+ break;
+ if (JSValueIsNumber(ctx,localArrayItem))
+ localArray.push_back(JSValueToNumber(ctx, localArrayItem, exception));
+ localArrayIndex++;
+ }
+ unsigned long localOffset = (unsigned long)JSValueToNumber(ctx, arguments[1], exception);
+
+ privData->nativeObj->set(localArray, localOffset);
+
+ JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
+ return jscRetVal;
+ } else if (argumentCount == 1 &&
+ JSValueIsObject(ctx, arguments[0]) && JSValueIsObjectOfClass(ctx, arguments[0], JSCUint8ClampedArray::getTmpl())) {
+ uscxml::Uint8ClampedArray* localArray = ((struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(JSValueToObject(ctx, arguments[0], exception)))->nativeObj;
+
+ privData->nativeObj->set(localArray);
+
+ JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
+ return jscRetVal;
+ } else if (argumentCount == 1 &&
+ JSValueIsObject(ctx, arguments[0])) {
+
+ std::vector<unsigned char> localArray;
+
+ JSValueRef localArrayItem;
+ unsigned int localArrayIndex = 0;
+ while((localArrayItem = JSObjectGetPropertyAtIndex(ctx, JSValueToObject(ctx, arguments[0], exception), localArrayIndex, exception))) {
+ if (JSValueIsUndefined(ctx, localArrayItem))
+ break;
+ if (JSValueIsNumber(ctx,localArrayItem))
+ localArray.push_back(JSValueToNumber(ctx, localArrayItem, exception));
+ localArrayIndex++;
+ }
+
+ privData->nativeObj->set(localArray);
+
+ JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
+ return jscRetVal;
+ }
- JSValueRef jscRetVal = JSValueMakeUndefined(ctx);
- return jscRetVal;
+ JSStringRef exceptionString = JSStringCreateWithUTF8CString("Parameter mismatch while calling set");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
}
JSValueRef JSCUint8ClampedArray::subarrayCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) {
- if (argumentCount < 2) {
- std::string errorMsg = "Wrong number of arguments in subarray";
- JSStringRef string = JSStringCreateWithUTF8CString(errorMsg.c_str());
- JSValueRef exceptionString =JSValueMakeString(ctx, string);
- JSStringRelease(string);
- *exception = JSValueToObject(ctx, exceptionString, NULL);
- return NULL;
- }
struct JSCUint8ClampedArrayPrivate* privData = (struct JSCUint8ClampedArrayPrivate*)JSObjectGetPrivate(thisObj);
- long localStart = (long)JSValueToNumber(ctx, arguments[0], exception);
- long localEnd = (long)JSValueToNumber(ctx, arguments[1], exception);
+ if (false) {
+ } else if (argumentCount == 2 &&
+ JSValueIsNumber(ctx, arguments[0]) &&
+ JSValueIsNumber(ctx, arguments[1])) {
+ long localStart = (long)JSValueToNumber(ctx, arguments[0], exception);
+ long localEnd = (long)JSValueToNumber(ctx, arguments[1], exception);
- uscxml::Uint8ClampedArray* retVal = new uscxml::Uint8ClampedArray(privData->nativeObj->subarray(localStart, localEnd));
- JSClassRef retClass = JSCUint8ClampedArray::getTmpl();
+ uscxml::Uint8ClampedArray* retVal = new uscxml::Uint8ClampedArray(privData->nativeObj->subarray(localStart, localEnd));
+ JSClassRef retClass = JSCUint8ClampedArray::getTmpl();
- struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate* retPrivData = new JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate();
- retPrivData->dom = privData->dom;
- retPrivData->nativeObj = retVal;
+ struct JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate* retPrivData = new JSCUint8ClampedArray::JSCUint8ClampedArrayPrivate();
+ 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 subarray");
+ *exception = JSValueMakeString(ctx, exceptionString);
+ JSStringRelease(exceptionString);
+ return JSValueMakeUndefined(ctx);
+}
}
}