Skip to content

Commit

Permalink
Include line-breaks with the previous statement instead of the
Browse files Browse the repository at this point in the history
next—even though it can produce less nice code—as otherwise, it was not
guaranteed each single line comment was properly closed
  • Loading branch information
lukastaegert committed Feb 11, 2018
1 parent 9ff220f commit 6b30972
Show file tree
Hide file tree
Showing 22 changed files with 87 additions and 45 deletions.
8 changes: 3 additions & 5 deletions src/utils/renderHelpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ export function findFirstOccurrenceOutsideComment (code: string, searchString: s
return ~lineBreakPos ? codeStart + lineBreakPos : -1;
}

// Note that if the string is not found, "0" is returned instead of e.g. "-1" as this works best
// for the main use case
export function findFirstLineBreakOutsideComment (code: string) {
let codeStart = 0;
let commentStart, commentLength, lineBreakPos;
Expand All @@ -42,22 +40,22 @@ export function findFirstLineBreakOutsideComment (code: string) {
code = code.slice(commentLength);
codeStart += commentStart + commentLength;
}
return ~lineBreakPos ? codeStart + lineBreakPos : 0;
return ~lineBreakPos ? codeStart + lineBreakPos : -1;
}

export function renderStatementList (statements: Node[], code: MagicString, start: number, end: number, options: RenderOptions) {
if (statements.length === 0) return;
let currentNode, currentNodeStart;
let nextNode = statements[0];
let nextNodeStart = start + findFirstLineBreakOutsideComment(code.original.slice(start, nextNode.start));
let nextNodeStart = start + findFirstLineBreakOutsideComment(code.original.slice(start, nextNode.start)) + 1;

for (let nextIndex = 1; nextIndex <= statements.length; nextIndex++) {
currentNode = nextNode;
currentNodeStart = nextNodeStart;
nextNode = statements[nextIndex];
nextNodeStart = currentNode.end + findFirstLineBreakOutsideComment(
code.original.slice(currentNode.end, nextNode === undefined ? end : nextNode.start)
);
) + 1;
if (currentNode.included) {
currentNode.render(code, options, { start: currentNodeStart, end: nextNodeStart });
} else {
Expand Down
3 changes: 1 addition & 2 deletions test/form/samples/empty-statement/_expected/amd.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
define(function () { 'use strict';

console.log( 1 );
console.log( 2 );
console.log( 1 );console.log( 2 );

});
3 changes: 1 addition & 2 deletions test/form/samples/empty-statement/_expected/cjs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
'use strict';

console.log( 1 );
console.log( 2 );
console.log( 1 );console.log( 2 );
3 changes: 1 addition & 2 deletions test/form/samples/empty-statement/_expected/es.js
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
console.log( 1 );
console.log( 2 );
console.log( 1 );console.log( 2 );
3 changes: 1 addition & 2 deletions test/form/samples/empty-statement/_expected/iife.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
(function () {
'use strict';

console.log( 1 );
console.log( 2 );
console.log( 1 );console.log( 2 );

}());
3 changes: 1 addition & 2 deletions test/form/samples/empty-statement/_expected/umd.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
(factory());
}(this, (function () { 'use strict';

console.log( 1 );
console.log( 2 );
console.log( 1 );console.log( 2 );

})));
16 changes: 12 additions & 4 deletions test/form/samples/render-removed-statements/_expected/amd.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
define(function () { 'use strict';

/* header retained */
/* lead
retained */ console.log(2); // trail retained
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
console.log(2);

if (globalVar) {
// lead retained
console.log(2); // trail retained
Expand All @@ -32,17 +39,18 @@ define(function () { 'use strict';
if (globalVar) { /* retained */ console.log(2);}

switch (globalVar) {
case 1:
case 1: // retained
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead retained
console.log(2); // trail retained
case 3:
case 3: // retained
// lead retained
console.log(2); // trail retained

case 4: /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead retained */
console.log(2); // trail retained
}
Expand Down
16 changes: 12 additions & 4 deletions test/form/samples/render-removed-statements/_expected/cjs.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
'use strict';

/* header retained */
/* lead
retained */ console.log(2); // trail retained
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
console.log(2);

if (globalVar) {
// lead retained
console.log(2); // trail retained
Expand All @@ -32,17 +39,18 @@ if (globalVar) { /* retained */ console.log(2);}
if (globalVar) { /* retained */ console.log(2);}

switch (globalVar) {
case 1:
case 1: // retained
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead retained
console.log(2); // trail retained
case 3:
case 3: // retained
// lead retained
console.log(2); // trail retained

case 4: /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead retained */
console.log(2); // trail retained
}
Expand Down
16 changes: 12 additions & 4 deletions test/form/samples/render-removed-statements/_expected/es.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
/* header retained */
/* lead
retained */ console.log(2); // trail retained
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
console.log(2);

if (globalVar) {
// lead retained
console.log(2); // trail retained
Expand All @@ -30,17 +37,18 @@ if (globalVar) { /* retained */ console.log(2);}
if (globalVar) { /* retained */ console.log(2);}

switch (globalVar) {
case 1:
case 1: // retained
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead retained
console.log(2); // trail retained
case 3:
case 3: // retained
// lead retained
console.log(2); // trail retained

case 4: /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead retained */
console.log(2); // trail retained
}
Expand Down
16 changes: 12 additions & 4 deletions test/form/samples/render-removed-statements/_expected/iife.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@
'use strict';

/* header retained */
/* lead
retained */ console.log(2); // trail retained
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
console.log(2);

if (globalVar) {
// lead retained
console.log(2); // trail retained
Expand All @@ -33,17 +40,18 @@
if (globalVar) { /* retained */ console.log(2);}

switch (globalVar) {
case 1:
case 1: // retained
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead retained
console.log(2); // trail retained
case 3:
case 3: // retained
// lead retained
console.log(2); // trail retained

case 4: /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead retained */
console.log(2); // trail retained
}
Expand Down
16 changes: 12 additions & 4 deletions test/form/samples/render-removed-statements/_expected/umd.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@
}(this, (function () { 'use strict';

/* header retained */
/* lead
retained */ console.log(2); // trail retained
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
console.log(2);

if (globalVar) {
// lead retained
console.log(2); // trail retained
Expand All @@ -36,17 +43,18 @@
if (globalVar) { /* retained */ console.log(2);}

switch (globalVar) {
case 1:
case 1: // retained
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead retained
console.log(2); // trail retained
case 3:
case 3: // retained
// lead retained
console.log(2); // trail retained

case 4: /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead retained */
console.log(2); // trail retained
}
Expand Down
19 changes: 14 additions & 5 deletions test/form/samples/render-removed-statements/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,24 @@

/* lead removed */ var a = 1; // trail removed

/* lead removed */
var a = 1; /* lead
retained */ console.log(2); // trail retained

/* lead removed */
var a = 1; /* trail
removed */ /* trail
removed */
console.log(2); // trail retained

/* lead retained */
console.log(2); /* trail
retained */ /* trail
retained */

console.log(2); // trail retained
var a = 1; console.log(2);

if (globalVar) {
// lead removed
var a = 1; // trail removed
Expand Down Expand Up @@ -46,25 +56,24 @@ if (globalVar) { /* removed */ var a = 1; /* retained */ console.log(2); /* remo
if (globalVar) { /* retained */ console.log(2); /* removed */ var a = 1;}

switch (globalVar) {
case 1:
case 1: // retained
// lead removed
var a = 1; // trail removed
// lead retained
console.log(2); // trail retained
case 2:
case 2: // retained
// lead removed
var a = 1; // trail removed
// lead retained
console.log(2); // trail retained
// lead removed
var a = 1;
case 3:
var a = 1; case 3: // retained
// lead retained
console.log(2); // trail retained
// lead removed
var a = 1;
case 4: /* lead removed */ var a = 1; /* lead retained */ console.log('3'); // trail retained
default:
default: // retained
/* lead removed */
var a = 1; // trail removed
/* lead retained */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ define(function () { 'use strict';
case baz:
effect();
default:

}

switch ( globalVar ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ switch ( globalVar ) {
case baz:
effect();
default:

}

switch ( globalVar ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ switch ( globalVar ) {
case baz:
effect();
default:

}

switch ( globalVar ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
case baz:
effect();
default:

}

switch ( globalVar ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
case baz:
effect();
default:

}

switch ( globalVar ) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
define(function () { 'use strict';

function x () { return 'x' }

assert.equal( x(), 'x' );

});
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
'use strict';

function x () { return 'x' }

assert.equal( x(), 'x' );
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
function x () { return 'x' }

assert.equal( x(), 'x' );
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
'use strict';

function x () { return 'x' }

assert.equal( x(), 'x' );

}());
Loading

0 comments on commit 6b30972

Please sign in to comment.