[JS IR] Optimize JS AST for closures

^KT-58891 Fixed
This commit is contained in:
Alexander Korepanov
2023-07-06 22:17:50 +02:00
committed by Space Team
parent 524c475834
commit a588e75c11
9 changed files with 136 additions and 2 deletions
@@ -0,0 +1,34 @@
function test1(x) {
var $tmp;
if (x == null) {
return 'OK';
} else {
$tmp = x;
}
var z = $tmp;
return 'Fail 1: ' + z;
}
function test2(x) {
return function () {
var $tmp0_elvis_lhs = x;
var $tmp;
if ($tmp0_elvis_lhs == null) {
return 'OK';
} else {
$tmp = $tmp0_elvis_lhs;
}
var z = $tmp;
return 'Fail 1: ' + z;
}
}
function box() {
if (test1(null) != "OK") {
return "Fail test1";
}
if (test2(null)() != "OK") {
return "Fail test2";
}
return "OK"
}
@@ -0,0 +1,39 @@
function test1(x) {
var $tmp0_elvis_lhs = x;
var $tmp;
if ($tmp0_elvis_lhs == null) {
var $tmp$ret$0;
return 'OK';
$tmp = $tmp$ret$0;
} else {
$tmp = $tmp0_elvis_lhs;
}
var z = $tmp;
return 'Fail 1: ' + z;
}
function test2(x) {
return function () {
var $tmp0_elvis_lhs = x;
var $tmp;
if ($tmp0_elvis_lhs == null) {
var $tmp$ret$0;
return 'OK';
$tmp = $tmp$ret$0;
} else {
$tmp = $tmp0_elvis_lhs;
}
var z = $tmp;
return 'Fail 1: ' + z;
}
}
function box() {
if (test1(null) != "OK") {
return "Fail test1";
}
if (test2(null)() != "OK") {
return "Fail test2";
}
return "OK"
}