| 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 class JsNames { | 5 class JsNames { |
| 6 static final javaScriptKeywords = const <String>[ | 6 static final javaScriptKeywords = const <String>[ |
| 7 // These are current keywords | 7 // These are current keywords |
| 8 "break", "delete", "function", "return", "typeof", "case", "do", "if", | 8 "break", "delete", "function", "return", "typeof", "case", "do", "if", |
| 9 "switch", "var", "catch", "else", "in", "this", "void", "continue", | 9 "switch", "var", "catch", "else", "in", "this", "void", "continue", |
| 10 "false", "instanceof", "throw", "while", "debugger", "finally", "new", | 10 "false", "instanceof", "throw", "while", "debugger", "finally", "new", |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 | 148 |
| 149 // TODO: prove why this is necessary or remove it | 149 // TODO: prove why this is necessary or remove it |
| 150 "call" | 150 "call" |
| 151 ]; | 151 ]; |
| 152 | 152 |
| 153 static final reservedPropertySymbols = | 153 static final reservedPropertySymbols = |
| 154 const <String>["__PROTO__", "prototype", "constructor"]; | 154 const <String>["__PROTO__", "prototype", "constructor"]; |
| 155 | 155 |
| 156 static Set<String> _reserved; | 156 static Set<String> _reserved; |
| 157 | 157 |
| 158 static Set<String> get reserved() { | 158 static Set<String> get reserved { |
| 159 if (_reserved === null) { | 159 if (_reserved === null) { |
| 160 _reserved = new Set<String>(); | 160 _reserved = new Set<String>(); |
| 161 _reserved.addAll(reservedPropertySymbols); | 161 _reserved.addAll(reservedPropertySymbols); |
| 162 _reserved.addAll(reservedGlobalSymbols); | 162 _reserved.addAll(reservedGlobalSymbols); |
| 163 _reserved.addAll(javaScriptKeywords); | 163 _reserved.addAll(javaScriptKeywords); |
| 164 } | 164 } |
| 165 return _reserved; | 165 return _reserved; |
| 166 } | 166 } |
| 167 | 167 |
| 168 // TODO(ngeoffray): only the namer should call this method. | 168 // TODO(ngeoffray): only the namer should call this method. |
| 169 // Eventually move it there. | 169 // Eventually move it there. |
| 170 /* | 170 /* |
| 171 * Returns a name that does not clash with reserved JS keywords, | 171 * Returns a name that does not clash with reserved JS keywords, |
| 172 * and also ensures it won't clash with other identifiers. | 172 * and also ensures it won't clash with other identifiers. |
| 173 */ | 173 */ |
| 174 static String getValid(String name) { | 174 static String getValid(String name) { |
| 175 if (reserved.contains(name)) { | 175 if (reserved.contains(name)) { |
| 176 name = '$name\$'; | 176 name = '$name\$'; |
| 177 assert(!reserved.contains(name)); | 177 assert(!reserved.contains(name)); |
| 178 } else if (name.contains(@'$')) { | 178 } else if (name.contains(@'$')) { |
| 179 name = name.replaceAll(@'$', @'$$'); | 179 name = name.replaceAll(@'$', @'$$'); |
| 180 } | 180 } |
| 181 return name; | 181 return name; |
| 182 } | 182 } |
| 183 } | 183 } |
| OLD | NEW |