| OLD | NEW |
| (Empty) |
| 1 function isReserved(word) | |
| 2 { | |
| 3 try { | |
| 4 eval("\"use strict\";var " + word + ";"); | |
| 5 return false; | |
| 6 } catch (e) { | |
| 7 var expectedError = "Use of reserved word '" + word + "' in strict mode"
; | |
| 8 if (expectedError == e.message) | |
| 9 return true; | |
| 10 else | |
| 11 return false; | |
| 12 } | |
| 13 } | |
| 14 | |
| 15 var reservedWords = [ | |
| 16 "implements", | |
| 17 "let", | |
| 18 "private", | |
| 19 "public", | |
| 20 "yield", | |
| 21 "interface", | |
| 22 "package", | |
| 23 "protected", | |
| 24 "static" | |
| 25 ]; | |
| 26 | |
| 27 var unreservedWords = [ | |
| 28 "abstract", | |
| 29 "boolean", | |
| 30 "byte", | |
| 31 "char", | |
| 32 "double", | |
| 33 "final", | |
| 34 "float", | |
| 35 "goto", | |
| 36 "int", | |
| 37 "long", | |
| 38 "native", | |
| 39 "short", | |
| 40 "synchronized", | |
| 41 "throws", | |
| 42 "transient", | |
| 43 "volatile" | |
| 44 ]; | |
| 45 | |
| 46 description( | |
| 47 "This file checks which ECMAScript 3 keywords are treated as reserved words in s
trict mode." | |
| 48 ); | |
| 49 | |
| 50 reservedWords.sort(); | |
| 51 unreservedWords.sort(); | |
| 52 | |
| 53 debug("SHOULD BE RESERVED:"); | |
| 54 for (var p in reservedWords) { | |
| 55 shouldBeTrue("isReserved('" + reservedWords[p] + "')"); | |
| 56 } | |
| 57 | |
| 58 debug(""); | |
| 59 | |
| 60 debug("SHOULD NOT BE RESERVED:"); | |
| 61 for (var p in unreservedWords) { | |
| 62 shouldBeFalse("isReserved('" + unreservedWords[p] + "')"); | |
| 63 } | |
| 64 | |
| 65 debug(""); | |
| OLD | NEW |