blob: 682f25d6efe04f70b9fb0c0cb63d8543c3f830e6 [file] [log] [blame]
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));