ident-name-keyword-accessor.js (4865B)
1 // Copyright (c) 2012 Ecma International. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 es5id: 7.6.1-4-2 6 description: > 7 Allow reserved words as property names by accessor functions within an object. 8 ---*/ 9 10 var test; 11 12 var tokenCodes = { 13 set await(value) { test = "await"; }, 14 get await() { return "await"; }, 15 set break(value) { test = "break"; }, 16 get break() { return "break"; }, 17 set case(value) { test = "case"; }, 18 get case() { return "case"; }, 19 set catch(value) { test = "catch"; }, 20 get catch() { return "catch"; }, 21 set class(value) { test = "class"; }, 22 get class() { return "class"; }, 23 set const(value) { test = "const"; }, 24 get const() { return "const"; }, 25 set continue(value) { test = "continue"; }, 26 get continue() { return "continue"; }, 27 set debugger(value) { test = "debugger"; }, 28 get debugger() { return "debugger"; }, 29 set default(value) { test = "default"; }, 30 get default() { return "default"; }, 31 set delete(value) { test = "delete"; }, 32 get delete() { return "delete"; }, 33 set do(value) { test = "do"; }, 34 get do() { return "do"; }, 35 set else(value) { test = "else"; }, 36 get else() { return "else"; }, 37 set export(value) { test = "export"; }, 38 get export() { return "export"; }, 39 set extends(value) { test = "extends"; }, 40 get extends() { return "extends"; }, 41 set finally(value) { test = "finally"; }, 42 get finally() { return "finally"; }, 43 set for(value) { test = "for"; }, 44 get for() { return "for"; }, 45 set function(value) { test = "function"; }, 46 get function() { return "function"; }, 47 set if(value) { test = "if"; }, 48 get if() { return "if"; }, 49 set import(value) { test = "import"; }, 50 get import() { return "import"; }, 51 set in(value) { test = "in"; }, 52 get in() { return "in"; }, 53 set instanceof(value) { test = "instanceof"; }, 54 get instanceof() { return "instanceof"; }, 55 set new(value) { test = "new"; }, 56 get new() { return "new"; }, 57 set return(value) { test = "return"; }, 58 get return() { return "return"; }, 59 set super(value) { test = "super"; }, 60 get super() { return "super"; }, 61 set switch(value) { test = "switch"; }, 62 get switch() { return "switch"; }, 63 set this(value) { test = "this"; }, 64 get this() { return "this"; }, 65 set throw(value) { test = "throw"; }, 66 get throw() { return "throw"; }, 67 set try(value) { test = "try"; }, 68 get try() { return "try"; }, 69 set typeof(value) { test = "typeof"; }, 70 get typeof() { return "typeof"; }, 71 set var(value) { test = "var"; }, 72 get var() { return "var"; }, 73 set void(value) { test = "void"; }, 74 get void() { return "void"; }, 75 set while(value) { test = "while"; }, 76 get while() { return "while"; }, 77 set with(value) { test = "with"; }, 78 get with() { return "with"; }, 79 set yield(value) { test = "yield"; }, 80 get yield() { return "yield"; }, 81 82 set enum(value) { test = "enum"; }, 83 get enum() { return "enum"; }, 84 85 set implements(value) { test = "implements"; }, 86 get implements() { return "implements"; }, 87 set interface(value) { test = "interface"; }, 88 get interface() { return "interface"; }, 89 set package(value) { test = "package"; }, 90 get package() { return "package"; }, 91 set private(value) { test = "private"; }, 92 get private() { return "private"; }, 93 set protected(value) { test = "protected"; }, 94 get protected() { return "protected"; }, 95 set public(value) { test = "public"; }, 96 get public() { return "public"; }, 97 98 set let(value) { test = "let"; }, 99 get let() { return "let"; }, 100 set static(value) { test = "static"; }, 101 get static() { return "static"; }, 102 }; 103 104 var arr = [ 105 'await', 106 'break', 107 'case', 108 'catch', 109 'class', 110 'const', 111 'continue', 112 'debugger', 113 'default', 114 'delete', 115 'do', 116 'else', 117 'export', 118 'extends', 119 'finally', 120 'for', 121 'function', 122 'if', 123 'import', 124 'in', 125 'instanceof', 126 'new', 127 'return', 128 'super', 129 'switch', 130 'this', 131 'throw', 132 'try', 133 'typeof', 134 'var', 135 'void', 136 'while', 137 'with', 138 'yield', 139 140 'enum', 141 142 'implements', 143 'interface', 144 'package', 145 'protected', 146 'private', 147 'public', 148 149 'let', 150 'static', 151 ]; 152 153 for (var i = 0; i < arr.length; ++i) { 154 var propertyName = arr[i]; 155 156 assert(tokenCodes.hasOwnProperty(propertyName), 157 'Property "' + propertyName + '" found'); 158 159 assert.sameValue(tokenCodes[propertyName], propertyName, 160 'Property "' + propertyName + '" has correct value'); 161 162 tokenCodes[propertyName] = 0; 163 assert.sameValue(test, propertyName, 164 'Property "' + propertyName + '" sets correct value'); 165 } 166 167 reportCompare(0, 0);