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

Side by Side Diff: pkg/compiler/lib/src/js_backend/frequency_namer.dart

Issue 2568723007: Create Namer and Emitter on codegen start. (Closed)
Patch Set: Small fix. Created 4 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
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.namer; 5 part of js_backend.namer;
6 6
7 class FrequencyBasedNamer extends Namer 7 class FrequencyBasedNamer extends Namer
8 with _MinifiedFieldNamer, _MinifiedOneShotInterceptorNamer 8 with _MinifiedFieldNamer, _MinifiedOneShotInterceptorNamer
9 implements jsAst.TokenFinalizer { 9 implements jsAst.TokenFinalizer {
10 _FieldNamingRegistry fieldRegistry; 10 _FieldNamingRegistry fieldRegistry;
11 List<TokenName> tokens = new List<TokenName>(); 11 List<TokenName> tokens = new List<TokenName>();
12 12
13 Map<NamingScope, TokenScope> _tokenScopes = 13 Map<NamingScope, TokenScope> _tokenScopes =
14 new Maplet<NamingScope, TokenScope>(); 14 new Maplet<NamingScope, TokenScope>();
15 15
16 // Some basic settings for smaller names 16 // Some basic settings for smaller names
17 String get isolateName => 'I'; 17 String get isolateName => 'I';
18 String get isolatePropertiesName => 'p'; 18 String get isolatePropertiesName => 'p';
19 bool get shouldMinify => true; 19 bool get shouldMinify => true;
20 20
21 final String getterPrefix = 'g'; 21 final String getterPrefix = 'g';
22 final String setterPrefix = 's'; 22 final String setterPrefix = 's';
23 final String callPrefix = ''; // this will create function names $<n> 23 final String callPrefix = ''; // this will create function names $<n>
24 24
25 jsAst.Name get staticsPropertyName => 25 jsAst.Name get staticsPropertyName =>
26 _staticsPropertyName ??= getFreshName(instanceScope, 'static'); 26 _staticsPropertyName ??= getFreshName(instanceScope, 'static');
27 27
28 FrequencyBasedNamer(Compiler compiler) : super(compiler) { 28 FrequencyBasedNamer(JavaScriptBackend backend, ClosedWorld closedWorld)
29 : super(backend, closedWorld) {
29 fieldRegistry = new _FieldNamingRegistry(this); 30 fieldRegistry = new _FieldNamingRegistry(this);
30 } 31 }
31 32
32 TokenScope newScopeFor(NamingScope scope) { 33 TokenScope newScopeFor(NamingScope scope) {
33 if (scope == instanceScope) { 34 if (scope == instanceScope) {
34 Set<String> illegalNames = new Set<String>.from(jsReserved); 35 Set<String> illegalNames = new Set<String>.from(jsReserved);
35 for (String illegal in MinifyNamer._reservedNativeProperties) { 36 for (String illegal in MinifyNamer._reservedNativeProperties) {
36 illegalNames.add(illegal); 37 illegalNames.add(illegal);
37 if (MinifyNamer._hasBannedPrefix(illegal)) { 38 if (MinifyNamer._hasBannedPrefix(illegal)) {
38 illegalNames.add(illegal.substring(1)); 39 illegalNames.add(illegal.substring(1));
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 String proposal; 132 String proposal;
132 do { 133 do {
133 proposal = new String.fromCharCodes(_nextName); 134 proposal = new String.fromCharCodes(_nextName);
134 _incrementName(); 135 _incrementName();
135 } while (MinifyNamer._hasBannedPrefix(proposal) || 136 } while (MinifyNamer._hasBannedPrefix(proposal) ||
136 illegalNames.contains(proposal)); 137 illegalNames.contains(proposal));
137 138
138 return proposal; 139 return proposal;
139 } 140 }
140 } 141 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/field_naming_mixin.dart ('k') | pkg/compiler/lib/src/js_backend/minify_namer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698