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

Side by Side Diff: dart/sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart

Issue 136753002: Version 1.1.0-dev.5.9 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 6 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) 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 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 // On [requiredParameterCount], the lower bit is set if this method can be 406 // On [requiredParameterCount], the lower bit is set if this method can be
407 // called reflectively. 407 // called reflectively.
408 int requiredParameterCount = parameters.requiredParameterCount << 1; 408 int requiredParameterCount = parameters.requiredParameterCount << 1;
409 if (member.isAccessor()) requiredParameterCount++; 409 if (member.isAccessor()) requiredParameterCount++;
410 410
411 int optionalParameterCount = parameters.optionalParameterCount << 1; 411 int optionalParameterCount = parameters.optionalParameterCount << 1;
412 if (parameters.optionalParametersAreNamed) optionalParameterCount++; 412 if (parameters.optionalParametersAreNamed) optionalParameterCount++;
413 413
414 expressions.add(code); 414 expressions.add(code);
415 415
416 // TODO(ahe): Remove comments from output. 416 List tearOffInfo = [new jsAst.LiteralString('$callSelectorString')];
417 List tearOffInfo =
418 [new jsAst.LiteralString('$callSelectorString /* tearOffInfo */')];
419 417
420 if (needsStubs || canTearOff) { 418 if (needsStubs || canTearOff) {
421 addParameterStubs(member, (Selector selector, jsAst.Fun function) { 419 addParameterStubs(member, (Selector selector, jsAst.Fun function) {
422 expressions.add(function); 420 expressions.add(function);
423 if (member.isInstanceMember()) { 421 if (member.isInstanceMember()) {
424 Set invokedSelectors = 422 Set invokedSelectors =
425 compiler.codegenWorld.invokedNames[member.name]; 423 compiler.codegenWorld.invokedNames[member.name];
426 //if (invokedSelectors != null && invokedSelectors.contains(selector)) { 424 //if (invokedSelectors != null && invokedSelectors.contains(selector)) {
427 expressions.add(js.string(namer.invocationName(selector))); 425 expressions.add(js.string(namer.invocationName(selector)));
428 //} else { 426 //} else {
(...skipping 11 matching lines...) Expand all
440 // data, we can eliminate this element. 438 // data, we can eliminate this element.
441 } 439 }
442 Set<Selector> callSelectors = compiler.codegenWorld.invokedNames[ 440 Set<Selector> callSelectors = compiler.codegenWorld.invokedNames[
443 namer.closureInvocationSelectorName]; 441 namer.closureInvocationSelectorName];
444 Selector callSelector = selector.toCallSelector(); 442 Selector callSelector = selector.toCallSelector();
445 String callSelectorString = 'null'; 443 String callSelectorString = 'null';
446 if (canTearOff && callSelectors != null && 444 if (canTearOff && callSelectors != null &&
447 callSelectors.contains(callSelector)) { 445 callSelectors.contains(callSelector)) {
448 callSelectorString = '"${namer.invocationName(callSelector)}"'; 446 callSelectorString = '"${namer.invocationName(callSelector)}"';
449 } 447 }
450 tearOffInfo.add( 448 tearOffInfo.add(new jsAst.LiteralString('$callSelectorString'));
451 new jsAst.LiteralString('$callSelectorString /* tearOffInfo */'));
452 }, canTearOff); 449 }, canTearOff);
453 } 450 }
454 451
455 jsAst.Expression memberTypeExpression; 452 jsAst.Expression memberTypeExpression;
456 if (canTearOff || canBeReflected) { 453 if (canTearOff || canBeReflected) {
457 DartType memberType; 454 DartType memberType;
458 if (member.isGenerativeConstructorBody()) { 455 if (member.isGenerativeConstructorBody()) {
459 var body = member; 456 var body = member;
460 memberType = body.constructor.computeType(compiler); 457 memberType = body.constructor.computeType(compiler);
461 } else { 458 } else {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 expressions.add(js.string(member.name)); 502 expressions.add(js.string(member.name));
506 } 503 }
507 504
508 builder.addProperty(name, js.toExpression(expressions)); 505 builder.addProperty(name, js.toExpression(expressions));
509 } 506 }
510 507
511 void addMemberField(VariableElement member, ClassBuilder builder) { 508 void addMemberField(VariableElement member, ClassBuilder builder) {
512 // For now, do nothing. 509 // For now, do nothing.
513 } 510 }
514 } 511 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698