| Index: frog/gen.dart
|
| diff --git a/frog/gen.dart b/frog/gen.dart
|
| index 4a1556ab493cad8570244475d797472d3133b136..e952a25f0563113223387c0918983c5dc4f0ba1a 100644
|
| --- a/frog/gen.dart
|
| +++ b/frog/gen.dart
|
| @@ -37,13 +37,25 @@ class WorldGenerator {
|
| WorldGenerator(this.main, this.writer)
|
| : globals = {}, corejs = new CoreJs();
|
|
|
| +
|
| +
|
| +
|
| analyze() {
|
| // Walk all code and find all NewExpressions - to determine possible types
|
| int nlibs=0, ntypes=0, nmems=0, nnews=0;
|
| - //Set<Type> newedTypes = new Set<Type>();
|
| for (var lib in world.libraries.getValues()) {
|
| nlibs += 1;
|
| for (var type in lib.types.getValues()) {
|
| + // TODO(jmesserly): we can't accurately track if DOM types are
|
| + // created or not, so we need to prepare to handle them.
|
| + // This should be fixed by tightening up the return types in DOM.
|
| + // Until then, this 'analysis' just marks all the DOM types as used.
|
| + // TODO(jimhug): Do we still need this? Or do/can we handle this by
|
| + // using return values?
|
| + if (type.library.isDom || type.isHiddenNativeType) {
|
| + if (type.isClass) type.markUsed();
|
| + }
|
| +
|
| ntypes += 1;
|
| var allMembers = [];
|
| allMembers.addAll(type.constructors.getValues());
|
| @@ -225,17 +237,6 @@ class WorldGenerator {
|
|
|
| var orderedTypes = _orderValues(lib.types);
|
|
|
| - // TODO(jmesserly): we can't accurately track if DOM types are
|
| - // created or not, so we need to prepare to handle them.
|
| - // This should be fixed by tightening up the return types in DOM.
|
| - // Until then, this 'analysis' just marks all the DOM types as used.
|
| - for (var type in orderedTypes) {
|
| - if ((type.library.isDom || type.isHiddenNativeType) &&
|
| - type.isClass) {
|
| - type.markUsed();
|
| - }
|
| - }
|
| -
|
| for (var type in orderedTypes) {
|
| if (type.isUsed && type.isClass) {
|
| writeType(type);
|
|
|