| Index: runtime/vm/parser.cc
|
| ===================================================================
|
| --- runtime/vm/parser.cc (revision 32801)
|
| +++ runtime/vm/parser.cc (working copy)
|
| @@ -353,8 +353,9 @@
|
|
|
| void Parser::ParseCompilationUnit(const Library& library,
|
| const Script& script) {
|
| - ASSERT(Isolate::Current()->long_jump_base()->IsSafeToJump());
|
| - TimerScope timer(FLAG_compiler_stats, &CompilerStats::parser_timer);
|
| + Isolate* isolate = Isolate::Current();
|
| + ASSERT(isolate->long_jump_base()->IsSafeToJump());
|
| + TimerScope timer(FLAG_compiler_stats, &CompilerStats::parser_timer, isolate);
|
| Parser parser(script, library, 0);
|
| parser.ParseTopLevel();
|
| }
|
| @@ -702,8 +703,10 @@
|
|
|
| void Parser::ParseClass(const Class& cls) {
|
| if (!cls.is_synthesized_class()) {
|
| - TimerScope timer(FLAG_compiler_stats, &CompilerStats::parser_timer);
|
| Isolate* isolate = Isolate::Current();
|
| + TimerScope timer(FLAG_compiler_stats,
|
| + &CompilerStats::parser_timer,
|
| + isolate);
|
| ASSERT(isolate->long_jump_base()->IsSafeToJump());
|
| const Script& script = Script::Handle(isolate, cls.script());
|
| const Library& lib = Library::Handle(isolate, cls.library());
|
| @@ -760,8 +763,8 @@
|
|
|
|
|
| void Parser::ParseFunction(ParsedFunction* parsed_function) {
|
| - TimerScope timer(FLAG_compiler_stats, &CompilerStats::parser_timer);
|
| Isolate* isolate = Isolate::Current();
|
| + TimerScope timer(FLAG_compiler_stats, &CompilerStats::parser_timer, isolate);
|
| ASSERT(isolate->long_jump_base()->IsSafeToJump());
|
| ASSERT(parsed_function != NULL);
|
| const Function& func = parsed_function->function();
|
| @@ -4884,6 +4887,7 @@
|
| }
|
| // Block class finalization attempts when calling into the library
|
| // tag handler.
|
| + VmToNativeTimerScope timer(isolate());
|
| isolate()->BlockClassFinalization();
|
| DartApiScope api_scope(isolate());
|
| Dart_Handle result = handler(tag,
|
|
|