var foo = function(it) {
var a = [...it, , ];
print(a);
print(a.length);
};
var Parameter0 = [1, 2];
foo(Parameter0);
Output 1
1,2
2
Expected behavior
1,2,
3
Test case 2
var foo = function(it) {
var arr = [ , ];
var a = it.concat(arr);
print(a);
print(a.length);
};
var Parameter0 = [1, 2];
foo(Parameter0);
Output 2
1,2,
3
Description
We tested on multiple JS engines, Testcase 1 and Testcase 2 should have the same consequent. But jerryscript outputs abnormal results when executing Testcase 1.
Maybe the problem is about array literal handling which looks like it deleted all the vacancies. The same bug has reported to Hermes(https://github.com/facebook/hermes/issues/729) and has been fixed.
Version
Version: 3.0.0 ( 6fe763f )
Execution steps
Test case 1
Output 1
Expected behavior
Test case 2
Output 2
Description
We tested on multiple JS engines, Testcase 1 and Testcase 2 should have the same consequent. But jerryscript outputs abnormal results when executing Testcase 1.
Maybe the problem is about array literal handling which looks like it deleted all the vacancies. The same bug has reported to Hermes(https://github.com/facebook/hermes/issues/729) and has been fixed.
Looking forward to your reply :)