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

Side by Side Diff: dart/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart

Issue 27524003: Generate tear-off closures dynamically. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 js_backend; 5 part of js_backend;
6 6
7 /** 7 /**
8 * Assigns JavaScript identifiers to Dart variables, class-names and members. 8 * Assigns JavaScript identifiers to Dart variables, class-names and members.
9 */ 9 */
10 class Namer implements ClosureNamer { 10 class Namer implements ClosureNamer {
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 return nameString; 361 return nameString;
362 } else { 362 } else {
363 // Make sure to return a private name that starts with _ so it 363 // Make sure to return a private name that starts with _ so it
364 // cannot clash with any public names. 364 // cannot clash with any public names.
365 String libraryName = getNameOfLibrary(library); 365 String libraryName = getNameOfLibrary(library);
366 return '_$libraryName\$$nameString'; 366 return '_$libraryName\$$nameString';
367 } 367 }
368 } 368 }
369 369
370 String instanceMethodName(FunctionElement element) { 370 String instanceMethodName(FunctionElement element) {
371 // TODO(ahe): Could this be: return invocationName(new
372 // Selector.fromElement(element))?
371 String elementName = element.name; 373 String elementName = element.name;
372 String name = operatorNameToIdentifier(elementName); 374 String name = operatorNameToIdentifier(elementName);
373 if (name != elementName) return getMappedOperatorName(name); 375 if (name != elementName) return getMappedOperatorName(name);
374 376
375 LibraryElement library = element.getLibrary(); 377 LibraryElement library = element.getLibrary();
376 if (element.isGenerativeConstructorBody()) { 378 if (element.isGenerativeConstructorBody()) {
377 name = Elements.reconstructConstructorNameSourceString(element); 379 name = Elements.reconstructConstructorNameSourceString(element);
378 } 380 }
379 FunctionSignature signature = element.computeSignature(compiler); 381 FunctionSignature signature = element.computeSignature(compiler);
380 String methodName = 382 String methodName =
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 885
884 String isolateAccess(Element element) { 886 String isolateAccess(Element element) {
885 return "${globalObjectFor(element)}.${getNameX(element)}"; 887 return "${globalObjectFor(element)}.${getNameX(element)}";
886 } 888 }
887 889
888 String isolateLazyInitializerAccess(Element element) { 890 String isolateLazyInitializerAccess(Element element) {
889 return "${globalObjectFor(element)}.${getLazyInitializerName(element)}"; 891 return "${globalObjectFor(element)}.${getLazyInitializerName(element)}";
890 } 892 }
891 893
892 String isolateStaticClosureAccess(Element element) { 894 String isolateStaticClosureAccess(Element element) {
893 return "${globalObjectFor(element)}.${getStaticClosureName(element)}"; 895 return "${globalObjectFor(element)}.${getStaticClosureName(element)}()";
894 } 896 }
895 897
896 String globalObjectForConstant(Constant constant) => 'C'; 898 String globalObjectForConstant(Constant constant) => 'C';
897 899
898 String operatorIsPrefix() => r'$is'; 900 String operatorIsPrefix() => r'$is';
899 901
900 String operatorAsPrefix() => r'$as'; 902 String operatorAsPrefix() => r'$as';
901 903
902 String operatorSignature() => r'$signature'; 904 String operatorSignature() => r'$signature';
903 905
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 if (!first) { 1393 if (!first) {
1392 sb.write('_'); 1394 sb.write('_');
1393 } 1395 }
1394 sb.write('_'); 1396 sb.write('_');
1395 visit(link.head); 1397 visit(link.head);
1396 first = true; 1398 first = true;
1397 } 1399 }
1398 } 1400 }
1399 } 1401 }
1400 } 1402 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698