Source code

Revision control

Copy as Markdown

Other Tools

// 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');
}
reportCompare(0, 0);