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

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

Issue 869513003: dart2js: Move metadata from old_emitter to shared directory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 /// This class should morph into something that makes it easy to build 7 /// This class should morph into something that makes it easy to build
8 /// JavaScript representations of libraries, class-sides, and instance-sides. 8 /// JavaScript representations of libraries, class-sides, and instance-sides.
9 /// Initially, it is just a placeholder for code that is moved from 9 /// Initially, it is just a placeholder for code that is moved from
10 /// [CodeEmitterTask]. 10 /// [CodeEmitterTask].
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 memberType = body.constructor.type; 465 memberType = body.constructor.type;
466 } else { 466 } else {
467 memberType = member.type; 467 memberType = member.type;
468 } 468 }
469 if (memberType.containsTypeVariables) { 469 if (memberType.containsTypeVariables) {
470 jsAst.Expression thisAccess = js(r'this.$receiver'); 470 jsAst.Expression thisAccess = js(r'this.$receiver');
471 memberTypeExpression = 471 memberTypeExpression =
472 backend.rti.getSignatureEncoding(memberType, thisAccess); 472 backend.rti.getSignatureEncoding(memberType, thisAccess);
473 } else { 473 } else {
474 memberTypeExpression = 474 memberTypeExpression =
475 js.number(emitter.metadataEmitter.reifyType(memberType)); 475 js.number(task.metadataEmitter.reifyType(memberType));
476 } 476 }
477 } else { 477 } else {
478 memberTypeExpression = js('null'); 478 memberTypeExpression = js('null');
479 } 479 }
480 480
481 expressions 481 expressions
482 ..addAll(tearOffInfo) 482 ..addAll(tearOffInfo)
483 ..add((tearOffName == null || member.isAccessor) 483 ..add((tearOffName == null || member.isAccessor)
484 ? js("null") : js.string(tearOffName)) 484 ? js("null") : js.string(tearOffName))
485 ..add(js.number(requiredParameterCount)) 485 ..add(js.number(requiredParameterCount))
486 ..add(js.number(optionalParameterCount)) 486 ..add(js.number(optionalParameterCount))
487 ..add(memberTypeExpression) 487 ..add(memberTypeExpression)
488 ..addAll(emitter.metadataEmitter 488 ..addAll(task.metadataEmitter
489 .reifyDefaultArguments(member).map(js.number)); 489 .reifyDefaultArguments(member).map(js.number));
490 490
491 if (canBeReflected || canBeApplied) { 491 if (canBeReflected || canBeApplied) {
492 parameters.forEachParameter((Element parameter) { 492 parameters.forEachParameter((Element parameter) {
493 expressions.add( 493 expressions.add(
494 js.number(emitter.metadataEmitter.reifyName(parameter.name))); 494 js.number(task.metadataEmitter.reifyName(parameter.name)));
495 if (backend.mustRetainMetadata) { 495 if (backend.mustRetainMetadata) {
496 Iterable<int> metadataIndices = 496 Iterable<int> metadataIndices =
497 parameter.metadata.map((MetadataAnnotation annotation) { 497 parameter.metadata.map((MetadataAnnotation annotation) {
498 ConstantValue constant = 498 ConstantValue constant =
499 backend.constants.getConstantForMetadata(annotation).value; 499 backend.constants.getConstantForMetadata(annotation).value;
500 backend.constants.addCompileTimeConstantForEmission(constant); 500 backend.constants.addCompileTimeConstantForEmission(constant);
501 return emitter.metadataEmitter.reifyMetadata(annotation); 501 return task.metadataEmitter.reifyMetadata(annotation);
502 }); 502 });
503 expressions.add(new jsAst.ArrayInitializer( 503 expressions.add(new jsAst.ArrayInitializer(
504 metadataIndices.map(js.number).toList())); 504 metadataIndices.map(js.number).toList()));
505 } 505 }
506 }); 506 });
507 } 507 }
508 if (canBeReflected) { 508 if (canBeReflected) {
509 jsAst.LiteralString reflectionName; 509 jsAst.LiteralString reflectionName;
510 if (member.isConstructor) { 510 if (member.isConstructor) {
511 String reflectionNameString = emitter.getReflectionName(member, name); 511 String reflectionNameString = emitter.getReflectionName(member, name);
512 reflectionName = 512 reflectionName =
513 new jsAst.LiteralString( 513 new jsAst.LiteralString(
514 '"new ${Elements.reconstructConstructorName(member)}"'); 514 '"new ${Elements.reconstructConstructorName(member)}"');
515 } else { 515 } else {
516 reflectionName = 516 reflectionName =
517 js.string(namer.privateName(member.library, member.name)); 517 js.string(namer.privateName(member.library, member.name));
518 } 518 }
519 expressions 519 expressions
520 ..add(reflectionName) 520 ..add(reflectionName)
521 ..addAll(emitter.metadataEmitter 521 ..addAll(task.metadataEmitter.computeMetadata(member).map(js.number));
522 .computeMetadata(member).map(js.number));
523 } else if (isClosure && canBeApplied) { 522 } else if (isClosure && canBeApplied) {
524 expressions.add(js.string(namer.privateName(member.library, 523 expressions.add(js.string(namer.privateName(member.library,
525 member.name))); 524 member.name)));
526 } 525 }
527 526
528 jsAst.ArrayInitializer arrayInit = 527 jsAst.ArrayInitializer arrayInit =
529 new jsAst.ArrayInitializer(expressions.toList()); 528 new jsAst.ArrayInitializer(expressions.toList());
530 compiler.dumpInfoTask.registerElementAst(member, 529 compiler.dumpInfoTask.registerElementAst(member,
531 builder.addProperty(name, arrayInit)); 530 builder.addProperty(name, arrayInit));
532 } 531 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 assert(needsStubs != null); 580 assert(needsStubs != null);
582 assert(canTearOff != null); 581 assert(canTearOff != null);
583 assert(isClosure != null); 582 assert(isClosure != null);
584 assert(tearOffName != null || !canTearOff); 583 assert(tearOffName != null || !canTearOff);
585 assert(canBeReflected != null); 584 assert(canBeReflected != null);
586 assert(canBeApplied != null); 585 assert(canBeApplied != null);
587 assert(hasSuperAlias != null); 586 assert(hasSuperAlias != null);
588 assert(needStructuredInfo != null); 587 assert(needStructuredInfo != null);
589 } 588 }
590 } 589 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698