Index: sky/engine/tonic/dart_wrappable.cc |
diff --git a/sky/engine/tonic/dart_wrappable.cc b/sky/engine/tonic/dart_wrappable.cc |
index 1bf69d4cf5b023ba6101340539b1f5c3b40edcde..a7ab0d2f9bc52331593a8266fc47882a19569087 100644 |
--- a/sky/engine/tonic/dart_wrappable.cc |
+++ b/sky/engine/tonic/dart_wrappable.cc |
@@ -7,8 +7,10 @@ |
#include "sky/engine/tonic/dart_class_library.h" |
#include "sky/engine/tonic/dart_error.h" |
+#include "sky/engine/tonic/dart_exception_factory.h" |
#include "sky/engine/tonic/dart_state.h" |
#include "sky/engine/tonic/dart_wrapper_info.h" |
+#include "sky/engine/wtf/text/StringBuilder.h" |
namespace blink { |
@@ -74,9 +76,17 @@ DartWrappable* DartConverterWrappable::FromArguments(Dart_NativeArguments args, |
DartWrappable* DartConverterWrappable::FromArgumentsWithNullCheck( |
Dart_NativeArguments args, int index, Dart_Handle& exception) { |
- Dart_Handle handle = Dart_GetNativeArgument(args, index); |
- if (Dart_IsNull(handle)) |
+ Dart_Handle handle = Dart_GetNativeArgument(args, index); |
+ if (Dart_IsNull(handle)) { |
+ DartState* state = DartState::Current(); |
+ StringBuilder message; |
+ message.appendLiteral("Argument "); |
+ message.appendNumber(index); |
+ message.appendLiteral(" cannot be null."); |
+ exception = state->exception_factory().CreateException("ArgumentError", |
+ message.toString()); |
return nullptr; |
+ } |
intptr_t native_fields[DartWrappable::kNumberOfNativeFields]; |
Dart_Handle result = Dart_GetNativeFieldsOfArgument( |
args, index, DartWrappable::kNumberOfNativeFields, native_fields); |