| // Copyright (c) 2012 Ecma International. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| es5id: 7.6.1-4-2 |
| description: > |
| Allow reserved words as property names by accessor functions within an object. |
| ---*/ |
| |
| var test; |
| |
| var tokenCodes = { |
| set await(value) { test = "await"; }, |
| get await() { return "await"; }, |
| set break(value) { test = "break"; }, |
| get break() { return "break"; }, |
| set case(value) { test = "case"; }, |
| get case() { return "case"; }, |
| set catch(value) { test = "catch"; }, |
| get catch() { return "catch"; }, |
| set class(value) { test = "class"; }, |
| get class() { return "class"; }, |
| set const(value) { test = "const"; }, |
| get const() { return "const"; }, |
| set continue(value) { test = "continue"; }, |
| get continue() { return "continue"; }, |
| set debugger(value) { test = "debugger"; }, |
| get debugger() { return "debugger"; }, |
| set default(value) { test = "default"; }, |
| get default() { return "default"; }, |
| set delete(value) { test = "delete"; }, |
| get delete() { return "delete"; }, |
| set do(value) { test = "do"; }, |
| get do() { return "do"; }, |
| set else(value) { test = "else"; }, |
| get else() { return "else"; }, |
| set export(value) { test = "export"; }, |
| get export() { return "export"; }, |
| set extends(value) { test = "extends"; }, |
| get extends() { return "extends"; }, |
| set finally(value) { test = "finally"; }, |
| get finally() { return "finally"; }, |
| set for(value) { test = "for"; }, |
| get for() { return "for"; }, |
| set function(value) { test = "function"; }, |
| get function() { return "function"; }, |
| set if(value) { test = "if"; }, |
| get if() { return "if"; }, |
| set import(value) { test = "import"; }, |
| get import() { return "import"; }, |
| set in(value) { test = "in"; }, |
| get in() { return "in"; }, |
| set instanceof(value) { test = "instanceof"; }, |
| get instanceof() { return "instanceof"; }, |
| set new(value) { test = "new"; }, |
| get new() { return "new"; }, |
| set return(value) { test = "return"; }, |
| get return() { return "return"; }, |
| set super(value) { test = "super"; }, |
| get super() { return "super"; }, |
| set switch(value) { test = "switch"; }, |
| get switch() { return "switch"; }, |
| set this(value) { test = "this"; }, |
| get this() { return "this"; }, |
| set throw(value) { test = "throw"; }, |
| get throw() { return "throw"; }, |
| set try(value) { test = "try"; }, |
| get try() { return "try"; }, |
| set typeof(value) { test = "typeof"; }, |
| get typeof() { return "typeof"; }, |
| set var(value) { test = "var"; }, |
| get var() { return "var"; }, |
| set void(value) { test = "void"; }, |
| get void() { return "void"; }, |
| set while(value) { test = "while"; }, |
| get while() { return "while"; }, |
| set with(value) { test = "with"; }, |
| get with() { return "with"; }, |
| set yield(value) { test = "yield"; }, |
| get yield() { return "yield"; }, |
| |
| set enum(value) { test = "enum"; }, |
| get enum() { return "enum"; }, |
| |
| set implements(value) { test = "implements"; }, |
| get implements() { return "implements"; }, |
| set interface(value) { test = "interface"; }, |
| get interface() { return "interface"; }, |
| set package(value) { test = "package"; }, |
| get package() { return "package"; }, |
| set private(value) { test = "private"; }, |
| get private() { return "private"; }, |
| set protected(value) { test = "protected"; }, |
| get protected() { return "protected"; }, |
| set public(value) { test = "public"; }, |
| get public() { return "public"; }, |
| |
| set let(value) { test = "let"; }, |
| get let() { return "let"; }, |
| set static(value) { test = "static"; }, |
| get static() { return "static"; }, |
| }; |
| |
| var arr = [ |
| 'await', |
| 'break', |
| 'case', |
| 'catch', |
| 'class', |
| 'const', |
| 'continue', |
| 'debugger', |
| 'default', |
| 'delete', |
| 'do', |
| 'else', |
| 'export', |
| 'extends', |
| 'finally', |
| 'for', |
| 'function', |
| 'if', |
| 'import', |
| 'in', |
| 'instanceof', |
| 'new', |
| 'return', |
| 'super', |
| 'switch', |
| 'this', |
| 'throw', |
| 'try', |
| 'typeof', |
| 'var', |
| 'void', |
| 'while', |
| 'with', |
| 'yield', |
| |
| 'enum', |
| |
| 'implements', |
| 'interface', |
| 'package', |
| 'protected', |
| 'private', |
| 'public', |
| |
| 'let', |
| 'static', |
| ]; |
| |
| for (var i = 0; i < arr.length; ++i) { |
| var propertyName = arr[i]; |
| |
| assert(tokenCodes.hasOwnProperty(propertyName), |
| 'Property "' + propertyName + '" found'); |
| |
| assert.sameValue(tokenCodes[propertyName], propertyName, |
| 'Property "' + propertyName + '" has correct value'); |
| |
| tokenCodes[propertyName] = 0; |
| assert.sameValue(test, propertyName, |
| 'Property "' + propertyName + '" sets correct value'); |
| } |