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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/enqueue.dart

Issue 12374094: Implement complex super assignment. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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 class EnqueueTask extends CompilerTask { 7 class EnqueueTask extends CompilerTask {
8 final ResolutionEnqueuer resolution; 8 final ResolutionEnqueuer resolution;
9 final CodegenEnqueuer codegen; 9 final CodegenEnqueuer codegen;
10 10
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } else { 332 } else {
333 assert(element.isField()); 333 assert(element.isField());
334 } 334 }
335 // We also need to add the selector to the invoked names map, 335 // We also need to add the selector to the invoked names map,
336 // because the emitter uses that map to generate parameter stubs. 336 // because the emitter uses that map to generate parameter stubs.
337 Set<Selector> selectors = universe.invokedNames.putIfAbsent( 337 Set<Selector> selectors = universe.invokedNames.putIfAbsent(
338 element.name, () => new Set<Selector>()); 338 element.name, () => new Set<Selector>());
339 selectors.add(selector); 339 selectors.add(selector);
340 } 340 }
341 341
342 void registerSelectorUse(Selector selector) {
343 if (selector.isGetter()) {
344 registerInvokedGetter(selector.name, selector);
345 } else if (selector.isSetter()) {
346 registerInvokedSetter(selector.name, selector);
347 } else {
348 registerInvocation(selector.name, selector);
349 }
350 }
351
342 void registerDynamicGetter(SourceString methodName, Selector selector) { 352 void registerDynamicGetter(SourceString methodName, Selector selector) {
343 registerInvokedGetter(methodName, selector); 353 registerInvokedGetter(methodName, selector);
344 } 354 }
345 355
346 void registerDynamicSetter(SourceString methodName, Selector selector) { 356 void registerDynamicSetter(SourceString methodName, Selector selector) {
347 registerInvokedSetter(methodName, selector); 357 registerInvokedSetter(methodName, selector);
348 } 358 }
349 359
350 void registerFieldGetter(Element element) { 360 void registerFieldGetter(Element element) {
351 universe.fieldGetters.add(element); 361 universe.fieldGetters.add(element);
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 while(!queue.isEmpty) { 546 while(!queue.isEmpty) {
537 // TODO(johnniwinther): Find an optimal process order for codegen. 547 // TODO(johnniwinther): Find an optimal process order for codegen.
538 f(queue.removeLast()); 548 f(queue.removeLast());
539 } 549 }
540 } 550 }
541 551
542 void _logSpecificSummary(log(message)) { 552 void _logSpecificSummary(log(message)) {
543 log('Compiled ${generatedCode.length} methods.'); 553 log('Compiled ${generatedCode.length} methods.');
544 } 554 }
545 } 555 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698