From 7f94b40a6c933dd880865c3661ca4b59a080f8ec Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 21 Jun 2019 16:01:35 +0200 Subject: [PATCH] Keep annotations and comments when simplifying logical and conditional expressions --- src/ast/nodes/ConditionalExpression.ts | 20 +++++++++++-- src/ast/nodes/LogicalExpression.ts | 18 ++++++++++-- src/ast/nodes/SequenceExpression.ts | 7 ----- .../_expected/amd/hsl2hsv.js | 2 +- .../_expected/cjs/hsl2hsv.js | 2 +- .../_expected/es/hsl2hsv.js | 2 +- .../_expected/system/hsl2hsv.js | 2 +- .../amd/{ddf3b5f1.js => 3eaceb21.js} | 2 +- .../cjs/{c7812cd2.js => 3257e13f.js} | 2 +- .../_expected/es/{b2f33663.js => 9e951b77.js} | 2 +- .../system/{19f42775.js => a6fb0f6b.js} | 2 +- .../_config.js | 0 .../_expected.js | 0 .../c.js | 0 .../main.js | 0 .../conditional-expression-paths/_expected.js | 12 ++++---- .../conditional-expression/_expected/amd.js | 12 ++++---- .../conditional-expression/_expected/cjs.js | 12 ++++---- .../conditional-expression/_expected/es.js | 12 ++++---- .../conditional-expression/_expected/iife.js | 12 ++++---- .../_expected/system.js | 12 ++++---- .../conditional-expression/_expected/umd.js | 12 ++++---- .../{_expected/es.js => _expected.js} | 4 +-- .../_expected/amd.js | 10 ------- .../_expected/cjs.js | 8 ------ .../_expected/iife.js | 11 -------- .../_expected/system.js | 15 ---------- .../_expected/umd.js | 13 --------- .../mutate-logical-expression/_config.js | 0 .../_expected/amd.js | 4 +-- .../_expected/cjs.js | 4 +-- .../mutate-logical-expression/_expected/es.js | 4 +-- .../_expected/iife.js | 4 +-- .../_expected/system.js | 4 +-- .../_expected/umd.js | 4 +-- .../mutate-logical-expression/main.js | 0 .../simplify-non-boolean/_expected.js | 8 +++--- .../pure-comment-line-break/_expected.js | 4 +-- .../_expected.js | 4 +-- .../_expected/amd.js | 28 +++++++++---------- .../_expected/cjs.js | 28 +++++++++---------- .../_expected/es.js | 28 +++++++++---------- .../_expected/iife.js | 28 +++++++++---------- .../_expected/system.js | 28 +++++++++---------- .../_expected/umd.js | 28 +++++++++---------- .../_config.js | 3 ++ .../_expected.js | 4 +++ .../simplify-expression-annotations/main.js | 4 +++ .../simplify-return-expression/_expected.js | 4 +-- .../skips-dead-branches-g/_expected/amd.js | 4 +-- .../skips-dead-branches-g/_expected/cjs.js | 4 +-- .../skips-dead-branches-g/_expected/es.js | 4 +-- .../skips-dead-branches-g/_expected/iife.js | 4 +-- .../skips-dead-branches-g/_expected/system.js | 4 +-- .../skips-dead-branches-g/_expected/umd.js | 4 +-- .../samples/supports-core-js/_expected.js | 26 ++++++++--------- .../_expected/amd.js | 8 +++--- .../_expected/cjs.js | 8 +++--- .../_expected/es.js | 8 +++--- .../_expected/iife.js | 8 +++--- .../_expected/system.js | 8 +++--- .../_expected/umd.js | 8 +++--- .../_expected/amd.js | 16 +++++------ .../_expected/cjs.js | 16 +++++------ .../_expected/es.js | 16 +++++------ .../_expected/iife.js | 16 +++++------ .../_expected/system.js | 16 +++++------ .../_expected/umd.js | 16 +++++------ test/misc/bundle-information.js | 2 +- 69 files changed, 299 insertions(+), 326 deletions(-) rename test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/{ddf3b5f1.js => 3eaceb21.js} (74%) rename test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/{c7812cd2.js => 3257e13f.js} (68%) rename test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/{b2f33663.js => 9e951b77.js} (55%) rename test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/{19f42775.js => a6fb0f6b.js} (71%) rename test/form/samples/{asi-var => automatic-semicolon-insertion-var}/_config.js (100%) rename test/form/samples/{asi-var => automatic-semicolon-insertion-var}/_expected.js (100%) rename test/form/samples/{asi-var => automatic-semicolon-insertion-var}/c.js (100%) rename test/form/samples/{asi-var => automatic-semicolon-insertion-var}/main.js (100%) rename test/form/samples/conditional-put-parens-around-sequence/{_expected/es.js => _expected.js} (61%) delete mode 100644 test/form/samples/conditional-put-parens-around-sequence/_expected/amd.js delete mode 100644 test/form/samples/conditional-put-parens-around-sequence/_expected/cjs.js delete mode 100644 test/form/samples/conditional-put-parens-around-sequence/_expected/iife.js delete mode 100644 test/form/samples/conditional-put-parens-around-sequence/_expected/system.js delete mode 100644 test/form/samples/conditional-put-parens-around-sequence/_expected/umd.js rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_config.js (100%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/amd.js (86%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/cjs.js (84%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/es.js (77%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/iife.js (84%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/system.js (85%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/_expected/umd.js (91%) rename test/form/samples/{ => logical-expression}/mutate-logical-expression/main.js (100%) create mode 100644 test/form/samples/simplify-expression-annotations/_config.js create mode 100644 test/form/samples/simplify-expression-annotations/_expected.js create mode 100644 test/form/samples/simplify-expression-annotations/main.js diff --git a/src/ast/nodes/ConditionalExpression.ts b/src/ast/nodes/ConditionalExpression.ts index 0c344db9c06..4cb71af5cb8 100644 --- a/src/ast/nodes/ConditionalExpression.ts +++ b/src/ast/nodes/ConditionalExpression.ts @@ -1,6 +1,10 @@ import MagicString from 'magic-string'; import { BLANK } from '../../utils/blank'; -import { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers'; +import { + findFirstOccurrenceOutsideComment, + NodeRenderOptions, + RenderOptions +} from '../../utils/renderHelpers'; import { removeAnnotations } from '../../utils/treeshakeNode'; import CallOptions from '../CallOptions'; import { DeoptimizableEntity } from '../DeoptimizableEntity'; @@ -150,8 +154,18 @@ export default class ConditionalExpression extends NodeBase implements Deoptimiz { renderedParentType, isCalleeOfRenderedParent }: NodeRenderOptions = BLANK ) { if (!this.test.included) { - code.remove(this.start, (this.usedBranch as ExpressionNode).start); - code.remove((this.usedBranch as ExpressionNode).end, this.end); + const colonPos = findFirstOccurrenceOutsideComment(code.original, ':', this.consequent.end); + if (this.consequent.included) { + const questionmarkPos = findFirstOccurrenceOutsideComment( + code.original, + '?', + this.test.end + ); + code.remove(this.start, questionmarkPos + 1); + code.remove(colonPos, this.end); + } else { + code.remove(this.start, colonPos + 1); + } removeAnnotations(this, code); (this.usedBranch as ExpressionNode).render(code, options, { isCalleeOfRenderedParent: renderedParentType diff --git a/src/ast/nodes/LogicalExpression.ts b/src/ast/nodes/LogicalExpression.ts index 3b7e55e1c38..c5f38d7e7b4 100644 --- a/src/ast/nodes/LogicalExpression.ts +++ b/src/ast/nodes/LogicalExpression.ts @@ -1,6 +1,10 @@ import MagicString from 'magic-string'; import { BLANK } from '../../utils/blank'; -import { NodeRenderOptions, RenderOptions } from '../../utils/renderHelpers'; +import { + findFirstOccurrenceOutsideComment, + NodeRenderOptions, + RenderOptions +} from '../../utils/renderHelpers'; import { removeAnnotations } from '../../utils/treeshakeNode'; import CallOptions from '../CallOptions'; import { DeoptimizableEntity } from '../DeoptimizableEntity'; @@ -154,8 +158,16 @@ export default class LogicalExpression extends NodeBase implements Deoptimizable { renderedParentType, isCalleeOfRenderedParent }: NodeRenderOptions = BLANK ) { if (!this.left.included || !this.right.included) { - code.remove(this.start, (this.usedBranch as ExpressionNode).start); - code.remove((this.usedBranch as ExpressionNode).end, this.end); + const operatorPos = findFirstOccurrenceOutsideComment( + code.original, + this.operator, + this.left.end + ); + if (this.right.included) { + code.remove(this.start, operatorPos + 2); + } else { + code.remove(operatorPos, this.end); + } removeAnnotations(this, code); (this.usedBranch as ExpressionNode).render(code, options, { isCalleeOfRenderedParent: renderedParentType diff --git a/src/ast/nodes/SequenceExpression.ts b/src/ast/nodes/SequenceExpression.ts index a871817d590..af8fcbc1d69 100644 --- a/src/ast/nodes/SequenceExpression.ts +++ b/src/ast/nodes/SequenceExpression.ts @@ -84,7 +84,6 @@ export default class SequenceExpression extends NodeBase { { renderedParentType, isCalleeOfRenderedParent }: NodeRenderOptions = BLANK ) { let firstStart = 0, - lastEnd, includedNodes = 0; for (const { node, start, end } of getCommaSeparatedNodesWithBoundaries( this.expressions, @@ -98,7 +97,6 @@ export default class SequenceExpression extends NodeBase { } includedNodes++; if (firstStart === 0) firstStart = start; - lastEnd = end; if (node === this.expressions[this.expressions.length - 1] && includedNodes === 1) { node.render(code, options, { isCalleeOfRenderedParent: renderedParentType @@ -110,10 +108,5 @@ export default class SequenceExpression extends NodeBase { node.render(code, options); } } - // Round brackets are part of the actual parent and should be re-added in case the parent changed - if (includedNodes > 1 && renderedParentType) { - code.prependRight(firstStart, '('); - code.appendLeft(lastEnd as number, ')'); - } } } diff --git a/test/chunking-form/samples/namespace-reexports/_expected/amd/hsl2hsv.js b/test/chunking-form/samples/namespace-reexports/_expected/amd/hsl2hsv.js index 9b214a2f074..24f12a215a4 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/amd/hsl2hsv.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/amd/hsl2hsv.js @@ -3,7 +3,7 @@ define(['exports'], function (exports) { 'use strict'; var hsl2hsv = (h, s, l) => { const t = s * (l < 0.5 ? 1 : 1 - l), V = 1 + t, - S = 2 * t / V; + S = 2 * t / V ; return [h, S, V]; }; diff --git a/test/chunking-form/samples/namespace-reexports/_expected/cjs/hsl2hsv.js b/test/chunking-form/samples/namespace-reexports/_expected/cjs/hsl2hsv.js index cd8eeb9ec8c..0f6d686f138 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/cjs/hsl2hsv.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/cjs/hsl2hsv.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); var hsl2hsv = (h, s, l) => { const t = s * (l < 0.5 ? 1 : 1 - l), V = 1 + t, - S = 2 * t / V; + S = 2 * t / V ; return [h, S, V]; }; diff --git a/test/chunking-form/samples/namespace-reexports/_expected/es/hsl2hsv.js b/test/chunking-form/samples/namespace-reexports/_expected/es/hsl2hsv.js index 8b3ec298965..17aa334990a 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/es/hsl2hsv.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/es/hsl2hsv.js @@ -1,7 +1,7 @@ var hsl2hsv = (h, s, l) => { const t = s * (l < 0.5 ? 1 : 1 - l), V = 1 + t, - S = 2 * t / V; + S = 2 * t / V ; return [h, S, V]; }; diff --git a/test/chunking-form/samples/namespace-reexports/_expected/system/hsl2hsv.js b/test/chunking-form/samples/namespace-reexports/_expected/system/hsl2hsv.js index 5ae364c1b4a..c106dbea40b 100644 --- a/test/chunking-form/samples/namespace-reexports/_expected/system/hsl2hsv.js +++ b/test/chunking-form/samples/namespace-reexports/_expected/system/hsl2hsv.js @@ -6,7 +6,7 @@ System.register([], function (exports) { var hsl2hsv = exports('default', (h, s, l) => { const t = s * (l < 0.5 ? 1 : 1 - l), V = 1 + t, - S = 2 * t / V; + S = 2 * t / V ; return [h, S, V]; }); diff --git a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/ddf3b5f1.js b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/3eaceb21.js similarity index 74% rename from test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/ddf3b5f1.js rename to test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/3eaceb21.js index 6cd703051b6..a8664412cb4 100644 --- a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/ddf3b5f1.js +++ b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/amd/3eaceb21.js @@ -1,6 +1,6 @@ define(function () { 'use strict'; - var main = null; + var main = null; return main; diff --git a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/c7812cd2.js b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/3257e13f.js similarity index 68% rename from test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/c7812cd2.js rename to test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/3257e13f.js index 17727e7adc9..cffa3b92f13 100644 --- a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/c7812cd2.js +++ b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/cjs/3257e13f.js @@ -1,5 +1,5 @@ 'use strict'; -var main = null; +var main = null; module.exports = main; diff --git a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/b2f33663.js b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/9e951b77.js similarity index 55% rename from test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/b2f33663.js rename to test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/9e951b77.js index ed075f84a16..520227215f2 100644 --- a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/b2f33663.js +++ b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/es/9e951b77.js @@ -1,3 +1,3 @@ -var main = null; +var main = null; export default main; diff --git a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/19f42775.js b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/a6fb0f6b.js similarity index 71% rename from test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/19f42775.js rename to test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/a6fb0f6b.js index f54762cad18..ed0ada9d5f0 100644 --- a/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/19f42775.js +++ b/test/chunking-form/samples/tree-shaken-dynamic-hash/_expected/system/a6fb0f6b.js @@ -3,7 +3,7 @@ System.register([], function (exports) { return { execute: function () { - var main = exports('default', null); + var main = exports('default', null); } }; diff --git a/test/form/samples/asi-var/_config.js b/test/form/samples/automatic-semicolon-insertion-var/_config.js similarity index 100% rename from test/form/samples/asi-var/_config.js rename to test/form/samples/automatic-semicolon-insertion-var/_config.js diff --git a/test/form/samples/asi-var/_expected.js b/test/form/samples/automatic-semicolon-insertion-var/_expected.js similarity index 100% rename from test/form/samples/asi-var/_expected.js rename to test/form/samples/automatic-semicolon-insertion-var/_expected.js diff --git a/test/form/samples/asi-var/c.js b/test/form/samples/automatic-semicolon-insertion-var/c.js similarity index 100% rename from test/form/samples/asi-var/c.js rename to test/form/samples/automatic-semicolon-insertion-var/c.js diff --git a/test/form/samples/asi-var/main.js b/test/form/samples/automatic-semicolon-insertion-var/main.js similarity index 100% rename from test/form/samples/asi-var/main.js rename to test/form/samples/automatic-semicolon-insertion-var/main.js diff --git a/test/form/samples/conditional-expression-paths/_expected.js b/test/form/samples/conditional-expression-paths/_expected.js index 32c71887574..c33903b0aea 100644 --- a/test/form/samples/conditional-expression-paths/_expected.js +++ b/test/form/samples/conditional-expression-paths/_expected.js @@ -7,10 +7,10 @@ var a2 = (unknownValue ? foo : baz).y.z; var b2 = (unknownValue ? foo : baz).x(); // known branch with side-effect -var a4 = (baz).y.z; -var b4 = (baz).y.z; -var c4 = (baz).x(); -var d4 = (baz).x(); +var a4 = ( baz ).y.z; +var b4 = ( baz).y.z; +var c4 = ( baz ).x(); +var d4 = ( baz).x(); var baz3 = {}; -(baz3).y.z = 1; -(baz3).y.z = 1; +( baz3 ).y.z = 1; +( baz3).y.z = 1; diff --git a/test/form/samples/conditional-expression/_expected/amd.js b/test/form/samples/conditional-expression/_expected/amd.js index 68d948bc2f0..0530f966def 100644 --- a/test/form/samples/conditional-expression/_expected/amd.js +++ b/test/form/samples/conditional-expression/_expected/amd.js @@ -11,11 +11,11 @@ define(function () { 'use strict'; (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect - var h1 = foo(); - var h2 = (function () {this.x = 1;})(); - var h3 = (() => () => console.log( 'effect' ))()(); - var i1 = foo(); - var i2 = (function () {this.x = 1;})(); - var i3 = (() => () => console.log( 'effect' ))()(); + var h1 = foo() ; + var h2 = ( function () {this.x = 1;} )(); + var h3 = ( () => () => console.log( 'effect' ) )()(); + var i1 = foo(); + var i2 = ( function () {this.x = 1;})(); + var i3 = ( () => () => console.log( 'effect' ))()(); }); diff --git a/test/form/samples/conditional-expression/_expected/cjs.js b/test/form/samples/conditional-expression/_expected/cjs.js index c61c76dde61..735061db60a 100644 --- a/test/form/samples/conditional-expression/_expected/cjs.js +++ b/test/form/samples/conditional-expression/_expected/cjs.js @@ -11,9 +11,9 @@ var d = unknownValue ? 1 : foo(); (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect -var h1 = foo(); -var h2 = (function () {this.x = 1;})(); -var h3 = (() => () => console.log( 'effect' ))()(); -var i1 = foo(); -var i2 = (function () {this.x = 1;})(); -var i3 = (() => () => console.log( 'effect' ))()(); +var h1 = foo() ; +var h2 = ( function () {this.x = 1;} )(); +var h3 = ( () => () => console.log( 'effect' ) )()(); +var i1 = foo(); +var i2 = ( function () {this.x = 1;})(); +var i3 = ( () => () => console.log( 'effect' ))()(); diff --git a/test/form/samples/conditional-expression/_expected/es.js b/test/form/samples/conditional-expression/_expected/es.js index b502efe6566..fdf36b9cd91 100644 --- a/test/form/samples/conditional-expression/_expected/es.js +++ b/test/form/samples/conditional-expression/_expected/es.js @@ -9,9 +9,9 @@ var d = unknownValue ? 1 : foo(); (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect -var h1 = foo(); -var h2 = (function () {this.x = 1;})(); -var h3 = (() => () => console.log( 'effect' ))()(); -var i1 = foo(); -var i2 = (function () {this.x = 1;})(); -var i3 = (() => () => console.log( 'effect' ))()(); +var h1 = foo() ; +var h2 = ( function () {this.x = 1;} )(); +var h3 = ( () => () => console.log( 'effect' ) )()(); +var i1 = foo(); +var i2 = ( function () {this.x = 1;})(); +var i3 = ( () => () => console.log( 'effect' ))()(); diff --git a/test/form/samples/conditional-expression/_expected/iife.js b/test/form/samples/conditional-expression/_expected/iife.js index ad32053c8c8..0946e0a6e5d 100644 --- a/test/form/samples/conditional-expression/_expected/iife.js +++ b/test/form/samples/conditional-expression/_expected/iife.js @@ -12,11 +12,11 @@ (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect - var h1 = foo(); - var h2 = (function () {this.x = 1;})(); - var h3 = (() => () => console.log( 'effect' ))()(); - var i1 = foo(); - var i2 = (function () {this.x = 1;})(); - var i3 = (() => () => console.log( 'effect' ))()(); + var h1 = foo() ; + var h2 = ( function () {this.x = 1;} )(); + var h3 = ( () => () => console.log( 'effect' ) )()(); + var i1 = foo(); + var i2 = ( function () {this.x = 1;})(); + var i3 = ( () => () => console.log( 'effect' ))()(); }()); diff --git a/test/form/samples/conditional-expression/_expected/system.js b/test/form/samples/conditional-expression/_expected/system.js index 35593bba8ae..5dfd74f4124 100644 --- a/test/form/samples/conditional-expression/_expected/system.js +++ b/test/form/samples/conditional-expression/_expected/system.js @@ -14,12 +14,12 @@ System.register([], function () { (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect - var h1 = foo(); - var h2 = (function () {this.x = 1;})(); - var h3 = (() => () => console.log( 'effect' ))()(); - var i1 = foo(); - var i2 = (function () {this.x = 1;})(); - var i3 = (() => () => console.log( 'effect' ))()(); + var h1 = foo() ; + var h2 = ( function () {this.x = 1;} )(); + var h3 = ( () => () => console.log( 'effect' ) )()(); + var i1 = foo(); + var i2 = ( function () {this.x = 1;})(); + var i3 = ( () => () => console.log( 'effect' ))()(); } }; diff --git a/test/form/samples/conditional-expression/_expected/umd.js b/test/form/samples/conditional-expression/_expected/umd.js index ecc38e4bc9a..f4dacd9abf8 100644 --- a/test/form/samples/conditional-expression/_expected/umd.js +++ b/test/form/samples/conditional-expression/_expected/umd.js @@ -14,11 +14,11 @@ (unknownValue ? function () {} : function () {this.x = 1;})(); // known side-effect - var h1 = foo(); - var h2 = (function () {this.x = 1;})(); - var h3 = (() => () => console.log( 'effect' ))()(); - var i1 = foo(); - var i2 = (function () {this.x = 1;})(); - var i3 = (() => () => console.log( 'effect' ))()(); + var h1 = foo() ; + var h2 = ( function () {this.x = 1;} )(); + var h3 = ( () => () => console.log( 'effect' ) )()(); + var i1 = foo(); + var i2 = ( function () {this.x = 1;})(); + var i3 = ( () => () => console.log( 'effect' ))()(); })); diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/es.js b/test/form/samples/conditional-put-parens-around-sequence/_expected.js similarity index 61% rename from test/form/samples/conditional-put-parens-around-sequence/_expected/es.js rename to test/form/samples/conditional-put-parens-around-sequence/_expected.js index 9619aa31f0b..be5bbdf1382 100644 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/es.js +++ b/test/form/samples/conditional-put-parens-around-sequence/_expected.js @@ -1,5 +1,5 @@ -var a = (foo(), 3 ); -var b = (bar(), 6 ); +var a = ( foo(), 3 ) ; +var b = ( bar(), 6 ); foo( a, b ); // verify works with no whitespace diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/amd.js b/test/form/samples/conditional-put-parens-around-sequence/_expected/amd.js deleted file mode 100644 index 79a2b08dfca..00000000000 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/amd.js +++ /dev/null @@ -1,10 +0,0 @@ -define(function () { 'use strict'; - - var a = (foo(), 3 ); - var b = (bar(), 6 ); - foo( a, b ); - - // verify works with no whitespace - bar((foo(),2),(bar(),8)); - -}); diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/cjs.js b/test/form/samples/conditional-put-parens-around-sequence/_expected/cjs.js deleted file mode 100644 index fa6293d869e..00000000000 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/cjs.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var a = (foo(), 3 ); -var b = (bar(), 6 ); -foo( a, b ); - -// verify works with no whitespace -bar((foo(),2),(bar(),8)); diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/iife.js b/test/form/samples/conditional-put-parens-around-sequence/_expected/iife.js deleted file mode 100644 index dd5e4e517a5..00000000000 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/iife.js +++ /dev/null @@ -1,11 +0,0 @@ -(function () { - 'use strict'; - - var a = (foo(), 3 ); - var b = (bar(), 6 ); - foo( a, b ); - - // verify works with no whitespace - bar((foo(),2),(bar(),8)); - -}()); diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/system.js b/test/form/samples/conditional-put-parens-around-sequence/_expected/system.js deleted file mode 100644 index 7307cd6427b..00000000000 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/system.js +++ /dev/null @@ -1,15 +0,0 @@ -System.register([], function () { - 'use strict'; - return { - execute: function () { - - var a = (foo(), 3 ); - var b = (bar(), 6 ); - foo( a, b ); - - // verify works with no whitespace - bar((foo(),2),(bar(),8)); - - } - }; -}); diff --git a/test/form/samples/conditional-put-parens-around-sequence/_expected/umd.js b/test/form/samples/conditional-put-parens-around-sequence/_expected/umd.js deleted file mode 100644 index cf1f8d79ea5..00000000000 --- a/test/form/samples/conditional-put-parens-around-sequence/_expected/umd.js +++ /dev/null @@ -1,13 +0,0 @@ -(function (factory) { - typeof define === 'function' && define.amd ? define(factory) : - factory(); -}(function () { 'use strict'; - - var a = (foo(), 3 ); - var b = (bar(), 6 ); - foo( a, b ); - - // verify works with no whitespace - bar((foo(),2),(bar(),8)); - -})); diff --git a/test/form/samples/mutate-logical-expression/_config.js b/test/form/samples/logical-expression/mutate-logical-expression/_config.js similarity index 100% rename from test/form/samples/mutate-logical-expression/_config.js rename to test/form/samples/logical-expression/mutate-logical-expression/_config.js diff --git a/test/form/samples/mutate-logical-expression/_expected/amd.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/amd.js similarity index 86% rename from test/form/samples/mutate-logical-expression/_expected/amd.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/amd.js index a3a822306d0..52c1ce390e9 100644 --- a/test/form/samples/mutate-logical-expression/_expected/amd.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/amd.js @@ -5,11 +5,11 @@ define(['exports'], function (exports) { 'use strict'; logicalAExp.bar = 1; var bExp = {}; - var logicalBExp = bExp; + var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = {}; - var logicalCExp = cExp; + var logicalCExp = cExp; logicalCExp.bar = 1; exports.aExp = aExp; diff --git a/test/form/samples/mutate-logical-expression/_expected/cjs.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/cjs.js similarity index 84% rename from test/form/samples/mutate-logical-expression/_expected/cjs.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/cjs.js index cb639a91a09..2efb4988918 100644 --- a/test/form/samples/mutate-logical-expression/_expected/cjs.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/cjs.js @@ -7,11 +7,11 @@ var logicalAExp = aExp || {}; logicalAExp.bar = 1; var bExp = {}; -var logicalBExp = bExp; +var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = {}; -var logicalCExp = cExp; +var logicalCExp = cExp; logicalCExp.bar = 1; exports.aExp = aExp; diff --git a/test/form/samples/mutate-logical-expression/_expected/es.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/es.js similarity index 77% rename from test/form/samples/mutate-logical-expression/_expected/es.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/es.js index 78297b3e78c..c805d2d450f 100644 --- a/test/form/samples/mutate-logical-expression/_expected/es.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/es.js @@ -3,11 +3,11 @@ var logicalAExp = aExp || {}; logicalAExp.bar = 1; var bExp = {}; -var logicalBExp = bExp; +var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = {}; -var logicalCExp = cExp; +var logicalCExp = cExp; logicalCExp.bar = 1; export { aExp, bExp, cExp }; diff --git a/test/form/samples/mutate-logical-expression/_expected/iife.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/iife.js similarity index 84% rename from test/form/samples/mutate-logical-expression/_expected/iife.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/iife.js index 5e66c9a7556..3054c6077c8 100644 --- a/test/form/samples/mutate-logical-expression/_expected/iife.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/iife.js @@ -6,11 +6,11 @@ var bundle = (function (exports) { logicalAExp.bar = 1; var bExp = {}; - var logicalBExp = bExp; + var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = {}; - var logicalCExp = cExp; + var logicalCExp = cExp; logicalCExp.bar = 1; exports.aExp = aExp; diff --git a/test/form/samples/mutate-logical-expression/_expected/system.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/system.js similarity index 85% rename from test/form/samples/mutate-logical-expression/_expected/system.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/system.js index ff4e7b3145d..072089bc39c 100644 --- a/test/form/samples/mutate-logical-expression/_expected/system.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/system.js @@ -8,11 +8,11 @@ System.register('bundle', [], function (exports) { logicalAExp.bar = 1; var bExp = exports('bExp', {}); - var logicalBExp = bExp; + var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = exports('cExp', {}); - var logicalCExp = cExp; + var logicalCExp = cExp; logicalCExp.bar = 1; } diff --git a/test/form/samples/mutate-logical-expression/_expected/umd.js b/test/form/samples/logical-expression/mutate-logical-expression/_expected/umd.js similarity index 91% rename from test/form/samples/mutate-logical-expression/_expected/umd.js rename to test/form/samples/logical-expression/mutate-logical-expression/_expected/umd.js index 71af856b00e..a44faf8b57e 100644 --- a/test/form/samples/mutate-logical-expression/_expected/umd.js +++ b/test/form/samples/logical-expression/mutate-logical-expression/_expected/umd.js @@ -9,11 +9,11 @@ logicalAExp.bar = 1; var bExp = {}; - var logicalBExp = bExp; + var logicalBExp = bExp; logicalBExp.bar = 1; var cExp = {}; - var logicalCExp = cExp; + var logicalCExp = cExp; logicalCExp.bar = 1; exports.aExp = aExp; diff --git a/test/form/samples/mutate-logical-expression/main.js b/test/form/samples/logical-expression/mutate-logical-expression/main.js similarity index 100% rename from test/form/samples/mutate-logical-expression/main.js rename to test/form/samples/logical-expression/mutate-logical-expression/main.js diff --git a/test/form/samples/logical-expression/simplify-non-boolean/_expected.js b/test/form/samples/logical-expression/simplify-non-boolean/_expected.js index 9aba650ea35..eae6aa2b088 100644 --- a/test/form/samples/logical-expression/simplify-non-boolean/_expected.js +++ b/test/form/samples/logical-expression/simplify-non-boolean/_expected.js @@ -1,6 +1,6 @@ -console.log('keep'); -console.log('keep'); +console.log('keep' ); +console.log( 'keep'); const x = 'keep'; -console.log(x); -console.log(x); +console.log(x ); +console.log( x); diff --git a/test/form/samples/pure-comment-line-break/_expected.js b/test/form/samples/pure-comment-line-break/_expected.js index 36fbc276e41..c47ef3ca995 100644 --- a/test/form/samples/pure-comment-line-break/_expected.js +++ b/test/form/samples/pure-comment-line-break/_expected.js @@ -24,9 +24,9 @@ console.log('should remain impure'); console.log('code'); console.log('should remain impure'); -console.log('should remain impure'); + console.log('should remain impure'); -console.log('should remain impure'); + console.log('should remain impure') ; console.log('code'); console.log('should remain impure', x); diff --git a/test/form/samples/pure-comment-scenarios-complex/_expected.js b/test/form/samples/pure-comment-scenarios-complex/_expected.js index 9706f378bab..fa608916cd1 100644 --- a/test/form/samples/pure-comment-scenarios-complex/_expected.js +++ b/test/form/samples/pure-comment-scenarios-complex/_expected.js @@ -11,9 +11,9 @@ global.iife1 = /*@__PURE__*/(function() { bar(), baz(), quux(); a.b(), f.g(); /* @__PURE__ */(function(){})() || true ? foo() : bar(); -foo(); + foo() ; /* @__PURE__ */(function(){})() && false ? foo() : bar(); -bar(); + bar(); /* @__PURE__ */(function(){})() + "foo" ? bar() : baz(); "foo" + /* @__PURE__ */(function(){})() ? bar() : baz(); /* @__PURE__ */(function(){})() ? foo() : foo(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/amd.js b/test/form/samples/side-effects-logical-expressions/_expected/amd.js index 0fccf1b65db..0c23f5c1969 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/amd.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/amd.js @@ -1,8 +1,8 @@ define(function () { 'use strict'; // effect - console.log( 'effect' ); - console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -14,23 +14,23 @@ define(function () { 'use strict'; }; // effect - (foo).effect; - (foo).effect; + ( foo).effect; + ( foo).effect; // effect - (null).foo = 1; - (null).foo = 1; + ( null).foo = 1; + ( null).foo = 1; // effect - (true)(); - (false)(); - (() => console.log( 'effect' ))(); - (() => console.log( 'effect' ))(); + (true )(); + (false )(); + ( (() => console.log( 'effect' )))(); + ( (() => console.log( 'effect' )))(); // effect - (true)()(); - (false)()(); - (() => () => console.log( 'effect' ))()(); - (() => () => console.log( 'effect' ))()(); + (true )()(); + (false )()(); + ( (() => () => console.log( 'effect' )))()(); + ( (() => () => console.log( 'effect' )))()(); }); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/cjs.js b/test/form/samples/side-effects-logical-expressions/_expected/cjs.js index c16d001c5f6..52d272b7f65 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/cjs.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/cjs.js @@ -1,8 +1,8 @@ 'use strict'; // effect -console.log( 'effect' ); -console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -14,21 +14,21 @@ const foo = { }; // effect -(foo).effect; -(foo).effect; +( foo).effect; +( foo).effect; // effect -(null).foo = 1; -(null).foo = 1; +( null).foo = 1; +( null).foo = 1; // effect -(true)(); -(false)(); -(() => console.log( 'effect' ))(); -(() => console.log( 'effect' ))(); +(true )(); +(false )(); +( (() => console.log( 'effect' )))(); +( (() => console.log( 'effect' )))(); // effect -(true)()(); -(false)()(); -(() => () => console.log( 'effect' ))()(); -(() => () => console.log( 'effect' ))()(); +(true )()(); +(false )()(); +( (() => () => console.log( 'effect' )))()(); +( (() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/es.js b/test/form/samples/side-effects-logical-expressions/_expected/es.js index 92f00cb3116..36c93850b7f 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/es.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/es.js @@ -1,6 +1,6 @@ // effect -console.log( 'effect' ); -console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -12,21 +12,21 @@ const foo = { }; // effect -(foo).effect; -(foo).effect; +( foo).effect; +( foo).effect; // effect -(null).foo = 1; -(null).foo = 1; +( null).foo = 1; +( null).foo = 1; // effect -(true)(); -(false)(); -(() => console.log( 'effect' ))(); -(() => console.log( 'effect' ))(); +(true )(); +(false )(); +( (() => console.log( 'effect' )))(); +( (() => console.log( 'effect' )))(); // effect -(true)()(); -(false)()(); -(() => () => console.log( 'effect' ))()(); -(() => () => console.log( 'effect' ))()(); +(true )()(); +(false )()(); +( (() => () => console.log( 'effect' )))()(); +( (() => () => console.log( 'effect' )))()(); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/iife.js b/test/form/samples/side-effects-logical-expressions/_expected/iife.js index fd87e1aeadc..0a092974e70 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/iife.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/iife.js @@ -2,8 +2,8 @@ 'use strict'; // effect - console.log( 'effect' ); - console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -15,23 +15,23 @@ }; // effect - (foo).effect; - (foo).effect; + ( foo).effect; + ( foo).effect; // effect - (null).foo = 1; - (null).foo = 1; + ( null).foo = 1; + ( null).foo = 1; // effect - (true)(); - (false)(); - (() => console.log( 'effect' ))(); - (() => console.log( 'effect' ))(); + (true )(); + (false )(); + ( (() => console.log( 'effect' )))(); + ( (() => console.log( 'effect' )))(); // effect - (true)()(); - (false)()(); - (() => () => console.log( 'effect' ))()(); - (() => () => console.log( 'effect' ))()(); + (true )()(); + (false )()(); + ( (() => () => console.log( 'effect' )))()(); + ( (() => () => console.log( 'effect' )))()(); }()); diff --git a/test/form/samples/side-effects-logical-expressions/_expected/system.js b/test/form/samples/side-effects-logical-expressions/_expected/system.js index 404947a2235..b0a5c921939 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/system.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/system.js @@ -4,8 +4,8 @@ System.register([], function () { execute: function () { // effect - console.log( 'effect' ); - console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -17,24 +17,24 @@ System.register([], function () { }; // effect - (foo).effect; - (foo).effect; + ( foo).effect; + ( foo).effect; // effect - (null).foo = 1; - (null).foo = 1; + ( null).foo = 1; + ( null).foo = 1; // effect - (true)(); - (false)(); - (() => console.log( 'effect' ))(); - (() => console.log( 'effect' ))(); + (true )(); + (false )(); + ( (() => console.log( 'effect' )))(); + ( (() => console.log( 'effect' )))(); // effect - (true)()(); - (false)()(); - (() => () => console.log( 'effect' ))()(); - (() => () => console.log( 'effect' ))()(); + (true )()(); + (false )()(); + ( (() => () => console.log( 'effect' )))()(); + ( (() => () => console.log( 'effect' )))()(); } }; diff --git a/test/form/samples/side-effects-logical-expressions/_expected/umd.js b/test/form/samples/side-effects-logical-expressions/_expected/umd.js index 7ec6bfaf34c..bb1b8458775 100644 --- a/test/form/samples/side-effects-logical-expressions/_expected/umd.js +++ b/test/form/samples/side-effects-logical-expressions/_expected/umd.js @@ -4,8 +4,8 @@ }(function () { 'use strict'; // effect - console.log( 'effect' ); - console.log( 'effect' ); + console.log( 'effect' ); + console.log( 'effect' ); console.log( 'effect' ) || {}; console.log( 'effect' ) && {}; @@ -17,23 +17,23 @@ }; // effect - (foo).effect; - (foo).effect; + ( foo).effect; + ( foo).effect; // effect - (null).foo = 1; - (null).foo = 1; + ( null).foo = 1; + ( null).foo = 1; // effect - (true)(); - (false)(); - (() => console.log( 'effect' ))(); - (() => console.log( 'effect' ))(); + (true )(); + (false )(); + ( (() => console.log( 'effect' )))(); + ( (() => console.log( 'effect' )))(); // effect - (true)()(); - (false)()(); - (() => () => console.log( 'effect' ))()(); - (() => () => console.log( 'effect' ))()(); + (true )()(); + (false )()(); + ( (() => () => console.log( 'effect' )))()(); + ( (() => () => console.log( 'effect' )))()(); })); diff --git a/test/form/samples/simplify-expression-annotations/_config.js b/test/form/samples/simplify-expression-annotations/_config.js new file mode 100644 index 00000000000..8bc62f8c55b --- /dev/null +++ b/test/form/samples/simplify-expression-annotations/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'keeps correct annotations when simplifying expressinos' +}; diff --git a/test/form/samples/simplify-expression-annotations/_expected.js b/test/form/samples/simplify-expression-annotations/_expected.js new file mode 100644 index 00000000000..657e5de27d3 --- /dev/null +++ b/test/form/samples/simplify-expression-annotations/_expected.js @@ -0,0 +1,4 @@ +console.log( /*@__PURE__*/ noEffect() ); +console.log( /*@__PURE__*/ noEffect()); +console.log( /*@__PURE__*/ noEffect()); +console.log( /*@__PURE__*/ noEffect()); diff --git a/test/form/samples/simplify-expression-annotations/main.js b/test/form/samples/simplify-expression-annotations/main.js new file mode 100644 index 00000000000..1e7e8682c35 --- /dev/null +++ b/test/form/samples/simplify-expression-annotations/main.js @@ -0,0 +1,4 @@ +console.log(true ? /*@__PURE__*/ noEffect() : null); +console.log(false ? null : /*@__PURE__*/ noEffect()); +console.log(true && /*@__PURE__*/ noEffect()); +console.log(false || /*@__PURE__*/ noEffect()); diff --git a/test/form/samples/simplify-return-expression/_expected.js b/test/form/samples/simplify-return-expression/_expected.js index 4b1f286caf0..d5ec416c972 100644 --- a/test/form/samples/simplify-return-expression/_expected.js +++ b/test/form/samples/simplify-return-expression/_expected.js @@ -4,11 +4,11 @@ const test = () => { }; const foo = () => { - return A; + return A ; }; const bar = () => { - return A; + return A ; }; export { test }; diff --git a/test/form/samples/skips-dead-branches-g/_expected/amd.js b/test/form/samples/skips-dead-branches-g/_expected/amd.js index c09e4013738..161d2da2246 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/amd.js +++ b/test/form/samples/skips-dead-branches-g/_expected/amd.js @@ -3,8 +3,8 @@ define(function () { 'use strict'; var a = 0; var b = 1; - var x = a; - var y = b; + var x = a ; + var y = b; console.log( x + y ); diff --git a/test/form/samples/skips-dead-branches-g/_expected/cjs.js b/test/form/samples/skips-dead-branches-g/_expected/cjs.js index e8e7e8da8c2..343757d2ce2 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/cjs.js +++ b/test/form/samples/skips-dead-branches-g/_expected/cjs.js @@ -3,7 +3,7 @@ var a = 0; var b = 1; -var x = a; -var y = b; +var x = a ; +var y = b; console.log( x + y ); diff --git a/test/form/samples/skips-dead-branches-g/_expected/es.js b/test/form/samples/skips-dead-branches-g/_expected/es.js index c181ba24ebc..7250ab17e6b 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/es.js +++ b/test/form/samples/skips-dead-branches-g/_expected/es.js @@ -1,7 +1,7 @@ var a = 0; var b = 1; -var x = a; -var y = b; +var x = a ; +var y = b; console.log( x + y ); diff --git a/test/form/samples/skips-dead-branches-g/_expected/iife.js b/test/form/samples/skips-dead-branches-g/_expected/iife.js index 170088a0846..1054fe9593d 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/iife.js +++ b/test/form/samples/skips-dead-branches-g/_expected/iife.js @@ -4,8 +4,8 @@ var a = 0; var b = 1; - var x = a; - var y = b; + var x = a ; + var y = b; console.log( x + y ); diff --git a/test/form/samples/skips-dead-branches-g/_expected/system.js b/test/form/samples/skips-dead-branches-g/_expected/system.js index 4e6202bcb10..7371a6e8ad3 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/system.js +++ b/test/form/samples/skips-dead-branches-g/_expected/system.js @@ -6,8 +6,8 @@ System.register([], function () { var a = 0; var b = 1; - var x = a; - var y = b; + var x = a ; + var y = b; console.log( x + y ); diff --git a/test/form/samples/skips-dead-branches-g/_expected/umd.js b/test/form/samples/skips-dead-branches-g/_expected/umd.js index 5e09cad5bad..744a0f680f6 100644 --- a/test/form/samples/skips-dead-branches-g/_expected/umd.js +++ b/test/form/samples/skips-dead-branches-g/_expected/umd.js @@ -6,8 +6,8 @@ var a = 0; var b = 1; - var x = a; - var y = b; + var x = a ; + var y = b; console.log( x + y ); diff --git a/test/form/samples/supports-core-js/_expected.js b/test/form/samples/supports-core-js/_expected.js index 2a7808db658..53e591a84c4 100644 --- a/test/form/samples/supports-core-js/_expected.js +++ b/test/form/samples/supports-core-js/_expected.js @@ -192,7 +192,7 @@ var store = global_1[SHARED] || setGlobal(SHARED, {}); return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.1.3', - mode: 'global', + mode: 'global', copyright: '© 2019 Denis Pushkarev (zloirock.ru)' }); }); @@ -1514,7 +1514,7 @@ if (objectToString !== ObjectPrototype$2.toString) { } // Forced replacement object prototype accessors methods -var forcedObjectPrototypeAccessorsMethods = !fails(function () { +var forcedObjectPrototypeAccessorsMethods = !fails(function () { var key = Math.random(); // In FF throws only define methods // eslint-disable-next-line no-undef, no-useless-call @@ -2403,7 +2403,7 @@ if ([].keys) { if (IteratorPrototype == undefined) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!has(IteratorPrototype, ITERATOR$3)) hide(IteratorPrototype, ITERATOR$3, returnThis); +if ( !has(IteratorPrototype, ITERATOR$3)) hide(IteratorPrototype, ITERATOR$3, returnThis); var iteratorsCore = { IteratorPrototype: IteratorPrototype, @@ -2462,7 +2462,7 @@ var defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAUL if (anyNativeIterator) { CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable())); if (IteratorPrototype$2 !== Object.prototype && CurrentIteratorPrototype.next) { - if (objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) { + if ( objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) { if (objectSetPrototypeOf) { objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$2); } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') { @@ -2481,7 +2481,7 @@ var defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAUL } // define iterator - if (IterablePrototype[ITERATOR$4] !== defaultIterator) { + if ( IterablePrototype[ITERATOR$4] !== defaultIterator) { hide(IterablePrototype, ITERATOR$4, defaultIterator); } iterators[NAME] = defaultIterator; @@ -2972,11 +2972,11 @@ _export({ target: 'String', proto: true }, { } S = String(O); rx = new RegExp(regexp, 'g'); - return rx[MATCH_ALL](S); + return rx[MATCH_ALL](S); } }); -MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll); + MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll); // `String.prototype.repeat` method implementation // https://tc39.github.io/ecma262/#sec-string.prototype.repeat @@ -4797,7 +4797,7 @@ if (FORCED$f) { }; // wrap fetch result - if (typeof $fetch == 'function') _export({ global: true, enumerable: true, forced: true }, { + if ( typeof $fetch == 'function') _export({ global: true, enumerable: true, forced: true }, { // eslint-disable-next-line no-unused-vars fetch: function fetch(input) { return promiseResolve(PromiseConstructor, $fetch.apply(global_1, arguments)); @@ -4825,11 +4825,11 @@ _export({ target: PROMISE, stat: true, forced: FORCED$f }, { } }); -_export({ target: PROMISE, stat: true, forced: FORCED$f }, { +_export({ target: PROMISE, stat: true, forced: FORCED$f }, { // `Promise.resolve` method // https://tc39.github.io/ecma262/#sec-promise.resolve resolve: function resolve(x) { - return promiseResolve(this, x); + return promiseResolve( this, x); } }); @@ -8595,7 +8595,7 @@ _export({ target: 'Map', proto: true, real: true, forced: isPure }, { } }); -var getMapIterator = function (it) { +var getMapIterator = function (it) { // eslint-disable-next-line no-undef return Map.prototype.entries.call(it); }; @@ -8828,7 +8828,7 @@ _export({ target: 'Set', proto: true, real: true, forced: isPure }, { } }); -var getSetIterator = function (it) { +var getSetIterator = function (it) { // eslint-disable-next-line no-undef return Set.prototype.values.call(it); }; @@ -9705,7 +9705,7 @@ _export({ target: 'String', proto: true }, { } }); -REPLACE_ALL in RegExpPrototype$3 || hide(RegExpPrototype$3, REPLACE_ALL, $replaceAll); + REPLACE_ALL in RegExpPrototype$3 || hide(RegExpPrototype$3, REPLACE_ALL, $replaceAll); // `Symbol.replaceAll` well-known symbol // https://tc39.github.io/proposal-string-replaceall/ diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/amd.js b/test/form/samples/tree-shake-logical-expressions/_expected/amd.js index e594006958f..f2f99d30102 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/amd.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/amd.js @@ -4,16 +4,16 @@ define(function () { 'use strict'; return 'A'; } - console.log(getStringA()); + console.log( getStringA()); - console.log(false); + console.log(false ); - console.log(true); + console.log(true ); function getStringD() { return 'D'; } - console.log(getStringD()); + console.log( getStringD()); }); diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js b/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js index 9792485a4b1..38945707823 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/cjs.js @@ -4,14 +4,14 @@ function getStringA() { return 'A'; } -console.log(getStringA()); +console.log( getStringA()); -console.log(false); +console.log(false ); -console.log(true); +console.log(true ); function getStringD() { return 'D'; } -console.log(getStringD()); +console.log( getStringD()); diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/es.js b/test/form/samples/tree-shake-logical-expressions/_expected/es.js index 0ccf0053a6d..b7e245d3edb 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/es.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/es.js @@ -2,14 +2,14 @@ function getStringA() { return 'A'; } -console.log(getStringA()); +console.log( getStringA()); -console.log(false); +console.log(false ); -console.log(true); +console.log(true ); function getStringD() { return 'D'; } -console.log(getStringD()); +console.log( getStringD()); diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/iife.js b/test/form/samples/tree-shake-logical-expressions/_expected/iife.js index b217a9579ee..151726c1737 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/iife.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/iife.js @@ -5,16 +5,16 @@ return 'A'; } - console.log(getStringA()); + console.log( getStringA()); - console.log(false); + console.log(false ); - console.log(true); + console.log(true ); function getStringD() { return 'D'; } - console.log(getStringD()); + console.log( getStringD()); }()); diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/system.js b/test/form/samples/tree-shake-logical-expressions/_expected/system.js index 618c4df9bc3..0c8ee8bc720 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/system.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/system.js @@ -7,17 +7,17 @@ System.register([], function () { return 'A'; } - console.log(getStringA()); + console.log( getStringA()); - console.log(false); + console.log(false ); - console.log(true); + console.log(true ); function getStringD() { return 'D'; } - console.log(getStringD()); + console.log( getStringD()); } }; diff --git a/test/form/samples/tree-shake-logical-expressions/_expected/umd.js b/test/form/samples/tree-shake-logical-expressions/_expected/umd.js index 42b9b87b7da..285e18c0186 100644 --- a/test/form/samples/tree-shake-logical-expressions/_expected/umd.js +++ b/test/form/samples/tree-shake-logical-expressions/_expected/umd.js @@ -7,16 +7,16 @@ return 'A'; } - console.log(getStringA()); + console.log( getStringA()); - console.log(false); + console.log(false ); - console.log(true); + console.log(true ); function getStringD() { return 'D'; } - console.log(getStringD()); + console.log( getStringD()); })); diff --git a/test/form/samples/wrap-simplified-expressions/_expected/amd.js b/test/form/samples/wrap-simplified-expressions/_expected/amd.js index 14051e3a8f5..d7b09c16a74 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/amd.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/amd.js @@ -7,20 +7,20 @@ define(function () { 'use strict'; }; // Indirectly called member expressions set the callee's context to global "this" + ( 0, wrapper.foo)(); + ( 0, wrapper.foo )(); (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); + ( ( 0, wrapper.foo))(); + ( ( 0, wrapper.foo ))(); + ( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped - console.log(wrapper.foo); + console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/form/samples/wrap-simplified-expressions/_expected/cjs.js b/test/form/samples/wrap-simplified-expressions/_expected/cjs.js index c410e47604a..cddfc119c96 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/cjs.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/cjs.js @@ -7,20 +7,20 @@ const wrapper = { }; // Indirectly called member expressions set the callee's context to global "this" +( 0, wrapper.foo)(); +( 0, wrapper.foo )(); (0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); +( ( 0, wrapper.foo))(); +( ( 0, wrapper.foo ))(); +( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped -console.log(wrapper.foo); +console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/form/samples/wrap-simplified-expressions/_expected/es.js b/test/form/samples/wrap-simplified-expressions/_expected/es.js index eb57df2808f..ad4dce62df9 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/es.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/es.js @@ -5,20 +5,20 @@ const wrapper = { }; // Indirectly called member expressions set the callee's context to global "this" +( 0, wrapper.foo)(); +( 0, wrapper.foo )(); (0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); -(0, wrapper.foo)(); +( ( 0, wrapper.foo))(); +( ( 0, wrapper.foo ))(); +( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped -console.log(wrapper.foo); +console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/form/samples/wrap-simplified-expressions/_expected/iife.js b/test/form/samples/wrap-simplified-expressions/_expected/iife.js index 5dbaf642162..542c0e6c13b 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/iife.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/iife.js @@ -8,20 +8,20 @@ }; // Indirectly called member expressions set the callee's context to global "this" + ( 0, wrapper.foo)(); + ( 0, wrapper.foo )(); (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); + ( ( 0, wrapper.foo))(); + ( ( 0, wrapper.foo ))(); + ( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped - console.log(wrapper.foo); + console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/form/samples/wrap-simplified-expressions/_expected/system.js b/test/form/samples/wrap-simplified-expressions/_expected/system.js index 81ed1639232..c4247daa2ac 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/system.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/system.js @@ -10,20 +10,20 @@ System.register([], function () { }; // Indirectly called member expressions set the callee's context to global "this" + ( 0, wrapper.foo)(); + ( 0, wrapper.foo )(); (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); + ( ( 0, wrapper.foo))(); + ( ( 0, wrapper.foo ))(); + ( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped - console.log(wrapper.foo); + console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/form/samples/wrap-simplified-expressions/_expected/umd.js b/test/form/samples/wrap-simplified-expressions/_expected/umd.js index 6c6a08f7c8b..d37d13d780b 100644 --- a/test/form/samples/wrap-simplified-expressions/_expected/umd.js +++ b/test/form/samples/wrap-simplified-expressions/_expected/umd.js @@ -10,20 +10,20 @@ }; // Indirectly called member expressions set the callee's context to global "this" + ( 0, wrapper.foo)(); + ( 0, wrapper.foo )(); (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); - (0, wrapper.foo)(); + ( ( 0, wrapper.foo))(); + ( ( 0, wrapper.foo ))(); + ( (0, wrapper.foo))(); // Only callees of call expressions should be wrapped - console.log(wrapper.foo); + console.log( wrapper.foo); // Indirectly invoked eval is executed in the global scope function testEval() { - console.log((0, eval)('this')); - console.log((0, eval)('this')); + console.log(( 0, eval)('this')); + console.log(( 0, eval )('this')); console.log((0, eval)('this')); } diff --git a/test/misc/bundle-information.js b/test/misc/bundle-information.js index 4351b7aa247..734cb3423f3 100644 --- a/test/misc/bundle-information.js +++ b/test/misc/bundle-information.js @@ -296,7 +296,7 @@ describe('The bundle object', () => { originalLength: 47, removedExports: [], renderedExports: ['default'], - renderedLength: 17 + renderedLength: 18 } } ],