mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 22:40:28 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
159 lines
3.1 KiB
JavaScript
159 lines
3.1 KiB
JavaScript
function assert(b) {
|
|
if (!b)
|
|
throw new Error("Bad assertion")
|
|
}
|
|
|
|
(function (x = 20) {
|
|
var a;
|
|
assert(arguments.length === 0);
|
|
assert(typeof arguments !== "function");
|
|
{
|
|
function arguments() {
|
|
}
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
assert(typeof arguments === "function");
|
|
}());
|
|
|
|
(function (x = () => arguments) {
|
|
var a;
|
|
let originalArguments = x();
|
|
assert(originalArguments === arguments);
|
|
let z;
|
|
{
|
|
function arguments() { return 25; }
|
|
z = arguments;
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
assert(z !== originalArguments);
|
|
assert(x() === z);
|
|
assert(typeof z === "function");
|
|
assert(z() === 25);
|
|
}());
|
|
|
|
(function ({arguments}) {
|
|
assert(arguments === 20);
|
|
|
|
var a;
|
|
{
|
|
function arguments() { return 25; }
|
|
assert(arguments() === 25);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(arguments === 20);
|
|
}({arguments: 20}));
|
|
|
|
(function (y = () => arguments, {arguments}) {
|
|
assert(y() === arguments);
|
|
var a;
|
|
{
|
|
function arguments() { return 25; }
|
|
assert(arguments() === 25);
|
|
assert(y() !== arguments);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(y() === arguments);
|
|
}(undefined, {arguments: {}}));
|
|
|
|
(function (y = () => arguments, z = y(), {arguments}) {
|
|
assert(typeof z === "object");
|
|
assert(z.length === 3);
|
|
assert(z[0] === undefined);
|
|
assert(z[1] === undefined);
|
|
assert(typeof z[2] === "object");
|
|
assert(z[2].arguments === arguments);
|
|
assert(y() === arguments);
|
|
|
|
var a;
|
|
{
|
|
function arguments() { return 25; }
|
|
assert(arguments() === 25);
|
|
assert(y() !== arguments);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(y() === arguments);
|
|
}(undefined, undefined, {arguments: {}}));
|
|
|
|
(function (arguments) {
|
|
assert(arguments === 25);
|
|
|
|
var a;
|
|
{
|
|
function arguments() { return 30; }
|
|
assert(arguments() === 30);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(arguments === 25);
|
|
}(25));
|
|
|
|
(function (arguments) {
|
|
assert(arguments === 25);
|
|
let foo = () => arguments;
|
|
assert(foo() === arguments);
|
|
|
|
var a;
|
|
{
|
|
function arguments() { return 30; }
|
|
assert(arguments() === 30);
|
|
assert(foo() === 25);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(arguments === 25);
|
|
assert(foo() === arguments);
|
|
}(25));
|
|
|
|
(function () {
|
|
assert(arguments.length === 1);
|
|
assert(arguments[0] === 25);
|
|
|
|
let outer = () => arguments;
|
|
var a;
|
|
{
|
|
assert(outer()[0] === 25);
|
|
function arguments() { return 30; }
|
|
assert(outer() === arguments);
|
|
assert(outer()() === 30);
|
|
assert(arguments() === 30);
|
|
|
|
function b() {
|
|
var g = 1;
|
|
a[5];
|
|
}
|
|
}
|
|
|
|
assert(arguments() === 30);
|
|
}(25));
|