Index: runtime/bin/dartutils.cc |
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc |
index 57dfbc59d080b472224bb2ef144feb8b19ff95c2..64c58636cd8a3db2600974de3486faa7f0df926b 100644 |
--- a/runtime/bin/dartutils.cc |
+++ b/runtime/bin/dartutils.cc |
@@ -483,6 +483,13 @@ bool DartUtils::PostInt32(Dart_Port port_id, int32_t value) { |
} |
+Dart_Handle DartUtils::GetDartClass(const char* library_url, |
+ const char* class_name) { |
+ return Dart_GetClass(Dart_LookupLibrary(Dart_NewString(library_url)), |
+ Dart_NewString(class_name)); |
+} |
+ |
+ |
Dart_Handle DartUtils::NewDartOSError() { |
// Extract the current OS error. |
OSError os_error; |
@@ -492,21 +499,29 @@ Dart_Handle DartUtils::NewDartOSError() { |
Dart_Handle DartUtils::NewDartOSError(OSError* os_error) { |
// Create a Dart OSError object with the information retrieved from the OS. |
- Dart_Handle url = Dart_NewString("dart:io"); |
- if (Dart_IsError(url)) return url; |
- Dart_Handle lib = Dart_LookupLibrary(url); |
- if (Dart_IsError(lib)) return lib; |
- Dart_Handle class_name = Dart_NewString("OSError"); |
- if (Dart_IsError(class_name)) return class_name; |
- Dart_Handle clazz = Dart_GetClass(lib, class_name); |
- if (Dart_IsError(clazz)) return clazz; |
+ Dart_Handle clazz = GetDartClass(kIOLibURL, "OSError"); |
Dart_Handle args[2]; |
args[0] = Dart_NewString(os_error->message()); |
- if (Dart_IsError(args[0])) return args[0]; |
args[1] = Dart_NewInteger(os_error->code()); |
- if (Dart_IsError(args[1])) return args[1]; |
- Dart_Handle err = Dart_New(clazz, Dart_Null(), 2, args); |
- return err; |
+ return Dart_New(clazz, Dart_Null(), 2, args); |
+} |
+ |
+ |
+Dart_Handle DartUtils::NewDartExceptionWithMessage(const char* library_url, |
+ const char* exception_name, |
+ const char* message) { |
+ // Create a Dart Exception object with a message. |
+ Dart_Handle clazz = GetDartClass(library_url, exception_name); |
+ Dart_Handle args[1]; |
+ args[0] = Dart_NewString(message); |
+ return Dart_New(clazz, Dart_Null(), 1, args); |
+} |
+ |
+ |
+Dart_Handle DartUtils::NewDartIllegalArgumentException(const char* message) { |
Bill Hesse
2012/10/31 16:33:29
Changed to ArgumentError.
|
+ return NewDartExceptionWithMessage(kCoreLibURL, |
+ "IllegalArgumentException", |
+ message); |
} |