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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/ExceptionState.h

Issue 2616023004: Remove NoExceptionStateAssertionChecker (Closed)
Patch Set: temp Created 3 years, 11 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/ExceptionState.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h b/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h
index dd1f6ddbf151b5b10021dc151d384508bfdcc062..2725a799024db97deeda08ccff1391a01a74c273 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h
+++ b/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h
@@ -156,11 +156,8 @@ class CORE_EXPORT ExceptionState {
// Should be used if an exception must not be thrown.
class CORE_EXPORT NonThrowableExceptionState final : public ExceptionState {
public:
- NonThrowableExceptionState()
- : ExceptionState(nullptr,
- ExceptionState::UnknownContext,
- nullptr,
- nullptr) {}
+ NonThrowableExceptionState();
+ NonThrowableExceptionState(const char*, int);
void throwDOMException(ExceptionCode, const String& message) override;
void throwTypeError(const String& message) override;
@@ -168,8 +165,25 @@ class CORE_EXPORT NonThrowableExceptionState final : public ExceptionState {
const String& unsanitizedMessage) override;
void throwRangeError(const String& message) override;
void rethrowV8Exception(v8::Local<v8::Value>) override;
+ ExceptionState& returnThis() { return *this; }
+
+ private:
+ const char* m_file;
+ const int m_line;
};
+// Syntax sugar for NonThrowableExceptionState.
+// This can be used as a default value of an ExceptionState parameter like this:
+//
+// Node* removeChild(Node* child, ExceptionState& = ASSERT_NO_EXCEPTION)
+#if ENABLE(ASSERT)
+#define ASSERT_NO_EXCEPTION \
+ (::blink::NonThrowableExceptionState(__FILE__, __LINE__).returnThis())
+#else
+#define ASSERT_NO_EXCEPTION \
+ (::blink::DummyExceptionStateForTesting().returnThis())
+#endif
+
// DummyExceptionStateForTesting ignores all thrown exceptions. You should not
// use DummyExceptionStateForTesting in production code, where you need to
// handle all exceptions properly. If you really need to ignore exceptions in
@@ -196,6 +210,12 @@ class CORE_EXPORT DummyExceptionStateForTesting final : public ExceptionState {
ExceptionState& returnThis() { return *this; }
};
+// Syntax sugar for DummyExceptionStateForTesting.
+// This can be used as a default value of an ExceptionState parameter like this:
+//
+// Node* removeChild(Node* child, ExceptionState& = IGNORE_EXCEPTION)
+#define IGNORE_EXCEPTION (::blink::DummyExceptionStateForTesting().returnThis())
Yuki 2017/01/06 06:34:07 IIRC, we don't want IGNORE_EXCEPTION in our codeba
+
} // namespace blink
#endif // ExceptionState_h

Powered by Google App Engine
This is Rietveld 408576698