| Index: Source/bindings/v8/V8NodeFilterCondition.cpp
|
| diff --git a/Source/bindings/v8/V8NodeFilterCondition.cpp b/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| index 52bafc17c07b31b87f7802f3a8bd1541d049fa3c..c5b7ccc4e33da6b980793d0ea59a6d8692fdc6ea 100644
|
| --- a/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| +++ b/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| @@ -34,15 +34,18 @@
|
| #include "V8Node.h"
|
| #include "bindings/v8/ScriptController.h"
|
| #include "bindings/v8/ScriptState.h"
|
| +#include "bindings/v8/V8HiddenPropertyName.h"
|
| #include "core/dom/Node.h"
|
| #include "core/dom/NodeFilter.h"
|
| #include "wtf/OwnArrayPtr.h"
|
|
|
| namespace WebCore {
|
|
|
| -V8NodeFilterCondition::V8NodeFilterCondition(v8::Handle<v8::Value> filter)
|
| +V8NodeFilterCondition::V8NodeFilterCondition(v8::Handle<v8::Value> filter, v8::Handle<v8::Object> owner)
|
| : m_filter(filter)
|
| {
|
| + owner->SetHiddenValue(V8HiddenPropertyName::condition(), filter);
|
| + m_filter.makeWeak(this, &makeWeakCallback);
|
| }
|
|
|
| V8NodeFilterCondition::~V8NodeFilterCondition()
|
| @@ -89,4 +92,9 @@ short V8NodeFilterCondition::acceptNode(ScriptState* state, Node* node) const
|
| return result->Int32Value();
|
| }
|
|
|
| +void V8NodeFilterCondition::makeWeakCallback(v8::Isolate*, v8::Persistent<v8::Value>*, V8NodeFilterCondition* condition)
|
| +{
|
| + condition->m_filter.clear();
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|