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

Unified Diff: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart

Issue 2568723007: Create Namer and Emitter on codegen start. (Closed)
Patch Set: Small fix. Created 4 years 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
Index: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
index 6e43f98931fef520dce9ce839420841c4327dbdd..5389c2ca642e611825cc532af17fb2f64ca445b9 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
@@ -14,6 +14,7 @@ class Collector {
// TODO(floitsch): the code-emitter task should not need a namer.
final Namer namer;
final Compiler compiler;
+ final ClosedWorld closedWorld;
final Set<ClassElement> rtiNeededClasses;
final Emitter emitter;
@@ -46,7 +47,8 @@ class Collector {
CoreClasses get coreClasses => compiler.coreClasses;
- Collector(this.compiler, this.namer, this.rtiNeededClasses, this.emitter);
+ Collector(this.compiler, this.namer, this.closedWorld, this.rtiNeededClasses,
+ this.emitter);
Set<ClassElement> computeInterceptorsReferencedFromConstants() {
Set<ClassElement> classes = new Set<ClassElement>();
@@ -129,7 +131,7 @@ class Collector {
final onlyForRti = classesOnlyNeededForRti.contains(cls);
if (!onlyForRti) {
backend.retainMetadataOf(cls);
- new FieldVisitor(compiler, namer).visitFields(cls, false,
+ new FieldVisitor(compiler, namer, closedWorld).visitFields(cls, false,
(Element member, js.Name name, js.Name accessorName,
bool needsGetter, bool needsSetter, bool needsCheckedSetter) {
bool needsAccessor = needsGetter || needsSetter;
@@ -169,8 +171,8 @@ class Collector {
/// Compute all the classes and typedefs that must be emitted.
void computeNeededDeclarations() {
// Compute needed typedefs.
- typedefsNeededForReflection = Elements.sortedByPosition(compiler
- .closedWorld.allTypedefs
+ typedefsNeededForReflection = Elements.sortedByPosition(closedWorld
+ .allTypedefs
.where(backend.isAccessibleByReflection)
.toList());

Powered by Google App Engine
This is Rietveld 408576698