diff --git a/lib/output.js b/lib/output.js index dc78a5da..90589a2d 100644 --- a/lib/output.js +++ b/lib/output.js @@ -1016,6 +1016,11 @@ function OutputStream(options) { a.forEach(function(exp, i){ if (i) output.comma(); exp.print(output); + // If the final element is a hole, we need to make sure it + // doesn't look like a trailing comma, by inserting an actual + // trailing comma. + if (i === len - 1 && exp instanceof AST_Hole) + output.comma(); }); if (len > 0) output.space(); }); diff --git a/test/compress/arrays.js b/test/compress/arrays.js index 10fe6eb5..0c3d8ba2 100644 --- a/test/compress/arrays.js +++ b/test/compress/arrays.js @@ -1,10 +1,12 @@ holes_and_undefined: { input: { + w = [1,,]; x = [1, 2, undefined]; y = [1, , 2, ]; z = [1, undefined, 3]; } expect: { + w=[1,,]; x=[1,2,void 0]; y=[1,,2]; z=[1,void 0,3];