Index: runtime/vm/exceptions.cc |
diff --git a/runtime/vm/exceptions.cc b/runtime/vm/exceptions.cc |
index d8cd5d6cefeb96501befd813ecc6cd6225bc08f6..edfad992738d998c5147186c3a5be71d1d14b771 100644 |
--- a/runtime/vm/exceptions.cc |
+++ b/runtime/vm/exceptions.cc |
@@ -651,6 +651,13 @@ void Exceptions::ThrowRangeError(const char* argument_name, |
} |
+void Exceptions::ThrowCompileTimeError(const LanguageError& error) { |
+ const Array& args = Array::Handle(Array::New(1)); |
+ args.SetAt(0, String::Handle(error.FormatMessage())); |
+ Exceptions::ThrowByType(Exceptions::kCompileTimeError, args); |
+} |
+ |
+ |
RawObject* Exceptions::Create(ExceptionType type, const Array& arguments) { |
Library& library = Library::Handle(); |
const String* class_name = NULL; |
@@ -724,6 +731,11 @@ RawObject* Exceptions::Create(ExceptionType type, const Array& arguments) { |
case kCyclicInitializationError: |
library = Library::CoreLibrary(); |
class_name = &Symbols::CyclicInitializationError(); |
+ break; |
+ case kCompileTimeError: |
+ library = Library::CoreLibrary(); |
+ class_name = &Symbols::_CompileTimeError(); |
+ break; |
} |
return DartLibraryCalls::InstanceCreate(library, |