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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart

Issue 826413003: Use a shared function to represent type substitutions with dynamic. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: comments Created 5 years, 11 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library dart2js.new_js_emitter.emitter; 5 library dart2js.new_js_emitter.emitter;
6 6
7 import '../model.dart'; 7 import '../model.dart';
8 import 'model_emitter.dart'; 8 import 'model_emitter.dart';
9 import '../../common.dart'; 9 import '../../common.dart';
10 import '../../elements/elements.dart' show FieldElement; 10 import '../../elements/elements.dart' show FieldElement;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 // name) which is unique. 66 // name) which is unique.
67 return namer.constantName(a).compareTo(namer.constantName(b)); 67 return namer.constantName(a).compareTo(namer.constantName(b));
68 } 68 }
69 69
70 @override 70 @override
71 js.Expression generateEmbeddedGlobalAccess(String global) { 71 js.Expression generateEmbeddedGlobalAccess(String global) {
72 return _emitter.generateEmbeddedGlobalAccess(global); 72 return _emitter.generateEmbeddedGlobalAccess(global);
73 } 73 }
74 74
75 @override 75 @override
76 // TODO(herhut): Use a single shared function.
77 js.Expression generateFunctionThatReturnsNull() {
78 return js.js('function() {}');
79 }
80
81 @override
76 js.Expression constantReference(ConstantValue value) { 82 js.Expression constantReference(ConstantValue value) {
77 return _emitter.constantEmitter.reference(value); 83 return _emitter.constantEmitter.reference(value);
78 } 84 }
79 85
80 js.PropertyAccess _globalPropertyAccess(Element element) { 86 js.PropertyAccess _globalPropertyAccess(Element element) {
81 String name = namer.getNameX(element); 87 String name = namer.getNameX(element);
82 js.PropertyAccess pa = new js.PropertyAccess.field( 88 js.PropertyAccess pa = new js.PropertyAccess.field(
83 new js.VariableUse(namer.globalObjectFor(element)), 89 new js.VariableUse(namer.globalObjectFor(element)),
84 name); 90 name);
85 return pa; 91 return pa;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 @override 135 @override
130 js.Expression typeAccess(Element element) { 136 js.Expression typeAccess(Element element) {
131 // TODO(floitsch): minify 'ensureResolved'. 137 // TODO(floitsch): minify 'ensureResolved'.
132 // TODO(floitsch): don't emit `ensureResolved` for eager classes. 138 // TODO(floitsch): don't emit `ensureResolved` for eager classes.
133 return js.js('#.ensureResolved()', _globalPropertyAccess(element)); 139 return js.js('#.ensureResolved()', _globalPropertyAccess(element));
134 } 140 }
135 141
136 @override 142 @override
137 void invalidateCaches() {} 143 void invalidateCaches() {}
138 } 144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698