Index: Source/bindings/v8/V8Binding.cpp |
diff --git a/Source/bindings/v8/V8Binding.cpp b/Source/bindings/v8/V8Binding.cpp |
index fcbc7de2cffce3ba2c561474ac4439650055e12c..2aca7c58e5714cf3419485b8710f24f18e9cf887 100644 |
--- a/Source/bindings/v8/V8Binding.cpp |
+++ b/Source/bindings/v8/V8Binding.cpp |
@@ -33,6 +33,7 @@ |
#include "V8DOMStringList.h" |
#include "V8Element.h" |
+#include "V8NodeFilter.h" |
#include "V8Window.h" |
#include "V8WorkerGlobalScope.h" |
#include "V8XPathNSResolver.h" |
@@ -142,9 +143,17 @@ Vector<v8::Handle<v8::Value> > toVectorOfArguments(const v8::FunctionCallbackInf |
return result; |
} |
-PassRefPtr<NodeFilter> toNodeFilter(v8::Handle<v8::Value> callback) |
+PassRefPtr<NodeFilter> toNodeFilter(v8::Handle<v8::Value> callback, v8::Isolate* isolate) |
{ |
- return NodeFilter::create(V8NodeFilterCondition::create(callback)); |
+ RefPtr<NodeFilter> filter = NodeFilter::create(); |
+ |
+ // FIXME: Should pass in appropriate creationContext |
+ v8::Handle<v8::Object> filterWrapper = toV8(filter.get(), v8::Handle<v8::Object>(), isolate).As<v8::Object>(); |
+ |
+ RefPtr<NodeFilterCondition> condition = V8NodeFilterCondition::create(callback, filterWrapper); |
+ filter->setCondition(condition.release()); |
+ |
+ return filter.release(); |
} |
static const int8_t kMaxInt8 = 127; |