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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp

Issue 2144093002: Adding checks for V8 functions returning Maybe<bool> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding NOTREACHED if Delete result IsNothing for LazyFieldGetterInner Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp
index 35322d3ef63b79e4ac2a61ae8e8e7abb60cd89fe..4df6d54ef3372b092f73767cb1602b587c6dd1de 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.cpp
@@ -183,7 +183,9 @@ void ScriptPromise::InternalResolver::resolve(v8::Local<v8::Value> value)
{
if (m_resolver.isEmpty())
return;
- m_resolver.v8Value().As<v8::Promise::Resolver>()->Resolve(m_resolver.context(), value);
+ if (m_resolver.v8Value().As<v8::Promise::Resolver>()->Resolve(
haraken 2016/07/15 02:38:41 Can you use v8Call macros in V8BindingMacros.h? Y
+ m_resolver.context(), value).IsNothing())
+ return;
clear();
}
@@ -191,7 +193,9 @@ void ScriptPromise::InternalResolver::reject(v8::Local<v8::Value> value)
{
if (m_resolver.isEmpty())
return;
- m_resolver.v8Value().As<v8::Promise::Resolver>()->Reject(m_resolver.context(), value);
+ if (m_resolver.v8Value().As<v8::Promise::Resolver>()->Reject(
+ m_resolver.context(), value).IsNothing())
+ return;
clear();
}
@@ -305,7 +309,8 @@ v8::Local<v8::Promise> ScriptPromise::rejectRaw(ScriptState* scriptState, v8::Lo
if (!v8::Promise::Resolver::New(scriptState->context()).ToLocal(&resolver))
return v8::Local<v8::Promise>();
v8::Local<v8::Promise> promise = resolver->GetPromise();
- resolver->Reject(scriptState->context(), value);
+ if (resolver->Reject(scriptState->context(), value).IsNothing())
+ return v8::Local<v8::Promise>();
return promise;
}

Powered by Google App Engine
This is Rietveld 408576698