OLD | NEW |
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 String get requiredParameterField => r'$R'; |
| 25 String get defaultValuesField => r'$D'; |
| 26 String get operatorSignature => r'$S'; |
24 | 27 |
25 jsAst.Name get staticsPropertyName => | 28 jsAst.Name get staticsPropertyName => |
26 _staticsPropertyName ??= getFreshName(instanceScope, 'static'); | 29 _staticsPropertyName ??= getFreshName(instanceScope, 'static'); |
27 | 30 |
28 FrequencyBasedNamer(NativeData nativeData, ClosedWorld closedWorld, | 31 FrequencyBasedNamer(NativeData nativeData, ClosedWorld closedWorld, |
29 CodegenWorldBuilder codegenWorldBuilder) | 32 CodegenWorldBuilder codegenWorldBuilder) |
30 : super(nativeData, closedWorld, codegenWorldBuilder) { | 33 : super(nativeData, closedWorld, codegenWorldBuilder) { |
31 fieldRegistry = new _FieldNamingRegistry(this); | 34 fieldRegistry = new _FieldNamingRegistry(this); |
32 } | 35 } |
33 | 36 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 String proposal; | 136 String proposal; |
134 do { | 137 do { |
135 proposal = new String.fromCharCodes(_nextName); | 138 proposal = new String.fromCharCodes(_nextName); |
136 _incrementName(); | 139 _incrementName(); |
137 } while (MinifyNamer._hasBannedPrefix(proposal) || | 140 } while (MinifyNamer._hasBannedPrefix(proposal) || |
138 illegalNames.contains(proposal)); | 141 illegalNames.contains(proposal)); |
139 | 142 |
140 return proposal; | 143 return proposal; |
141 } | 144 } |
142 } | 145 } |
OLD | NEW |