function foo(x) { | |
Object.defineProperty(arguments, 0, {configurable: true, enumerable: false, writable:true, value:42}); | |
return [x, arguments[0], arguments] | |
} | |
var result = foo(1); | |
if (result[0] !== 42) | |
throw new Error(); | |
if (result[1] !== 42) | |
throw new Error(); | |
if (Array.prototype.join.call(result[2], ",") != "42") | |
throw new Error(); | |
var array = []; | |
for (var s in result[2]) | |
array.push(s); | |
if (array.join(",") != "0") | |
throw new Error(); | |
if (Object.keys(result[2]).join(",") != "0") | |
throw new Error(); | |
// FIXME: This is totally weird! | |
// https://bugs.webkit.org/show_bug.cgi?id=141952 | |
if (Object.getOwnPropertyDescriptor(result[2], 0).enumerable !== true) | |
throw new Error(); |