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

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

Issue 829473003: dart2js: move native boilerplate code into a separate file. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 int r = namer.constantLongName(a).compareTo(namer.constantLongName(b)); 63 int r = namer.constantLongName(a).compareTo(namer.constantLongName(b));
64 if (r != 0) return r; 64 if (r != 0) return r;
65 // Resolve collisions in the long name by using the constant name (i.e. JS 65 // Resolve collisions in the long name by using the constant name (i.e. JS
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 // TODO(floitsch): We should not use "init" for globals. 72 // TODO(floitsch): We should not use "init" for globals.
73 return js.string("init.$global"); 73 return js.js("init.$global");
74 } 74 }
75 75
76 @override 76 @override
77 js.Expression constantReference(ConstantValue value) { 77 js.Expression constantReference(ConstantValue value) {
78 return _emitter.constantEmitter.reference(value); 78 return _emitter.constantEmitter.reference(value);
79 } 79 }
80 80
81 js.PropertyAccess _globalPropertyAccess(Element element) { 81 js.PropertyAccess _globalPropertyAccess(Element element) {
82 String name = namer.getNameX(element); 82 String name = namer.getNameX(element);
83 js.PropertyAccess pa = new js.PropertyAccess.field( 83 js.PropertyAccess pa = new js.PropertyAccess.field(
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 @override 130 @override
131 js.Expression typeAccess(Element element) { 131 js.Expression typeAccess(Element element) {
132 // TODO(floitsch): minify 'ensureResolved'. 132 // TODO(floitsch): minify 'ensureResolved'.
133 // TODO(floitsch): don't emit `ensureResolved` for eager classes. 133 // TODO(floitsch): don't emit `ensureResolved` for eager classes.
134 return js.js('#.ensureResolved()', _globalPropertyAccess(element)); 134 return js.js('#.ensureResolved()', _globalPropertyAccess(element));
135 } 135 }
136 136
137 @override 137 @override
138 void invalidateCaches() {} 138 void invalidateCaches() {}
139 } 139 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/native_generator.dart ('k') | pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698