Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: lib/compiler/implementation/enqueue.dart

Issue 10827353: Fix a performance regressions introduced by r10632. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 class EnqueueTask extends CompilerTask { 5 class EnqueueTask extends CompilerTask {
6 final Enqueuer codegen; 6 final Enqueuer codegen;
7 final Enqueuer resolution; 7 final Enqueuer resolution;
8 8
9 String get name() => 'Enqueue'; 9 String get name() => 'Enqueue';
10 10
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 selector.namedArguments); 162 selector.namedArguments);
163 registerDynamicInvocation(compiler.namer.CLOSURE_INVOCATION_NAME, 163 registerDynamicInvocation(compiler.namer.CLOSURE_INVOCATION_NAME,
164 call); 164 call);
165 } 165 }
166 } 166 }
167 } 167 }
168 }); 168 });
169 } 169 }
170 170
171 void processInstantiatedClassMember(Element member) { 171 void processInstantiatedClassMember(Element member) {
172 if (member.isConstructor()) return;
172 if (universe.generatedCode.containsKey(member)) return; 173 if (universe.generatedCode.containsKey(member)) return;
173 if (resolvedElements[member] !== null) return; 174 if (resolvedElements[member] !== null) return;
174 175
175 if (!member.isInstanceMember()) return; 176 if (!member.isInstanceMember()) return;
176 if (member.isField()) return; 177 if (member.isField()) return;
177 178
178 String memberName = member.name.slowToString(); 179 String memberName = member.name.slowToString();
179 Link<Element> members = instanceMembersByName.putIfAbsent( 180 Link<Element> members = instanceMembersByName.putIfAbsent(
180 memberName, () => const EmptyLink<Element>()); 181 memberName, () => const EmptyLink<Element>());
181 instanceMembersByName[memberName] = members.prepend(member); 182 instanceMembersByName[memberName] = members.prepend(member);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 void forEach(f(WorkItem work)) { 351 void forEach(f(WorkItem work)) {
351 while (!queue.isEmpty()) { 352 while (!queue.isEmpty()) {
352 do { 353 do {
353 f(queue.removeLast()); 354 f(queue.removeLast());
354 } while (!queue.isEmpty()); 355 } while (!queue.isEmpty());
355 // TODO(ahe): we shouldn't register the field closure invocations here. 356 // TODO(ahe): we shouldn't register the field closure invocations here.
356 registerFieldClosureInvocations(); 357 registerFieldClosureInvocations();
357 } 358 }
358 } 359 }
359 } 360 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698