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

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

Issue 741833003: dart2js: Add "onlyForRti" to Classes in model of the new emitter. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years 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
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/model.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.js_emitter.program_builder; 5 library dart2js.js_emitter.program_builder;
6 6
7 import 'model.dart'; 7 import 'model.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../js/js.dart' as js; 9 import '../js/js.dart' as js;
10 10
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 } 257 }
258 } 258 }
259 259
260 ClassElement implementation = element.implementation; 260 ClassElement implementation = element.implementation;
261 if (isInstantiated) { 261 if (isInstantiated) {
262 implementation.forEachMember(visitMember, includeBackendMembers: true); 262 implementation.forEachMember(visitMember, includeBackendMembers: true);
263 } 263 }
264 String name = namer.getNameOfClass(element); 264 String name = namer.getNameOfClass(element);
265 String holderName = namer.globalObjectFor(element); 265 String holderName = namer.globalObjectFor(element);
266 Holder holder = _registry.registerHolder(holderName); 266 Holder holder = _registry.registerHolder(holderName);
267 Class result = new Class(name, holder, methods, fields); 267 bool onlyForRti =
268 _task.typeTestEmitter.rtiNeededClasses.contains(element);
sigurdm 2014/11/25 15:01:43 Add a comment on `rtiNeededClasses` that it is the
269 Class result = new Class(name, holder, methods, fields,
270 onlyForRti: onlyForRti);
268 _classes[element] = result; 271 _classes[element] = result;
269 return result; 272 return result;
270 } 273 }
271 274
272 Method _buildMethod(FunctionElement element, js.Expression code) { 275 Method _buildMethod(FunctionElement element, js.Expression code) {
273 String name = namer.getNameOfInstanceMember(element); 276 String name = namer.getNameOfInstanceMember(element);
274 return new Method(name, code); 277 return new Method(name, code);
275 } 278 }
276 279
277 // The getInterceptor methods directly access the prototype of classes. 280 // The getInterceptor methods directly access the prototype of classes.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 for (ConstantValue constantValue in constantValues) { 399 for (ConstantValue constantValue in constantValues) {
397 assert(!_constants.containsKey(constantValue)); 400 assert(!_constants.containsKey(constantValue));
398 String name = namer.constantName(constantValue); 401 String name = namer.constantName(constantValue);
399 String constantObject = namer.globalObjectForConstant(constantValue); 402 String constantObject = namer.globalObjectForConstant(constantValue);
400 Holder holder = _registry.registerHolder(constantObject); 403 Holder holder = _registry.registerHolder(constantObject);
401 Constant constant = new Constant(name, holder, constantValue); 404 Constant constant = new Constant(name, holder, constantValue);
402 _constants[constantValue] = constant; 405 _constants[constantValue] = constant;
403 }; 406 };
404 } 407 }
405 } 408 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/model.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698