| OLD | NEW |
| 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 MinifyNamer extends Namer with _MinifiedFieldNamer { | 10 class MinifyNamer extends Namer with _MinifiedFieldNamer, |
| 11 _MinifiedOneShotInterceptorNamer { |
| 11 MinifyNamer(Compiler compiler) : super(compiler) { | 12 MinifyNamer(Compiler compiler) : super(compiler) { |
| 12 reserveBackendNames(); | 13 reserveBackendNames(); |
| 13 fieldRegistry = new _FieldNamingRegistry(this); | 14 fieldRegistry = new _FieldNamingRegistry(this); |
| 14 } | 15 } |
| 15 | 16 |
| 16 _FieldNamingRegistry fieldRegistry; | 17 _FieldNamingRegistry fieldRegistry; |
| 17 | 18 |
| 18 String get isolateName => 'I'; | 19 String get isolateName => 'I'; |
| 19 String get isolatePropertiesName => 'p'; | 20 String get isolatePropertiesName => 'p'; |
| 20 bool get shouldMinify => true; | 21 bool get shouldMinify => true; |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 @override | 249 @override |
| 249 jsAst.Name instanceFieldPropertyName(Element element) { | 250 jsAst.Name instanceFieldPropertyName(Element element) { |
| 250 jsAst.Name proposed = _minifiedInstanceFieldPropertyName(element); | 251 jsAst.Name proposed = _minifiedInstanceFieldPropertyName(element); |
| 251 if (proposed != null) { | 252 if (proposed != null) { |
| 252 return proposed; | 253 return proposed; |
| 253 } | 254 } |
| 254 return super.instanceFieldPropertyName(element); | 255 return super.instanceFieldPropertyName(element); |
| 255 } | 256 } |
| 256 } | 257 } |
| 257 | 258 |
| 259 |
| 260 abstract class _MinifiedOneShotInterceptorNamer implements Namer { |
| 261 /// Property name used for the one-shot interceptor method for the given |
| 262 /// [selector] and return-type specialization. |
| 263 @override |
| 264 jsAst.Name nameForGetOneShotInterceptor(Selector selector, |
| 265 Iterable<ClassElement> classes) { |
| 266 String root = selector.isOperator |
| 267 ? operatorNameToIdentifier(selector.name) |
| 268 : privateName(selector.memberName); |
| 269 String prefix = selector.isGetter |
| 270 ? r"$get" |
| 271 : selector.isSetter ? r"$set" : ""; |
| 272 String arity = selector.isCall ? "${selector.argumentCount}" : ""; |
| 273 String suffix = suffixForGetInterceptor(classes); |
| 274 String fullName = "\$intercepted$prefix\$$root$arity\$$suffix"; |
| 275 return _disambiguateInternalGlobal(fullName); |
| 276 } |
| 277 } |
| OLD | NEW |