X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/arguments-bizarre-behaviour-disable-enumerability.js diff --git a/tests/stress/arguments-bizarre-behaviour-disable-enumerability.js b/tests/stress/arguments-bizarre-behaviour-disable-enumerability.js new file mode 100644 index 0000000..947850a --- /dev/null +++ b/tests/stress/arguments-bizarre-behaviour-disable-enumerability.js @@ -0,0 +1,30 @@ +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();