mirror of https://github.com/tc39/test262.git
166 lines
4.7 KiB
JavaScript
166 lines
4.7 KiB
JavaScript
|
// 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');
|
||
|
}
|