OLD | NEW |
---|---|
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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 // See comment after registerFieldLoad above. | 227 // See comment after registerFieldLoad above. |
228 nativeEnqueuer.registerFieldLoad(member); | 228 nativeEnqueuer.registerFieldLoad(member); |
229 return; | 229 return; |
230 } | 230 } |
231 // Native fields need to go into instanceMembersByName as they | 231 // Native fields need to go into instanceMembersByName as they |
232 // are virtual instantiation points and escape points. | 232 // are virtual instantiation points and escape points. |
233 } else { | 233 } else { |
234 // The codegen inlines instance fields initialization, so it | 234 // The codegen inlines instance fields initialization, so it |
235 // does not need to add individual fields in the work list. | 235 // does not need to add individual fields in the work list. |
236 if (isResolutionQueue) { | 236 if (isResolutionQueue) { |
237 // TODO(ahe): codegen should be smarter and only inline used fields. | |
ngeoffray
2013/06/03 06:51:55
What is that TODO about?
ahe
2013/06/03 09:13:54
Updated comment.
| |
237 addToWorkList(member); | 238 addToWorkList(member); |
238 } | 239 } |
239 return; | 240 return; |
240 } | 241 } |
241 } else if (member.kind == ElementKind.FUNCTION) { | 242 } else if (member.kind == ElementKind.FUNCTION) { |
242 if (member.name == Compiler.NO_SUCH_METHOD) { | 243 if (member.name == Compiler.NO_SUCH_METHOD) { |
243 enableNoSuchMethod(member); | 244 enableNoSuchMethod(member); |
244 } | 245 } |
245 // If there is a property access with the same name as a method we | 246 // If there is a property access with the same name as a method we |
246 // need to emit the method. | 247 // need to emit the method. |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
756 while(!queue.isEmpty) { | 757 while(!queue.isEmpty) { |
757 // TODO(johnniwinther): Find an optimal process order for codegen. | 758 // TODO(johnniwinther): Find an optimal process order for codegen. |
758 f(queue.removeLast()); | 759 f(queue.removeLast()); |
759 } | 760 } |
760 } | 761 } |
761 | 762 |
762 void _logSpecificSummary(log(message)) { | 763 void _logSpecificSummary(log(message)) { |
763 log('Compiled ${generatedCode.length} methods.'); | 764 log('Compiled ${generatedCode.length} methods.'); |
764 } | 765 } |
765 } | 766 } |
OLD | NEW |