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

Unified Diff: runtime/lib/mirrors.cc

Issue 389573007: Remove MirroredCompilationError from the VM. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase + regen snapshot test Created 6 years, 5 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
« no previous file with comments | « no previous file | runtime/lib/mirrors_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/lib/mirrors.cc
diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc
index 5eb63fdcaf6023717ffc2bb7c75476a927245e15..463b3de856bcd4391cce27dc823b018a6f4a53c9 100644
--- a/runtime/lib/mirrors.cc
+++ b/runtime/lib/mirrors.cc
@@ -16,10 +16,6 @@
namespace dart {
-DEFINE_FLAG(bool, use_mirrored_compilation_error, false,
- "Wrap compilation errors that occur during reflective access in a "
- "MirroredCompilationError, rather than suspending the isolate.");
-
static RawInstance* CreateMirror(const String& mirror_class_name,
const Array& constructor_arguments) {
const Library& mirrors_lib = Library::Handle(Library::MirrorsLibrary());
@@ -35,28 +31,6 @@ static RawInstance* CreateMirror(const String& mirror_class_name,
}
-static void ThrowMirroredCompilationError(const String& message) {
- Array& args = Array::Handle(Array::New(1));
- args.SetAt(0, message);
-
- Exceptions::ThrowByType(Exceptions::kMirroredCompilationError, args);
- UNREACHABLE();
-}
-
-
-static void ThrowInvokeError(const Error& error) {
- if (FLAG_use_mirrored_compilation_error && error.IsLanguageError()) {
- // A compilation error that was delayed by lazy compilation.
- const LanguageError& compilation_error = LanguageError::Cast(error);
- String& message = String::Handle(compilation_error.FormatMessage());
- ThrowMirroredCompilationError(message);
- UNREACHABLE();
- }
- Exceptions::PropagateError(error);
- UNREACHABLE();
-}
-
-
// Conventions:
// * For throwing a NSM in a class klass we use its runtime type as receiver,
// i.e., klass.RareType().
@@ -102,14 +76,14 @@ static void EnsureConstructorsAreCompiled(const Function& func) {
const Error& error = Error::Handle(
isolate, cls.EnsureIsFinalized(Isolate::Current()));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
UNREACHABLE();
}
if (!func.HasCode()) {
const Error& error = Error::Handle(
isolate, Compiler::CompileFunction(isolate, func));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
UNREACHABLE();
}
}
@@ -158,7 +132,7 @@ static RawInstance* CreateParameterMirrorList(const Function& func,
const Object& result =
Object::Handle(Parser::ParseFunctionParameters(func));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
param_descriptor ^= result.raw();
@@ -350,7 +324,7 @@ static RawInstance* CreateClassMirror(const Class& cls,
const Error& error = Error::Handle(cls.EnsureIsFinalized(Isolate::Current()));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
UNREACHABLE();
}
@@ -434,7 +408,7 @@ static RawInstance* CreateLibraryDependencyMirror(const Instance& importer,
Object& metadata = Object::Handle(ns.GetMetadata());
if (metadata.IsError()) {
- ThrowInvokeError(Error::Cast(metadata));
+ Exceptions::PropagateError(Error::Cast(metadata));
UNREACHABLE();
}
@@ -590,7 +564,7 @@ static RawInstance* CreateMirrorSystem() {
static RawInstance* ReturnResult(const Object& result) {
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
if (result.IsInstance()) {
@@ -784,7 +758,7 @@ static RawAbstractType* InstantiateType(const AbstractType& type,
AbstractType& result =
AbstractType::Handle(type.InstantiateFrom(type_args, &bound_error));
if (!bound_error.IsNull()) {
- ThrowInvokeError(bound_error);
+ Exceptions::PropagateError(bound_error);
UNREACHABLE();
}
ASSERT(result.IsFinalized());
@@ -873,7 +847,7 @@ DEFINE_NATIVE_ENTRY(DeclarationMirror_metadata, 1) {
const Object& metadata = Object::Handle(library.GetMetadata(decl));
if (metadata.IsError()) {
- ThrowInvokeError(Error::Cast(metadata));
+ Exceptions::PropagateError(Error::Cast(metadata));
}
return metadata.raw();
}
@@ -962,7 +936,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_interfaces, 1) {
const Class& cls = Class::Handle(type.type_class());
const Error& error = Error::Handle(cls.EnsureIsFinalized(isolate));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
}
return cls.interfaces();
@@ -979,7 +953,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_interfaces_instantiated, 1) {
const Class& cls = Class::Handle(type.type_class());
const Error& error = Error::Handle(cls.EnsureIsFinalized(isolate));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
}
Array& interfaces = Array::Handle(cls.interfaces());
@@ -1041,7 +1015,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_members, 2) {
const Error& error = Error::Handle(klass.EnsureIsFinalized(isolate));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
}
const Array& fields = Array::Handle(klass.fields());
@@ -1088,7 +1062,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_constructors, 2) {
const Error& error = Error::Handle(klass.EnsureIsFinalized(isolate));
if (!error.IsNull()) {
- ThrowInvokeError(error);
+ Exceptions::PropagateError(error);
}
const Array& functions = Array::Handle(klass.functions());
@@ -1310,7 +1284,7 @@ DEFINE_NATIVE_ENTRY(InstanceMirror_invoke, 5) {
const Object& call_result =
Object::Handle(DartEntry::InvokeClosure(args, args_descriptor));
if (call_result.IsError()) {
- ThrowInvokeError(Error::Cast(call_result));
+ Exceptions::PropagateError(Error::Cast(call_result));
UNREACHABLE();
}
return call_result.raw();
@@ -1412,7 +1386,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invoke, 5) {
const Object& getter_result = Object::Handle(
DartEntry::InvokeFunction(function, Object::empty_array()));
if (getter_result.IsError()) {
- ThrowInvokeError(Error::Cast(getter_result));
+ Exceptions::PropagateError(Error::Cast(getter_result));
UNREACHABLE();
}
// Make room for the closure (receiver) in the argument list.
@@ -1430,7 +1404,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invoke, 5) {
const Object& call_result = Object::Handle(
DartEntry::InvokeClosure(call_args, call_args_descriptor_array));
if (call_result.IsError()) {
- ThrowInvokeError(Error::Cast(call_result));
+ Exceptions::PropagateError(Error::Cast(call_result));
UNREACHABLE();
}
return call_result.raw();
@@ -1457,7 +1431,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invoke, 5) {
Object& result = Object::Handle(
DartEntry::InvokeFunction(function, args, args_descriptor_array));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
return result.raw();
@@ -1511,7 +1485,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeSetter, 4) {
Object& result = Object::Handle(
DartEntry::InvokeFunction(setter, args));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
return result.raw();
@@ -1603,7 +1577,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeConstructor, 5) {
redirect_type ^= redirect_type.InstantiateFrom(type_arguments,
&bound_error);
if (!bound_error.IsNull()) {
- ThrowInvokeError(bound_error);
+ Exceptions::PropagateError(bound_error);
UNREACHABLE();
}
redirect_type ^= redirect_type.Canonicalize();
@@ -1674,7 +1648,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeConstructor, 5) {
args,
args_descriptor_array));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
@@ -1723,7 +1697,7 @@ DEFINE_NATIVE_ENTRY(LibraryMirror_invoke, 5) {
const Object& call_result = Object::Handle(
DartEntry::InvokeClosure(call_args, call_args_descriptor_array));
if (call_result.IsError()) {
- ThrowInvokeError(Error::Cast(call_result));
+ Exceptions::PropagateError(Error::Cast(call_result));
UNREACHABLE();
}
return call_result.raw();
@@ -1749,7 +1723,7 @@ DEFINE_NATIVE_ENTRY(LibraryMirror_invoke, 5) {
const Object& result = Object::Handle(
DartEntry::InvokeFunction(function, args, args_descriptor_array));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
return result.raw();
@@ -1806,7 +1780,7 @@ DEFINE_NATIVE_ENTRY(LibraryMirror_invokeSetter, 4) {
const Object& result = Object::Handle(
DartEntry::InvokeFunction(setter, args));
if (result.IsError()) {
- ThrowInvokeError(Error::Cast(result));
+ Exceptions::PropagateError(Error::Cast(result));
UNREACHABLE();
}
return result.raw();
« no previous file with comments | « no previous file | runtime/lib/mirrors_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698