Chromium Code Reviews| Index: runtime/vm/compiler.cc |
| =================================================================== |
| --- runtime/vm/compiler.cc (revision 40255) |
| +++ runtime/vm/compiler.cc (working copy) |
| @@ -157,6 +157,21 @@ |
| if (cls.is_marked_for_parsing()) { |
| return Error::null(); |
| } |
| + // If the class is a signature class there is no need to try and |
| + // compile it. Just finalize it directly. |
| + if (cls.IsSignatureClass()) { |
| + LongJumpScope jump; |
|
hausner
2014/09/15 18:11:31
DBC: since you depend on the Function implementati
siva
2014/09/15 20:24:39
Done.
|
| + if (setjmp(*jump.Set()) == 0) { |
| + ClassFinalizer::FinalizeClass(cls); |
| + return Error::null(); |
| + } else { |
| + Isolate* isolate = Isolate::Current(); |
| + Error& error = Error::Handle(isolate); |
| + error = isolate->object_store()->sticky_error(); |
| + isolate->object_store()->clear_sticky_error(); |
| + return error.raw(); |
| + } |
| + } |
| Isolate* isolate = Isolate::Current(); |
| // We remember all the classes that are being compiled in these lists. This |