Chromium Code Reviews| Index: dart/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart b/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| index 3e9921a03a4f18b13a86cacabcb572c90a119463..e0ac24b688d5645496a2d4a2cb82062c0aa27051 100644 |
| --- a/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| +++ b/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| @@ -721,6 +721,8 @@ class CodegenEnqueuer extends Enqueuer { |
| final Map<Element, js.Expression> generatedCode = |
| new Map<Element, js.Expression>(); |
| + final Set<Element> newlyEnqueuedElements = new HashSet<Element>.identity(); |
|
Johnni Winther
2014/06/19 09:22:32
Element equality is object identity so why do you
ahe
2014/06/19 09:36:19
Good point. I'll investigate if it matters. I doub
ahe
2014/06/19 13:50:10
I'm not sure I have specific evidence for this par
|
| + |
| CodegenEnqueuer(Compiler compiler, |
| ItemCompilationContext itemCompilationContextCreator()) |
| : super('codegen enqueuer', compiler, itemCompilationContextCreator), |
| @@ -730,6 +732,9 @@ class CodegenEnqueuer extends Enqueuer { |
| member.isAbstract || generatedCode.containsKey(member); |
| void internalAddToWorkList(Element element) { |
| + if (compiler.hasIncrementalSupport) { |
| + newlyEnqueuedElements.add(element); |
| + } |
| // Don't generate code for foreign elements. |
| if (element.isForeign(compiler)) return; |