diff options
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp | 448 |
1 files changed, 339 insertions, 109 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp index 4a756ee..4611595 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DataView.cpp @@ -1,238 +1,468 @@ +#include "V8ArrayBuffer.h" +#include "V8ArrayBufferView.h" #include "V8DataView.h" namespace Arabica { namespace DOM { v8::Persistent<v8::FunctionTemplate> V8DataView::Tmpl; +v8::Persistent<v8::FunctionTemplate> V8DataView::Constr; + +v8::Handle<v8::Value> V8DataView::constructor(const v8::Arguments& args) { + if (!args.IsConstructCall()) + return v8::ThrowException(v8::String::New("Cannot call constructor as function")); + + uscxml::DataView* localInstance = NULL; + if (false) { + } else if (args.Length() == 3 && + args[0]->IsObject() && V8ArrayBuffer::hasInstance(args[0]) && + args[1]->IsUint32() && + args[2]->IsUint32()) { + + uscxml::ArrayBuffer* localBuffer = V8DOM::toClassPtr<V8ArrayBuffer::V8ArrayBufferPrivate >(args[0]->ToObject()->GetInternalField(0))->nativeObj; + unsigned long localByteOffset = args[1]->ToNumber()->Uint32Value(); + unsigned long localByteLength = args[2]->ToNumber()->Uint32Value(); + localInstance = new uscxml::DataView(localBuffer, localByteOffset, localByteLength); + + } else if (args.Length() == 2 && + args[0]->IsObject() && V8ArrayBuffer::hasInstance(args[0]) && + args[1]->IsUint32()) { + + uscxml::ArrayBuffer* localBuffer = V8DOM::toClassPtr<V8ArrayBuffer::V8ArrayBufferPrivate >(args[0]->ToObject()->GetInternalField(0))->nativeObj; + unsigned long localByteOffset = args[1]->ToNumber()->Uint32Value(); + localInstance = new uscxml::DataView(localBuffer, localByteOffset); + + } else if (args.Length() == 1 && + args[0]->IsObject() && V8ArrayBuffer::hasInstance(args[0])) { + + uscxml::ArrayBuffer* localBuffer = V8DOM::toClassPtr<V8ArrayBuffer::V8ArrayBufferPrivate >(args[0]->ToObject()->GetInternalField(0))->nativeObj; + localInstance = new uscxml::DataView(localBuffer); + + } + if (!localInstance) { + throw V8Exception("Parameter mismatch while calling constructor for DataView"); + return v8::Undefined(); + } + + v8::Handle<v8::Function> retCtor = V8DataView::getTmpl()->GetFunction(); + v8::Persistent<v8::Object> retObj = v8::Persistent<v8::Object>::New(retCtor->NewInstance()); + + struct V8DataView::V8DataViewPrivate* retPrivData = new V8DataView::V8DataViewPrivate(); + retPrivData->nativeObj = localInstance; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8DataView::jsDestructor); + return retObj; +} v8::Handle<v8::Value> V8DataView::getInt8Callback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getInt8"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + if (false) { + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - char retVal = privData->nativeObj->getInt8(localByteOffset); + char retVal = privData->nativeObj->getInt8(localByteOffset); - return v8::Number::New(retVal); + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getInt8"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getUint8Callback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getUint8"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + if (false) { + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - char retVal = privData->nativeObj->getUint8(localByteOffset); + unsigned char retVal = privData->nativeObj->getUint8(localByteOffset); - return v8::Number::New(retVal); + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getUint8"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getInt16Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getInt16"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + short retVal = privData->nativeObj->getInt16(localByteOffset, localLittleEndian); - short retVal = privData->nativeObj->getInt16(localByteOffset, localLittleEndian); + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - return v8::Number::New(retVal); + short retVal = privData->nativeObj->getInt16(localByteOffset); + + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getInt16"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getUint16Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getUint16"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + unsigned short retVal = privData->nativeObj->getUint16(localByteOffset, localLittleEndian); - unsigned short retVal = privData->nativeObj->getUint16(localByteOffset, localLittleEndian); + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - return v8::Number::New(retVal); + unsigned short retVal = privData->nativeObj->getUint16(localByteOffset); + + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getUint16"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getInt32Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getInt32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + long retVal = privData->nativeObj->getInt32(localByteOffset, localLittleEndian); - long retVal = privData->nativeObj->getInt32(localByteOffset, localLittleEndian); + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - return v8::Number::New(retVal); + long retVal = privData->nativeObj->getInt32(localByteOffset); + + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getInt32"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getUint32Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getUint32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + unsigned long retVal = privData->nativeObj->getUint32(localByteOffset, localLittleEndian); - unsigned long retVal = privData->nativeObj->getUint32(localByteOffset, localLittleEndian); + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - return v8::Number::New(retVal); + unsigned long retVal = privData->nativeObj->getUint32(localByteOffset); + + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getUint32"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getFloat32Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getFloat32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + float retVal = privData->nativeObj->getFloat32(localByteOffset, localLittleEndian); + + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - float retVal = privData->nativeObj->getFloat32(localByteOffset, localLittleEndian); + float retVal = privData->nativeObj->getFloat32(localByteOffset); - return v8::Number::New(retVal); + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getFloat32"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::getFloat64Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getFloat64"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[1]->ToBoolean()->BooleanValue(); + + double retVal = privData->nativeObj->getFloat64(localByteOffset, localLittleEndian); + + return v8::Number::New(retVal); + } else if (args.Length() == 1 && + args[0]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - double retVal = privData->nativeObj->getFloat64(localByteOffset, localLittleEndian); + double retVal = privData->nativeObj->getFloat64(localByteOffset); - return v8::Number::New(retVal); + return v8::Number::New(retVal); + } + throw V8Exception("Parameter mismatch while calling getFloat64"); + return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setInt8Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in setInt8"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - char localValue = args[1]->ToNumber()->Int32Value(); - - privData->nativeObj->setInt8(localByteOffset, localValue); - + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsInt32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + char localValue = args[1]->ToNumber()->Int32Value(); + + privData->nativeObj->setInt8(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setInt8"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setUint8Callback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in setUint8"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - unsigned char localValue = args[1]->ToNumber()->Uint32Value(); - - privData->nativeObj->setUint8(localByteOffset, localValue); - + if (false) { + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + unsigned char localValue = args[1]->ToNumber()->Uint32Value(); + + privData->nativeObj->setUint8(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setUint8"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setInt16Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setInt16"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - short localValue = args[1]->ToNumber()->Int32Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setInt16(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsInt32() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + short localValue = args[1]->ToNumber()->Int32Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setInt16(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsInt32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + short localValue = args[1]->ToNumber()->Int32Value(); + + privData->nativeObj->setInt16(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setInt16"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setUint16Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setUint16"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - unsigned short localValue = args[1]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setUint16(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsUint32() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + unsigned short localValue = args[1]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setUint16(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + unsigned short localValue = args[1]->ToNumber()->Uint32Value(); + + privData->nativeObj->setUint16(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setUint16"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setInt32Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setInt32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - long localValue = args[1]->ToNumber()->Int32Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setInt32(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsInt32() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + long localValue = args[1]->ToNumber()->Int32Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setInt32(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsInt32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + long localValue = args[1]->ToNumber()->Int32Value(); + + privData->nativeObj->setInt32(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setInt32"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setUint32Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setUint32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - unsigned long localValue = args[1]->ToNumber()->Uint32Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setUint32(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsUint32() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + unsigned long localValue = args[1]->ToNumber()->Uint32Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setUint32(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsUint32()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + unsigned long localValue = args[1]->ToNumber()->Uint32Value(); + + privData->nativeObj->setUint32(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setUint32"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setFloat32Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setFloat32"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - float localValue = args[1]->ToNumber()->Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setFloat32(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsNumber() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + float localValue = args[1]->ToNumber()->Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setFloat32(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsNumber()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + float localValue = args[1]->ToNumber()->Value(); + + privData->nativeObj->setFloat32(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setFloat32"); return v8::Undefined(); } v8::Handle<v8::Value> V8DataView::setFloat64Callback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setFloat64"); v8::Local<v8::Object> self = args.Holder(); struct V8DataViewPrivate* privData = V8DOM::toClassPtr<V8DataViewPrivate >(self->GetInternalField(0)); - unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); - double localValue = args[1]->ToNumber()->Value(); - bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); - - privData->nativeObj->setFloat64(localByteOffset, localValue, localLittleEndian); - + if (false) { + } else if (args.Length() == 3 && + args[0]->IsUint32() && + args[1]->IsNumber() && + args[2]->IsBoolean()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + double localValue = args[1]->ToNumber()->Value(); + bool localLittleEndian = args[2]->ToBoolean()->BooleanValue(); + + privData->nativeObj->setFloat64(localByteOffset, localValue, localLittleEndian); + + return v8::Undefined(); + } else if (args.Length() == 2 && + args[0]->IsUint32() && + args[1]->IsNumber()) { + unsigned long localByteOffset = args[0]->ToNumber()->Uint32Value(); + double localValue = args[1]->ToNumber()->Value(); + + privData->nativeObj->setFloat64(localByteOffset, localValue); + + return v8::Undefined(); + } + throw V8Exception("Parameter mismatch while calling setFloat64"); return v8::Undefined(); } - bool V8DataView::hasInstance(v8::Handle<v8::Value> value) { return getTmpl()->HasInstance(value); } |