| Index: Source/bindings/v8/V8NodeFilterCondition.cpp
|
| diff --git a/Source/bindings/v8/V8NodeFilterCondition.cpp b/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| index 107b558bf6a8d8dfd9b4e250c29cc6bc61cbe59a..b7e032a7964941e67f5fc5c7c95bc70a04cb494f 100644
|
| --- a/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| +++ b/Source/bindings/v8/V8NodeFilterCondition.cpp
|
| @@ -33,7 +33,6 @@
|
|
|
| #include "V8Node.h"
|
| #include "bindings/v8/ScriptController.h"
|
| -#include "bindings/v8/ScriptState.h"
|
| #include "bindings/v8/V8HiddenValue.h"
|
| #include "core/dom/Node.h"
|
| #include "core/dom/NodeFilter.h"
|
| @@ -42,7 +41,8 @@
|
| namespace WebCore {
|
|
|
| V8NodeFilterCondition::V8NodeFilterCondition(v8::Handle<v8::Value> filter, v8::Handle<v8::Object> owner, v8::Isolate* isolate)
|
| - : m_filter(isolate, filter)
|
| + : m_scriptState(NewScriptState::current(isolate))
|
| + , m_filter(isolate, filter)
|
| {
|
| V8HiddenValue::setHiddenValue(isolate, owner, V8HiddenValue::condition(isolate), filter);
|
| m_filter.setWeak(this, &setWeakCallback);
|
| @@ -52,10 +52,10 @@ V8NodeFilterCondition::~V8NodeFilterCondition()
|
| {
|
| }
|
|
|
| -short V8NodeFilterCondition::acceptNode(ScriptState* state, Node* node) const
|
| +short V8NodeFilterCondition::acceptNode(Node* node, ExceptionState& exceptionState) const
|
| {
|
| - v8::Isolate* isolate = state->isolate();
|
| - ASSERT(isolate->InContext());
|
| + v8::Isolate* isolate = m_scriptState->isolate();
|
| + ASSERT(!m_scriptState->context().IsEmpty());
|
| v8::HandleScope handleScope(isolate);
|
| v8::Handle<v8::Value> filter = m_filter.newLocal(isolate);
|
| ASSERT(!filter.IsEmpty());
|
| @@ -72,20 +72,20 @@ short V8NodeFilterCondition::acceptNode(ScriptState* state, Node* node) const
|
| else {
|
| v8::Local<v8::Value> value = filter->ToObject()->Get(v8AtomicString(isolate, "acceptNode"));
|
| if (value.IsEmpty() || !value->IsFunction()) {
|
| - throwTypeError("NodeFilter object does not have an acceptNode function", state->isolate());
|
| + throwTypeError("NodeFilter object does not have an acceptNode function", isolate);
|
| return NodeFilter::FILTER_REJECT;
|
| }
|
| callback = v8::Handle<v8::Function>::Cast(value);
|
| }
|
|
|
| OwnPtr<v8::Handle<v8::Value>[]> info = adoptArrayPtr(new v8::Handle<v8::Value>[1]);
|
| - info[0] = toV8(node, v8::Handle<v8::Object>(), state->isolate());
|
| + info[0] = toV8(node, v8::Handle<v8::Object>(), isolate);
|
|
|
| - v8::Handle<v8::Object> object = isolate->GetCurrentContext()->Global();
|
| - v8::Handle<v8::Value> result = ScriptController::callFunction(state->executionContext(), callback, object, 1, info.get(), isolate);
|
| + v8::Handle<v8::Object> object = m_scriptState->context()->Global();
|
| + v8::Handle<v8::Value> result = ScriptController::callFunction(m_scriptState->executionContext(), callback, object, 1, info.get(), isolate);
|
|
|
| if (exceptionCatcher.HasCaught()) {
|
| - state->setException(exceptionCatcher.Exception());
|
| + exceptionState.rethrowV8Exception(exceptionCatcher.Exception());
|
| return NodeFilter::FILTER_REJECT;
|
| }
|
|
|
|
|