| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.js_emitter.program_builder; | 5 part of dart2js.js_emitter.program_builder; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Generates the code for all used classes in the program. Static fields (even | 8 * Generates the code for all used classes in the program. Static fields (even |
| 9 * in classes) are ignored, since they can be treated as non-class elements. | 9 * in classes) are ignored, since they can be treated as non-class elements. |
| 10 * | 10 * |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 neededClasses.add(compiler.boolClass); | 229 neededClasses.add(compiler.boolClass); |
| 230 } | 230 } |
| 231 if (neededClasses.contains(backend.jsArrayClass)) { | 231 if (neededClasses.contains(backend.jsArrayClass)) { |
| 232 neededClasses.add(compiler.listClass); | 232 neededClasses.add(compiler.listClass); |
| 233 } | 233 } |
| 234 | 234 |
| 235 // 4. Finally, sort the classes. | 235 // 4. Finally, sort the classes. |
| 236 List<ClassElement> sortedClasses = Elements.sortedByPosition(neededClasses); | 236 List<ClassElement> sortedClasses = Elements.sortedByPosition(neededClasses); |
| 237 | 237 |
| 238 for (ClassElement element in sortedClasses) { | 238 for (ClassElement element in sortedClasses) { |
| 239 if (Elements.isNativeOrExtendsNative(element) && | 239 if (backend.isNativeOrExtendsNative(element) && |
| 240 !classesOnlyNeededForRti.contains(element)) { | 240 !classesOnlyNeededForRti.contains(element)) { |
| 241 // For now, native classes and related classes cannot be deferred. | 241 // For now, native classes and related classes cannot be deferred. |
| 242 nativeClassesAndSubclasses.add(element); | 242 nativeClassesAndSubclasses.add(element); |
| 243 assert(invariant(element, | 243 assert(invariant(element, |
| 244 !compiler.deferredLoadTask.isDeferred(element))); | 244 !compiler.deferredLoadTask.isDeferred(element))); |
| 245 outputClassLists.putIfAbsent(compiler.deferredLoadTask.mainOutputUnit, | 245 outputClassLists.putIfAbsent(compiler.deferredLoadTask.mainOutputUnit, |
| 246 () => new List<ClassElement>()).add(element); | 246 () => new List<ClassElement>()).add(element); |
| 247 } else { | 247 } else { |
| 248 outputClassLists.putIfAbsent( | 248 outputClassLists.putIfAbsent( |
| 249 compiler.deferredLoadTask.outputUnitForElement(element), | 249 compiler.deferredLoadTask.outputUnitForElement(element), |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 } | 304 } |
| 305 | 305 |
| 306 void collect() { | 306 void collect() { |
| 307 computeNeededDeclarations(); | 307 computeNeededDeclarations(); |
| 308 computeNeededConstants(); | 308 computeNeededConstants(); |
| 309 computeNeededStatics(); | 309 computeNeededStatics(); |
| 310 computeNeededStaticNonFinalFields(); | 310 computeNeededStaticNonFinalFields(); |
| 311 computeNeededLibraries(); | 311 computeNeededLibraries(); |
| 312 } | 312 } |
| 313 } | 313 } |
| OLD | NEW |