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

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

Issue 1136913006: dart2js: remove JS_OBJECT_CLASS_NAME and JS_NULL_CLASS_NAME from foreign (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove empty lines. Created 5 years, 7 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 part of dart2js.js_emitter; 5 part of dart2js.js_emitter;
6 6
7 7
8 class OldEmitter implements Emitter { 8 class OldEmitter implements Emitter {
9 final Compiler compiler; 9 final Compiler compiler;
10 final CodeEmitterTask task; 10 final CodeEmitterTask task;
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 return jsAst.js.expressionTemplateYielding( 276 return jsAst.js.expressionTemplateYielding(
277 typeAccess(compiler.objectClass)); 277 typeAccess(compiler.objectClass));
278 278
279 case JsBuiltin.classNameFromIsCheckProperty: 279 case JsBuiltin.classNameFromIsCheckProperty:
280 int isPrefixLength = namer.operatorIsPrefix.length; 280 int isPrefixLength = namer.operatorIsPrefix.length;
281 return jsAst.js.expressionTemplateFor('#.substring($isPrefixLength)'); 281 return jsAst.js.expressionTemplateFor('#.substring($isPrefixLength)');
282 282
283 case JsBuiltin.isFunctionType: 283 case JsBuiltin.isFunctionType:
284 return backend.rti.representationGenerator.templateForIsFunctionType; 284 return backend.rti.representationGenerator.templateForIsFunctionType;
285 285
286 case JsBuiltin.isFunctionTypeLiteral:
287 String functionClassName =
288 backend.namer.runtimeTypeName(compiler.functionClass);
289 return jsAst.js.expressionTemplateFor(
290 '#.$typeNameProperty === "$functionClassName"');
291
292 case JsBuiltin.typeName: 286 case JsBuiltin.typeName:
293 return jsAst.js.expressionTemplateFor("#.$typeNameProperty"); 287 return jsAst.js.expressionTemplateFor("#.$typeNameProperty");
294 288
295 case JsBuiltin.rawRuntimeType: 289 case JsBuiltin.rawRuntimeType:
296 return jsAst.js.expressionTemplateFor("#.constructor"); 290 return jsAst.js.expressionTemplateFor("#.constructor");
297 291
298 case JsBuiltin.createFunctionType: 292 case JsBuiltin.createFunctionType:
299 return backend.rti.representationGenerator 293 return backend.rti.representationGenerator
300 .templateForCreateFunctionType; 294 .templateForCreateFunctionType;
301 295
302 case JsBuiltin.isSubtype: 296 case JsBuiltin.isSubtype:
303 // TODO(floitsch): move this closer to where is-check properties are 297 // TODO(floitsch): move this closer to where is-check properties are
304 // built. 298 // built.
305 String isPrefix = namer.operatorIsPrefix; 299 String isPrefix = namer.operatorIsPrefix;
306 return jsAst.js.expressionTemplateFor( 300 return jsAst.js.expressionTemplateFor(
307 "('$isPrefix' + #) in #.prototype"); 301 "('$isPrefix' + #) in #.prototype");
308 302
303 case JsBuiltin.isFunctionTypeRti:
304 String functionClassName =
305 backend.namer.runtimeTypeName(compiler.functionClass);
306 return jsAst.js.expressionTemplateFor(
307 '#.$typeNameProperty === "$functionClassName"');
308
309 case JsBuiltin.isDartObjectTypeRti:
310 String objectClassName =
311 backend.namer.runtimeTypeName(compiler.objectClass);
312 return jsAst.js.expressionTemplateFor(
313 '#.$typeNameProperty === "$objectClassName"');
314
315 case JsBuiltin.isNullTypeRti:
316 String nullClassName =
317 backend.namer.runtimeTypeName(compiler.nullClass);
318 return jsAst.js.expressionTemplateFor(
319 '#.$typeNameProperty === "$nullClassName"');
320
309 case JsBuiltin.getMetadata: 321 case JsBuiltin.getMetadata:
310 String metadataAccess = 322 String metadataAccess =
311 generateEmbeddedGlobalAccessString(embeddedNames.METADATA); 323 generateEmbeddedGlobalAccessString(embeddedNames.METADATA);
312 return jsAst.js.expressionTemplateFor("$metadataAccess[#]"); 324 return jsAst.js.expressionTemplateFor("$metadataAccess[#]");
313 325
314 case JsBuiltin.getType: 326 case JsBuiltin.getType:
315 String typesAccess = 327 String typesAccess =
316 generateEmbeddedGlobalAccessString(embeddedNames.TYPES); 328 generateEmbeddedGlobalAccessString(embeddedNames.TYPES);
317 return jsAst.js.expressionTemplateFor("$typesAccess[#]"); 329 return jsAst.js.expressionTemplateFor("$typesAccess[#]");
318 330
(...skipping 1633 matching lines...) Expand 10 before | Expand all | Expand 10 after
1952 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { 1964 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) {
1953 if (element.isInstanceMember) { 1965 if (element.isInstanceMember) {
1954 cachedClassBuilders.remove(element.enclosingClass); 1966 cachedClassBuilders.remove(element.enclosingClass);
1955 1967
1956 nativeEmitter.cachedBuilders.remove(element.enclosingClass); 1968 nativeEmitter.cachedBuilders.remove(element.enclosingClass);
1957 1969
1958 } 1970 }
1959 } 1971 }
1960 } 1972 }
1961 } 1973 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart ('k') | pkg/compiler/lib/src/ssa/builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698