#include "V8Node.h" #include "V8SCXMLEvent.h" namespace Arabica { namespace DOM { v8::Persistent V8SCXMLEvent::Tmpl; v8::Handle V8SCXMLEvent::typeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::Integer::New(privData->nativeObj->type); } v8::Handle V8SCXMLEvent::nameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->name.c_str()); } v8::Handle V8SCXMLEvent::originAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->origin.c_str()); } v8::Handle V8SCXMLEvent::origintypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->origintype.c_str()); } v8::Handle V8SCXMLEvent::domAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->dom) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->dom); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8SCXMLEvent::sendidAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->sendid.c_str()); } v8::Handle V8SCXMLEvent::invokeidAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8SCXMLEventPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->invokeid.c_str()); } bool V8SCXMLEvent::hasInstance(v8::Handle value) { return getTmpl()->HasInstance(value); } } }