* fix: arrow-fn transformation when 'arguments' is defined as var * fix: tests * refactor: code * Review by @nicolo-ribaudo Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
82 lines
1.2 KiB
JavaScript
82 lines
1.2 KiB
JavaScript
function one() {
|
|
var inner = () => arguments;
|
|
return [].slice.call(inner());
|
|
}
|
|
one(1, 2);
|
|
|
|
function two() {
|
|
var inner = () => arguments;
|
|
|
|
var another = function () {
|
|
var inner2 = () => arguments;
|
|
};
|
|
|
|
return [].slice.call(inner());
|
|
}
|
|
two(1, 2);
|
|
|
|
function three() {
|
|
var fn = () => arguments[0] + "bar";
|
|
return fn();
|
|
}
|
|
three("foo");
|
|
|
|
function four() {
|
|
var fn = () => arguments[0].foo + "bar";
|
|
return fn();
|
|
}
|
|
four({ foo: "foo" });
|
|
|
|
function five(obj) {
|
|
var fn = () => obj.arguments[0].foo + "bar";
|
|
return fn();
|
|
}
|
|
five({ arguments: ["foo"] });
|
|
|
|
function six(obj) {
|
|
var fn = () => {
|
|
var fn2 = function () {
|
|
return arguments[0];
|
|
};
|
|
return fn2("foobar");
|
|
};
|
|
return fn();
|
|
}
|
|
six();
|
|
|
|
var seven = () => {
|
|
var arguments = 1;
|
|
return arguments;
|
|
};
|
|
seven();
|
|
|
|
var eight = () => {
|
|
var arguments = 1;
|
|
return () => arguments;
|
|
};
|
|
eight();
|
|
|
|
function nine() {
|
|
var arguments = 1;
|
|
var foo = () => {
|
|
return arguments;
|
|
};
|
|
}
|
|
nine();
|
|
|
|
var eleven = () => {
|
|
var arguments = 2;
|
|
return function () {
|
|
return () => arguments;
|
|
}
|
|
};
|
|
eleven()(1,2,3)();
|
|
|
|
var twelve = () => {
|
|
var arguments = 2;
|
|
return class {
|
|
m() { return () => arguments; }
|
|
}
|
|
};
|
|
twelve();
|