description("This test verifies that the functions of the Date prototype object are not generic, as documented in ECMA-262 rev3 section 15.9.5 Properties of the Date Prototype Object.");
var functionNames = [
"Date.prototype.toString",
"Date.prototype.toDateString",
"Date.prototype.toTimeString",
"Date.prototype.toGMTString",
"Date.prototype.toUTCString",
"Date.prototype.toLocaleString",
"Date.prototype.toLocaleDateString",
"Date.prototype.toLocaleTimeString",
// "Date.prototype.valueOf", --> This line seems to confuse JavaScriptCore
"Date.prototype.getTime",
"Date.prototype.getYear",
"Date.prototype.getFullYear",
"Date.prototype.getMonth",
"Date.prototype.getDate",
"Date.prototype.getDay",
"Date.prototype.getHours",
"Date.prototype.getMinutes",
"Date.prototype.getSeconds",
"Date.prototype.getMilliseconds",
"Date.prototype.getTimezoneOffset",
"Date.prototype.setTime",
"Date.prototype.setMilliseconds",
"Date.prototype.setSeconds",
"Date.prototype.setMinutes",
"Date.prototype.setHours",
"Date.prototype.setDate",
"Date.prototype.setMonth",
"Date.prototype.setFullYear",
"Date.prototype.setYear"
];
var o = new Object();
for (var i = 0; i < functionNames.length; i++) {
var testFunctionName = "o.__proto__." + functionNames[i].split('.')[2];
eval(testFunctionName + " = " + functionNames[i]);
shouldThrow(testFunctionName + "()");
}