#include "V8XPathResult.h" #include "V8NodeSet.h" namespace uscxml { using namespace Arabica::DOM; using namespace Arabica::XPath; v8::Persistent V8XPathResult::Tmpl; v8::Handle V8XPathResult::asNodeSetCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); XPathValue* xpathValue = V8DOM::toClassPtr >(self->GetInternalField(0)); V8DOM* dom = V8DOM::toClassPtr(self->GetInternalField(1)); (void)dom; v8::Handle nodeSetCtor = V8NodeSet::getTmpl()->GetFunction(); v8::Persistent nodeSetObj = v8::Persistent::New(nodeSetCtor->NewInstance()); Arabica::XPath::NodeSet* nodeSet = new Arabica::XPath::NodeSet(xpathValue->asNodeSet()); nodeSetObj->SetInternalField(0, V8DOM::toExternal(nodeSet)); nodeSetObj->SetInternalField(1, self->GetInternalField(1)); nodeSetObj.MakeWeak(0, V8NodeSet::jsDestructor); return nodeSetObj; } }