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

Side by Side Diff: runtime/vm/kernel_reader.cc

Issue 2886873008: [kernel] Streaming ScopeBuilder (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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/kernel_reader.h" 5 #include "vm/kernel_reader.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "vm/dart_api_impl.h" 9 #include "vm/dart_api_impl.h"
10 #include "vm/kernel_binary.h" 10 #include "vm/kernel_binary.h"
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 field.set_has_initializer(kernel_field->initializer() != NULL); 427 field.set_has_initializer(kernel_field->initializer() != NULL);
428 GenerateFieldAccessors(klass, field, kernel_field); 428 GenerateFieldAccessors(klass, field, kernel_field);
429 fields_.Add(&field); 429 fields_.Add(&field);
430 } 430 }
431 klass.AddFields(fields_); 431 klass.AddFields(fields_);
432 } 432 }
433 433
434 for (intptr_t i = 0; i < kernel_klass->constructors().length(); i++) { 434 for (intptr_t i = 0; i < kernel_klass->constructors().length(); i++) {
435 Constructor* kernel_constructor = kernel_klass->constructors()[i]; 435 Constructor* kernel_constructor = kernel_klass->constructors()[i];
436 ActiveMemberScope active_member_scope(&active_class_, kernel_constructor); 436 ActiveMemberScope active_member_scope(&active_class_, kernel_constructor);
437 ActiveFunctionScope active_function_scope(&active_class_,
438 kernel_constructor->function());
439 437
440 const dart::String& name = 438 const dart::String& name =
441 H.DartConstructorName(kernel_constructor->canonical_name()); 439 H.DartConstructorName(kernel_constructor->canonical_name());
442 Function& function = dart::Function::ZoneHandle( 440 Function& function = dart::Function::ZoneHandle(
443 Z, dart::Function::New(name, RawFunction::kConstructor, 441 Z, dart::Function::New(name, RawFunction::kConstructor,
444 false, // is_static 442 false, // is_static
445 kernel_constructor->IsConst(), 443 kernel_constructor->IsConst(),
446 false, // is_abstract 444 false, // is_abstract
447 kernel_constructor->IsExternal(), 445 kernel_constructor->IsExternal(),
448 false, // is_native 446 false, // is_native
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 return klass; 480 return klass;
483 } 481 }
484 482
485 483
486 void KernelReader::ReadProcedure(const dart::Library& library, 484 void KernelReader::ReadProcedure(const dart::Library& library,
487 const dart::Class& owner, 485 const dart::Class& owner,
488 Procedure* kernel_procedure, 486 Procedure* kernel_procedure,
489 Class* kernel_klass) { 487 Class* kernel_klass) {
490 ActiveClassScope active_class_scope(&active_class_, kernel_klass, &owner); 488 ActiveClassScope active_class_scope(&active_class_, kernel_klass, &owner);
491 ActiveMemberScope active_member_scope(&active_class_, kernel_procedure); 489 ActiveMemberScope active_member_scope(&active_class_, kernel_procedure);
492 ActiveFunctionScope active_function_scope(&active_class_,
493 kernel_procedure->function());
494 490
495 const dart::String& name = 491 const dart::String& name =
496 H.DartProcedureName(kernel_procedure->canonical_name()); 492 H.DartProcedureName(kernel_procedure->canonical_name());
497 bool is_method = kernel_klass != NULL && !kernel_procedure->IsStatic(); 493 bool is_method = kernel_klass != NULL && !kernel_procedure->IsStatic();
498 bool is_abstract = kernel_procedure->IsAbstract(); 494 bool is_abstract = kernel_procedure->IsAbstract();
499 bool is_external = kernel_procedure->IsExternal(); 495 bool is_external = kernel_procedure->IsExternal();
500 dart::String* native_name = NULL; 496 dart::String* native_name = NULL;
501 if (is_external) { 497 if (is_external) {
502 // Maybe it has a native implementation, which is not external as far as 498 // Maybe it has a native implementation, which is not external as far as
503 // the VM is concerned because it does have an implementation. Check for 499 // the VM is concerned because it does have an implementation. Check for
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 initializer_fun.set_is_debuggable(false); 938 initializer_fun.set_is_debuggable(false);
943 initializer_fun.set_is_reflectable(false); 939 initializer_fun.set_is_reflectable(false);
944 initializer_fun.set_is_inlinable(false); 940 initializer_fun.set_is_inlinable(false);
945 return new (zone) ParsedFunction(thread, initializer_fun); 941 return new (zone) ParsedFunction(thread, initializer_fun);
946 } 942 }
947 943
948 944
949 } // namespace kernel 945 } // namespace kernel
950 } // namespace dart 946 } // namespace dart
951 #endif // !defined(DART_PRECOMPILED_RUNTIME) 947 #endif // !defined(DART_PRECOMPILED_RUNTIME)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698