OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 filter_.SetPhantom(); | 56 filter_.SetPhantom(); |
57 } | 57 } |
58 } | 58 } |
59 | 59 |
60 V8NodeFilterCondition::~V8NodeFilterCondition() {} | 60 V8NodeFilterCondition::~V8NodeFilterCondition() {} |
61 | 61 |
62 unsigned V8NodeFilterCondition::AcceptNode( | 62 unsigned V8NodeFilterCondition::AcceptNode( |
63 Node* node, | 63 Node* node, |
64 ExceptionState& exception_state) const { | 64 ExceptionState& exception_state) const { |
65 v8::Isolate* isolate = script_state_->GetIsolate(); | 65 v8::Isolate* isolate = script_state_->GetIsolate(); |
66 ASSERT(!script_state_->GetContext().IsEmpty()); | 66 DCHECK(!script_state_->GetContext().IsEmpty()); |
67 v8::HandleScope handle_scope(isolate); | 67 v8::HandleScope handle_scope(isolate); |
68 v8::Local<v8::Value> filter = filter_.NewLocal(isolate); | 68 v8::Local<v8::Value> filter = filter_.NewLocal(isolate); |
69 | 69 |
70 ASSERT(filter.IsEmpty() || filter->IsObject()); | 70 DCHECK(filter.IsEmpty() || filter->IsObject()); |
71 if (filter.IsEmpty()) | 71 if (filter.IsEmpty()) |
72 return NodeFilter::kFilterAccept; | 72 return NodeFilter::kFilterAccept; |
73 | 73 |
74 v8::TryCatch exception_catcher(isolate); | 74 v8::TryCatch exception_catcher(isolate); |
75 | 75 |
76 v8::Local<v8::Function> callback; | 76 v8::Local<v8::Function> callback; |
77 v8::Local<v8::Value> receiver; | 77 v8::Local<v8::Value> receiver; |
78 if (filter->IsFunction()) { | 78 if (filter->IsFunction()) { |
79 UseCounter::Count(CurrentExecutionContext(isolate), | 79 UseCounter::Count(CurrentExecutionContext(isolate), |
80 UseCounter::kNodeFilterIsFunction); | 80 UseCounter::kNodeFilterIsFunction); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 v8::Local<v8::Value> result; | 113 v8::Local<v8::Value> result; |
114 v8::Local<v8::Value> args[] = {node_wrapper}; | 114 v8::Local<v8::Value> args[] = {node_wrapper}; |
115 if (!V8ScriptRunner::CallFunction(callback, | 115 if (!V8ScriptRunner::CallFunction(callback, |
116 ExecutionContext::From(script_state_.Get()), | 116 ExecutionContext::From(script_state_.Get()), |
117 receiver, 1, args, isolate) | 117 receiver, 1, args, isolate) |
118 .ToLocal(&result)) { | 118 .ToLocal(&result)) { |
119 exception_state.RethrowV8Exception(exception_catcher.Exception()); | 119 exception_state.RethrowV8Exception(exception_catcher.Exception()); |
120 return NodeFilter::kFilterReject; | 120 return NodeFilter::kFilterReject; |
121 } | 121 } |
122 | 122 |
123 ASSERT(!result.IsEmpty()); | 123 DCHECK(!result.IsEmpty()); |
124 | 124 |
125 uint32_t uint32_value; | 125 uint32_t uint32_value; |
126 if (!V8Call(result->Uint32Value(script_state_->GetContext()), uint32_value, | 126 if (!V8Call(result->Uint32Value(script_state_->GetContext()), uint32_value, |
127 exception_catcher)) { | 127 exception_catcher)) { |
128 exception_state.RethrowV8Exception(exception_catcher.Exception()); | 128 exception_state.RethrowV8Exception(exception_catcher.Exception()); |
129 return NodeFilter::kFilterReject; | 129 return NodeFilter::kFilterReject; |
130 } | 130 } |
131 return uint32_value; | 131 return uint32_value; |
132 } | 132 } |
133 | 133 |
134 } // namespace blink | 134 } // namespace blink |
OLD | NEW |