Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(614)

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptPromisePropertyBase.cpp

Issue 2817533003: Replace ASSERT, RELEASE_ASSERT, and ASSERT_NOT_REACHED in bindings (Closed)
Patch Set: fixed dcheck build error Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "bindings/core/v8/ScriptPromisePropertyBase.h" 5 #include "bindings/core/v8/ScriptPromisePropertyBase.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "bindings/core/v8/ScopedPersistent.h" 8 #include "bindings/core/v8/ScopedPersistent.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/V8Binding.h" 10 #include "bindings/core/v8/V8Binding.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 case kResolved: 58 case kResolved:
59 case kRejected: 59 case kRejected:
60 ResolveOrRejectInternal(resolver); 60 ResolveOrRejectInternal(resolver);
61 break; 61 break;
62 } 62 }
63 63
64 return ScriptPromise(script_state, promise); 64 return ScriptPromise(script_state, promise);
65 } 65 }
66 66
67 void ScriptPromisePropertyBase::ResolveOrReject(State target_state) { 67 void ScriptPromisePropertyBase::ResolveOrReject(State target_state) {
68 ASSERT(GetExecutionContext()); 68 DCHECK(GetExecutionContext());
69 ASSERT(state_ == kPending); 69 DCHECK_EQ(state_, kPending);
70 ASSERT(target_state == kResolved || target_state == kRejected); 70 DCHECK(target_state == kResolved || target_state == kRejected);
71 71
72 state_ = target_state; 72 state_ = target_state;
73 73
74 v8::HandleScope handle_scope(isolate_); 74 v8::HandleScope handle_scope(isolate_);
75 size_t i = 0; 75 size_t i = 0;
76 while (i < wrappers_.size()) { 76 while (i < wrappers_.size()) {
77 const std::unique_ptr<ScopedPersistent<v8::Object>>& persistent = 77 const std::unique_ptr<ScopedPersistent<v8::Object>>& persistent =
78 wrappers_[i]; 78 wrappers_[i];
79 if (persistent->IsEmpty()) { 79 if (persistent->IsEmpty()) {
80 // wrapper has died. 80 // wrapper has died.
(...skipping 21 matching lines...) Expand all
102 CheckThis(); 102 CheckThis();
103 ClearWrappers(); 103 ClearWrappers();
104 state_ = kPending; 104 state_ = kPending;
105 } 105 }
106 106
107 void ScriptPromisePropertyBase::ResolveOrRejectInternal( 107 void ScriptPromisePropertyBase::ResolveOrRejectInternal(
108 v8::Local<v8::Promise::Resolver> resolver) { 108 v8::Local<v8::Promise::Resolver> resolver) {
109 v8::Local<v8::Context> context = resolver->CreationContext(); 109 v8::Local<v8::Context> context = resolver->CreationContext();
110 switch (state_) { 110 switch (state_) {
111 case kPending: 111 case kPending:
112 ASSERT_NOT_REACHED(); 112 NOTREACHED();
113 break; 113 break;
114 case kResolved: 114 case kResolved:
115 resolver->Resolve(context, ResolvedValue(isolate_, context->Global())) 115 resolver->Resolve(context, ResolvedValue(isolate_, context->Global()))
116 .ToChecked(); 116 .ToChecked();
117 break; 117 break;
118 case kRejected: 118 case kRejected:
119 resolver->Reject(context, RejectedValue(isolate_, context->Global())) 119 resolver->Reject(context, RejectedValue(isolate_, context->Global()))
120 .ToChecked(); 120 .ToChecked();
121 break; 121 break;
122 } 122 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 if (!wrapper.IsEmpty()) { 162 if (!wrapper.IsEmpty()) {
163 // TODO(peria): Use deleteProperty() if http://crbug.com/v8/6227 is fixed. 163 // TODO(peria): Use deleteProperty() if http://crbug.com/v8/6227 is fixed.
164 ResolverSymbol().Set(wrapper, v8::Undefined(isolate_)); 164 ResolverSymbol().Set(wrapper, v8::Undefined(isolate_));
165 PromiseSymbol().Set(wrapper, v8::Undefined(isolate_)); 165 PromiseSymbol().Set(wrapper, v8::Undefined(isolate_));
166 } 166 }
167 } 167 }
168 wrappers_.Clear(); 168 wrappers_.Clear();
169 } 169 }
170 170
171 void ScriptPromisePropertyBase::CheckThis() { 171 void ScriptPromisePropertyBase::CheckThis() {
172 RELEASE_ASSERT(this); 172 CHECK(this);
173 } 173 }
174 174
175 void ScriptPromisePropertyBase::CheckWrappers() { 175 void ScriptPromisePropertyBase::CheckWrappers() {
176 for (WeakPersistentSet::iterator i = wrappers_.begin(); i != wrappers_.end(); 176 for (WeakPersistentSet::iterator i = wrappers_.begin(); i != wrappers_.end();
177 ++i) { 177 ++i) {
178 RELEASE_ASSERT(*i); 178 CHECK(*i);
179 } 179 }
180 } 180 }
181 181
182 V8PrivateProperty::Symbol ScriptPromisePropertyBase::PromiseSymbol() { 182 V8PrivateProperty::Symbol ScriptPromisePropertyBase::PromiseSymbol() {
183 switch (name_) { 183 switch (name_) {
184 #define P(Interface, Name) \ 184 #define P(Interface, Name) \
185 case Name: \ 185 case Name: \
186 return V8PrivateProperty::V8_PRIVATE_PROPERTY_GETTER_NAME( \ 186 return V8PrivateProperty::V8_PRIVATE_PROPERTY_GETTER_NAME( \
187 Interface, Name##Promise)(isolate_); 187 Interface, Name##Promise)(isolate_);
188 188
(...skipping 18 matching lines...) Expand all
207 } 207 }
208 NOTREACHED(); 208 NOTREACHED();
209 return V8PrivateProperty::GetSymbol(isolate_, "noResolver"); 209 return V8PrivateProperty::GetSymbol(isolate_, "noResolver");
210 } 210 }
211 211
212 DEFINE_TRACE(ScriptPromisePropertyBase) { 212 DEFINE_TRACE(ScriptPromisePropertyBase) {
213 ContextClient::Trace(visitor); 213 ContextClient::Trace(visitor);
214 } 214 }
215 215
216 } // namespace blink 216 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698