OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/compiler.h" | 5 #include "vm/compiler.h" |
6 | 6 |
7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
8 | 8 |
9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
10 #include "vm/block_scheduler.h" | 10 #include "vm/block_scheduler.h" |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 Parser::ParseClass(parse_class); | 337 Parser::ParseClass(parse_class); |
338 } | 338 } |
339 | 339 |
340 // Finalize these classes. | 340 // Finalize these classes. |
341 for (intptr_t i = (parse_list.Length() - 1); i >=0 ; i--) { | 341 for (intptr_t i = (parse_list.Length() - 1); i >=0 ; i--) { |
342 parse_class ^= parse_list.At(i); | 342 parse_class ^= parse_list.At(i); |
343 ASSERT(!parse_class.IsNull()); | 343 ASSERT(!parse_class.IsNull()); |
344 ClassFinalizer::FinalizeClass(parse_class); | 344 ClassFinalizer::FinalizeClass(parse_class); |
345 parse_class.reset_is_marked_for_parsing(); | 345 parse_class.reset_is_marked_for_parsing(); |
346 } | 346 } |
| 347 for (intptr_t i = (patch_list.Length() - 1); i >=0 ; i--) { |
| 348 parse_class ^= patch_list.At(i); |
| 349 ASSERT(!parse_class.IsNull()); |
| 350 ClassFinalizer::FinalizeClass(parse_class); |
| 351 parse_class.reset_is_marked_for_parsing(); |
| 352 } |
347 | 353 |
348 return Error::null(); | 354 return Error::null(); |
349 } else { | 355 } else { |
350 // Reset the marked for parsing flags. | 356 // Reset the marked for parsing flags. |
351 for (intptr_t i = 0; i < parse_list.Length(); i++) { | 357 for (intptr_t i = 0; i < parse_list.Length(); i++) { |
352 parse_class ^= parse_list.At(i); | 358 parse_class ^= parse_list.At(i); |
353 if (parse_class.is_marked_for_parsing()) { | 359 if (parse_class.is_marked_for_parsing()) { |
354 parse_class.reset_is_marked_for_parsing(); | 360 parse_class.reset_is_marked_for_parsing(); |
355 } | 361 } |
356 } | 362 } |
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1329 const Object& result = | 1335 const Object& result = |
1330 PassiveObject::Handle(isolate->object_store()->sticky_error()); | 1336 PassiveObject::Handle(isolate->object_store()->sticky_error()); |
1331 isolate->object_store()->clear_sticky_error(); | 1337 isolate->object_store()->clear_sticky_error(); |
1332 return result.raw(); | 1338 return result.raw(); |
1333 } | 1339 } |
1334 UNREACHABLE(); | 1340 UNREACHABLE(); |
1335 return Object::null(); | 1341 return Object::null(); |
1336 } | 1342 } |
1337 | 1343 |
1338 } // namespace dart | 1344 } // namespace dart |
OLD | NEW |