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

Unified Diff: pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart

Issue 3011803002: dart2js kernel: Sort constants
Patch Set: implement DartType ordering Created 3 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
index e6a2e20d1f53ca585f251212ef13eaa63bc3ee6c..6dfae6a9ef2991013c2b9cab68c0df16d2f46b61 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
@@ -40,7 +40,7 @@ import '../../universe/selector.dart' show Selector;
import '../../universe/world_builder.dart' show CodegenWorldBuilder;
import '../../util/uri_extras.dart' show relativize;
import '../../world.dart' show ClosedWorld;
-import '../constant_ordering.dart' show deepCompareConstants;
+import '../constant_ordering.dart' show ConstantOrdering;
import '../headers.dart';
import '../js_emitter.dart' hide Emitter, EmitterFactory;
import '../js_emitter.dart' as js_emitter show EmitterBase, EmitterFactory;
@@ -97,6 +97,7 @@ class Emitter extends js_emitter.EmitterBase {
final NsmEmitter nsmEmitter;
final InterceptorEmitter interceptorEmitter;
final Sorter _sorter;
+ final ConstantOrdering _constantOrdering;
// TODO(johnniwinther): Wrap these fields in a caching strategy.
final List<jsAst.Statement> cachedEmittedConstantsAst = <jsAst.Statement>[];
@@ -169,10 +170,12 @@ class Emitter extends js_emitter.EmitterBase {
final bool generateSourceMap;
Emitter(this.compiler, this.namer, this._closedWorld, this.generateSourceMap,
- this.task, this._sorter)
+ this.task, Sorter sorter)
: classEmitter = new ClassEmitter(_closedWorld),
interceptorEmitter = new InterceptorEmitter(_closedWorld),
- nsmEmitter = new NsmEmitter(_closedWorld) {
+ nsmEmitter = new NsmEmitter(_closedWorld),
+ _sorter = sorter,
+ _constantOrdering = new ConstantOrdering(sorter) {
constantEmitter = new ConstantEmitter(
compiler.options,
_closedWorld.commonElements,
@@ -236,7 +239,7 @@ class Emitter extends js_emitter.EmitterBase {
if (r != 0) return r;
// Resolve collisions in the long name by using a structural order.
- return deepCompareConstants(a, b);
+ return _constantOrdering.compare(a, b);
}
@override

Powered by Google App Engine
This is Rietveld 408576698