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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 return getValid('\$$name'); |
177 assert(!reserved.contains(name)); | |
178 } else if (name.contains(@'$')) { | 177 } else if (name.contains(@'$')) { |
179 name = name.replaceAll(@'$', @'$$'); | 178 name = name.replaceAll(@'$', @'$$'); |
180 } | 179 } |
181 return name; | 180 return name; |
182 } | 181 } |
183 } | 182 } |
OLD | NEW |