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

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

Issue 50313007: Implement dynamic function checks. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r30897. 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 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 } 465 }
466 466
467 /** 467 /**
468 * Returns name of accessor (root to getter and setter) for an instance field. 468 * Returns name of accessor (root to getter and setter) for an instance field.
469 */ 469 */
470 String instanceFieldAccessorName(Element element) { 470 String instanceFieldAccessorName(Element element) {
471 String proposedName = privateName(element.getLibrary(), element.name); 471 String proposedName = privateName(element.getLibrary(), element.name);
472 return getMappedInstanceName(proposedName); 472 return getMappedInstanceName(proposedName);
473 } 473 }
474 474
475 String readTypeVariableName(TypeVariableElement element) {
476 return '\$tv_${instanceFieldAccessorName(element)}';
477 }
478
475 /** 479 /**
476 * Returns name of the JavaScript property used to store an instance field. 480 * Returns name of the JavaScript property used to store an instance field.
477 */ 481 */
478 String instanceFieldPropertyName(Element element) { 482 String instanceFieldPropertyName(Element element) {
479 if (element.hasFixedBackendName()) { 483 if (element.hasFixedBackendName()) {
480 return element.fixedBackendName(); 484 return element.fixedBackendName();
481 } 485 }
482 // If a class is used anywhere as a mixin, we must make the name unique so 486 // If a class is used anywhere as a mixin, we must make the name unique so
483 // that it does not accidentally shadow. Also, the mixin name must be 487 // that it does not accidentally shadow. Also, the mixin name must be
484 // constant over all mixins. 488 // constant over all mixins.
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
1376 if (!first) { 1380 if (!first) {
1377 sb.write('_'); 1381 sb.write('_');
1378 } 1382 }
1379 sb.write('_'); 1383 sb.write('_');
1380 visit(link.head); 1384 visit(link.head);
1381 first = true; 1385 first = true;
1382 } 1386 }
1383 } 1387 }
1384 } 1388 }
1385 } 1389 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698