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

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

Issue 57773002: Repro for OOM bug in test.dart (applies to r29345). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month 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 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 * Returns the internal name used for an invocation mirror of this selector. 435 * Returns the internal name used for an invocation mirror of this selector.
436 */ 436 */
437 String invocationMirrorInternalName(Selector selector) 437 String invocationMirrorInternalName(Selector selector)
438 => invocationName(selector); 438 => invocationName(selector);
439 439
440 String instanceFieldName(Element element) { 440 String instanceFieldName(Element element) {
441 String proposedName = privateName(element.getLibrary(), element.name); 441 String proposedName = privateName(element.getLibrary(), element.name);
442 return getMappedInstanceName(proposedName); 442 return getMappedInstanceName(proposedName);
443 } 443 }
444 444
445 String readTypeVariableName(TypeVariableElement element) {
446 return '\$tv_${instanceFieldName(element)}';
447 }
448
445 // Construct a new name for the element based on the library and class it is 449 // Construct a new name for the element based on the library and class it is
446 // in. The name here is not important, we just need to make sure it is 450 // in. The name here is not important, we just need to make sure it is
447 // unique. If we are minifying, we actually construct the name from the 451 // unique. If we are minifying, we actually construct the name from the
448 // minified versions of the class and instance names, but the result is 452 // minified versions of the class and instance names, but the result is
449 // minified once again, so that is not visible in the end result. 453 // minified once again, so that is not visible in the end result.
450 String shadowedFieldName(Element fieldElement) { 454 String shadowedFieldName(Element fieldElement) {
451 // Check for following situation: Native field ${fieldElement.name} has 455 // Check for following situation: Native field ${fieldElement.name} has
452 // fixed JSName ${fieldElement.nativeName()}, but a subclass shadows this 456 // fixed JSName ${fieldElement.nativeName()}, but a subclass shadows this
453 // name. We normally handle that by renaming the superclass field, but we 457 // name. We normally handle that by renaming the superclass field, but we
454 // can't do that because native fields have fixed JavaScript names. 458 // can't do that because native fields have fixed JavaScript names.
(...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 if (!first) { 1339 if (!first) {
1336 sb.write('_'); 1340 sb.write('_');
1337 } 1341 }
1338 sb.write('_'); 1342 sb.write('_');
1339 visit(link.head); 1343 visit(link.head);
1340 first = true; 1344 first = true;
1341 } 1345 }
1342 } 1346 }
1343 } 1347 }
1344 } 1348 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698