1b6bcca7 was a first attempt at this. That commit made Uglify stop replacing
holes with undefined, but instead it started replacing undefined with
holes. This is slightly problematic, because there is a difference between a
hole and an undefined value. More problematically, it changed [1,undefined] to
[1,] which generally doesn't even parse as a hole (just as a trailing comma), so
it didn't even preserve the length of the array!
Instead, parse holes as their own special AST node which prints invisibly.
13 lines
216 B
JavaScript
13 lines
216 B
JavaScript
holes_and_undefined: {
|
|
input: {
|
|
x = [1, 2, undefined];
|
|
y = [1, , 2, ];
|
|
z = [1, undefined, 3];
|
|
}
|
|
expect: {
|
|
x=[1,2,void 0];
|
|
y=[1,,2];
|
|
z=[1,void 0,3];
|
|
}
|
|
}
|