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

Side by Side Diff: pkg/compiler/lib/src/enqueue.dart

Issue 1132363003: dart2js: keep track of non-final static fields. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 | Annotate | Revision Log
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 part of dart2js; 5 part of dart2js;
6 6
7 typedef ItemCompilationContext ItemCompilationContextCreator(); 7 typedef ItemCompilationContext ItemCompilationContextCreator();
8 8
9 class EnqueueTask extends CompilerTask { 9 class EnqueueTask extends CompilerTask {
10 final ResolutionEnqueuer resolution; 10 final ResolutionEnqueuer resolution;
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 } 509 }
510 510
511 /** 511 /**
512 * Documentation wanted -- johnniwinther 512 * Documentation wanted -- johnniwinther
513 * 513 *
514 * Invariant: [element] must be a declaration element. 514 * Invariant: [element] must be a declaration element.
515 */ 515 */
516 void registerStaticUse(Element element) { 516 void registerStaticUse(Element element) {
517 if (element == null) return; 517 if (element == null) return;
518 assert(invariant(element, element.isDeclaration)); 518 assert(invariant(element, element.isDeclaration));
519 if (Elements.isStaticOrTopLevel(element) && element.isField) {
520 universe.registerStaticFieldUse(element);
521 }
519 addToWorkList(element); 522 addToWorkList(element);
520 compiler.backend.registerStaticUse(element, this); 523 compiler.backend.registerStaticUse(element, this);
521 } 524 }
522 525
523 void registerGetOfStaticFunction(FunctionElement element) { 526 void registerGetOfStaticFunction(FunctionElement element) {
524 registerStaticUse(element); 527 registerStaticUse(element);
525 compiler.backend.registerGetOfStaticFunction(this); 528 compiler.backend.registerGetOfStaticFunction(this);
526 universe.staticFunctionsNeedingGetter.add(element); 529 universe.staticFunctionsNeedingGetter.add(element);
527 } 530 }
528 531
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 void processWorkItem(void f(WorkItem work), WorkItem work) { 912 void processWorkItem(void f(WorkItem work), WorkItem work) {
910 f(work); 913 f(work);
911 } 914 }
912 } 915 }
913 916
914 void removeFromSet(Map<String, Set<Element>> map, Element element) { 917 void removeFromSet(Map<String, Set<Element>> map, Element element) {
915 Set<Element> set = map[element.name]; 918 Set<Element> set = map[element.name];
916 if (set == null) return; 919 if (set == null) return;
917 set.remove(element); 920 set.remove(element);
918 } 921 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698