Chromium Code Reviews| Index: pkg/compiler/lib/src/enqueue.dart |
| diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart |
| index 89bbeda4b56983ace7a047a810fbd975d92ef060..9485e514b92e9aae0e6d14dcd0b4afe7f2d0220c 100644 |
| --- a/pkg/compiler/lib/src/enqueue.dart |
| +++ b/pkg/compiler/lib/src/enqueue.dart |
| @@ -182,15 +182,18 @@ abstract class Enqueuer { |
| task.measure(() { |
| ClassElement cls = type.element; |
| cls.ensureResolved(resolution); |
| + bool isNative = compiler.backend.isNative(cls); |
| universe.registerTypeInstantiation( |
| type, |
| - isNative: compiler.backend.isNative(cls), |
| + isNative: isNative, |
| byMirrors: mirrorUsage, |
| onImplemented: (ClassElement cls) { |
| compiler.backend.registerImplementedClass( |
| cls, this, compiler.globalDependencies); |
| }); |
| - processInstantiatedClass(cls); |
| + if (!cls.isAbstract || isNative || mirrorUsage) { |
|
Johnni Winther
2015/11/03 13:20:02
Make a variable and use for universe.register...
Johnni Winther
2015/11/06 13:43:23
Done.
|
| + processInstantiatedClass(cls); |
| + } |
| }); |
| } |
| @@ -339,9 +342,10 @@ abstract class Enqueuer { |
| superclass, this, compiler.globalDependencies); |
| } |
| - while (cls != null) { |
| - processClass(cls); |
| - cls = cls.superclass; |
| + ClassElement superclass = cls; |
| + while (superclass != null) { |
| + processClass(superclass); |
| + superclass = superclass.superclass; |
| } |
| }); |
| } |