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

Side by Side Diff: pkg/compiler/lib/src/js_backend/enqueuer.dart

Issue 2378063002: Remove Enqueuer argument from Backend.registerStaticUse (Closed)
Patch Set: Updated cf. comments. Created 4 years, 2 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) 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 library dart2js.js.enqueue; 5 library dart2js.js.enqueue;
6 6
7 import 'dart:collection' show Queue; 7 import 'dart:collection' show Queue;
8 8
9 import '../common/backend_api.dart' show Backend; 9 import '../common/backend_api.dart' show Backend;
10 import '../common/codegen.dart' show CodegenWorkItem; 10 import '../common/codegen.dart' show CodegenWorkItem;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 } 127 }
128 queue.add(new CodegenWorkItem(_compiler, element)); 128 queue.add(new CodegenWorkItem(_compiler, element));
129 if (options.dumpInfo) { 129 if (options.dumpInfo) {
130 // TODO(sigmund): add other missing dependencies (internals, selectors 130 // TODO(sigmund): add other missing dependencies (internals, selectors
131 // enqueued after allocations), also enable only for the codegen enqueuer. 131 // enqueued after allocations), also enable only for the codegen enqueuer.
132 _compiler.dumpInfoTask 132 _compiler.dumpInfoTask
133 .registerDependency(_compiler.currentElement, element); 133 .registerDependency(_compiler.currentElement, element);
134 } 134 }
135 } 135 }
136 136
137 /// Apply the [worldImpact] of processing [element] to this enqueuer. 137 void applyImpact(WorldImpact worldImpact, {Element impactSource}) {
138 void applyImpact(Element element, WorldImpact worldImpact) {
139 _compiler.impactStrategy 138 _compiler.impactStrategy
140 .visitImpact(element, worldImpact, impactVisitor, impactUse); 139 .visitImpact(impactSource, worldImpact, impactVisitor, impactUse);
141 } 140 }
142 141
143 void registerInstantiatedType(InterfaceType type, {bool mirrorUsage: false}) { 142 void registerInstantiatedType(InterfaceType type, {bool mirrorUsage: false}) {
144 task.measure(() { 143 task.measure(() {
145 ClassElement cls = type.element; 144 ClassElement cls = type.element;
146 bool isNative = backend.isNative(cls); 145 bool isNative = backend.isNative(cls);
147 _universe.registerTypeInstantiation(type, 146 _universe.registerTypeInstantiation(type,
148 isNative: isNative, 147 isNative: isNative,
149 byMirrors: mirrorUsage, onImplemented: (ClassElement cls) { 148 byMirrors: mirrorUsage, onImplemented: (ClassElement cls) {
150 backend.registerImplementedClass(cls, this, globalDependencies); 149 backend.registerImplementedClass(cls, this, globalDependencies);
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 */ 505 */
507 void registerStaticUse(StaticUse staticUse) { 506 void registerStaticUse(StaticUse staticUse) {
508 strategy.processStaticUse(this, staticUse); 507 strategy.processStaticUse(this, staticUse);
509 } 508 }
510 509
511 void registerStaticUseInternal(StaticUse staticUse) { 510 void registerStaticUseInternal(StaticUse staticUse) {
512 Element element = staticUse.element; 511 Element element = staticUse.element;
513 assert(invariant(element, element.isDeclaration, 512 assert(invariant(element, element.isDeclaration,
514 message: "Element ${element} is not the declaration.")); 513 message: "Element ${element} is not the declaration."));
515 _universe.registerStaticUse(staticUse); 514 _universe.registerStaticUse(staticUse);
516 backend.registerStaticUse(element, this); 515 backend.registerStaticUse(element, forResolution: false);
517 bool addElement = true; 516 bool addElement = true;
518 switch (staticUse.kind) { 517 switch (staticUse.kind) {
519 case StaticUseKind.STATIC_TEAR_OFF: 518 case StaticUseKind.STATIC_TEAR_OFF:
520 backend.registerGetOfStaticFunction(this); 519 backend.registerGetOfStaticFunction(this);
521 break; 520 break;
522 case StaticUseKind.FIELD_GET: 521 case StaticUseKind.FIELD_GET:
523 case StaticUseKind.FIELD_SET: 522 case StaticUseKind.FIELD_SET:
524 case StaticUseKind.CLOSURE: 523 case StaticUseKind.CLOSURE:
525 // TODO(johnniwinther): Avoid this. Currently [FIELD_GET] and 524 // TODO(johnniwinther): Avoid this. Currently [FIELD_GET] and
526 // [FIELD_SET] contains [BoxFieldElement]s which we cannot enqueue. 525 // [FIELD_SET] contains [BoxFieldElement]s which we cannot enqueue.
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 @override 699 @override
701 void visitStaticUse(StaticUse staticUse) { 700 void visitStaticUse(StaticUse staticUse) {
702 enqueuer.registerStaticUse(staticUse); 701 enqueuer.registerStaticUse(staticUse);
703 } 702 }
704 703
705 @override 704 @override
706 void visitTypeUse(TypeUse typeUse) { 705 void visitTypeUse(TypeUse typeUse) {
707 enqueuer.registerTypeUse(typeUse); 706 enqueuer.registerTypeUse(typeUse);
708 } 707 }
709 } 708 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698