| // 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-16 |
| description: > |
| Allow global constant properties as property names by accessor function within an object. |
| ---*/ |
| |
| var test; |
| |
| var tokenCodes = { |
| set undefined(value) { test = 'undefined'; }, |
| get undefined() { return 'undefined'; }, |
| set NaN(value) { test = 'NaN'; }, |
| get NaN() { return 'NaN'; }, |
| set Infinity(value) { test = 'Infinity'; }, |
| get Infinity() { return 'Infinity'; }, |
| }; |
| |
| var arr = [ |
| 'undefined', |
| 'NaN', |
| 'Infinity', |
| ]; |
| |
| 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'); |
| } |