Index: runtime/bin/dartutils.h |
diff --git a/runtime/bin/dartutils.h b/runtime/bin/dartutils.h |
index e660da33c726a2555ae8bb40f3f45a12044a86b8..801c15a7b8543137cb892847158e8c355dbdb90d 100644 |
--- a/runtime/bin/dartutils.h |
+++ b/runtime/bin/dartutils.h |
@@ -10,6 +10,18 @@ |
#include "include/dart_api.h" |
#include "platform/globals.h" |
+/* Handle error handles returned from Dart API functions. If a value |
+ * is an error, use Dart_PropagateError to throw it to the enclosing |
+ * Dart activation. Otherwise, return the original handle. |
+ * This function can be used to wrap most API functions, but API |
+ * functions can also be nested without this error check, since all |
+ * API functions return any error handles passed in as arguments, unchanged. |
+ */ |
+static Dart_Handle ThrowIfError(Dart_Handle handle) { |
+ if (Dart_IsError(handle)) Dart_PropagateError(handle); |
+ return handle; |
+} |
+ |
class CommandLineOptions { |
public: |
explicit CommandLineOptions(int max_count) |
@@ -105,10 +117,16 @@ class DartUtils { |
static bool PostNull(Dart_Port port_id); |
static bool PostInt32(Dart_Port port_id, int32_t value); |
+ static Dart_Handle GetDartClass(const char* library_url, |
+ const char* class_name); |
// Create a new Dart OSError object with the current OS error. |
static Dart_Handle NewDartOSError(); |
// Create a new Dart OSError object with the provided OS error. |
static Dart_Handle NewDartOSError(OSError* os_error); |
+ static Dart_Handle NewDartExceptionWithMessage(const char* library_url, |
+ const char* exception_name, |
+ const char* message); |
+ static Dart_Handle NewDartArgumentError(const char* message); |
static void SetOriginalWorkingDirectory(); |