Fix arrow transformation when arguments is defined as variable (#12344)
* 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>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
function fn() {
|
||||
var foo = () => {
|
||||
return arguments;
|
||||
};
|
||||
}
|
||||
|
||||
var bar = () => arguments;
|
||||
|
||||
var baz = () => () => arguments;
|
||||
@@ -0,0 +1,19 @@
|
||||
var _arguments2 = typeof arguments === "undefined" ? void 0 : arguments;
|
||||
|
||||
function fn() {
|
||||
var _arguments = arguments;
|
||||
|
||||
var foo = function () {
|
||||
return _arguments;
|
||||
};
|
||||
}
|
||||
|
||||
var bar = function () {
|
||||
return _arguments2;
|
||||
};
|
||||
|
||||
var baz = function () {
|
||||
return function () {
|
||||
return _arguments2;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
var arguments = 1;
|
||||
function fn() {
|
||||
var foo = () => {
|
||||
return arguments;
|
||||
};
|
||||
}
|
||||
|
||||
var bar = () => arguments;
|
||||
|
||||
var baz = () => () => arguments;
|
||||
@@ -0,0 +1,19 @@
|
||||
var _arguments2 = 1;
|
||||
|
||||
function fn() {
|
||||
var _arguments = _arguments2;
|
||||
|
||||
var foo = function () {
|
||||
return _arguments;
|
||||
};
|
||||
}
|
||||
|
||||
var bar = function () {
|
||||
return _arguments2;
|
||||
};
|
||||
|
||||
var baz = function () {
|
||||
return function () {
|
||||
return _arguments2;
|
||||
};
|
||||
};
|
||||
@@ -43,3 +43,39 @@ function six(obj) {
|
||||
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();
|
||||
|
||||
@@ -81,3 +81,56 @@ function six(obj) {
|
||||
}
|
||||
|
||||
six();
|
||||
|
||||
var seven = function () {
|
||||
var _arguments6 = 1;
|
||||
return _arguments6;
|
||||
};
|
||||
|
||||
seven();
|
||||
|
||||
var eight = function () {
|
||||
var _arguments7 = 1;
|
||||
return function () {
|
||||
return _arguments7;
|
||||
};
|
||||
};
|
||||
|
||||
eight();
|
||||
|
||||
function nine() {
|
||||
var _arguments8 = 1;
|
||||
|
||||
var foo = function () {
|
||||
return _arguments8;
|
||||
};
|
||||
}
|
||||
|
||||
nine();
|
||||
|
||||
var eleven = function () {
|
||||
var arguments = 2;
|
||||
return function () {
|
||||
var _arguments9 = arguments;
|
||||
return function () {
|
||||
return _arguments9;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
eleven()(1, 2, 3)();
|
||||
|
||||
var twelve = function () {
|
||||
var arguments = 2;
|
||||
return class {
|
||||
m() {
|
||||
var _arguments10 = arguments;
|
||||
return function () {
|
||||
return _arguments10;
|
||||
};
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
twelve();
|
||||
|
||||
Reference in New Issue
Block a user