From aa6a8fd03e152dcb22f7df27f45782145df0ee3e Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Mon, 3 Oct 2022 04:27:33 +0800 Subject: [PATCH 1/2] code --- .../--whitelist/stdout.txt | 3 - .../out-files/script2.js | 5 +- .../out-files/script3.js | 4 +- .../out-files/script3.js.map | 2 +- .../out-files/script3.js | 6 +- .../out-files/script3.js.map | 2 +- packages/babel-core/test/api.js | 5 +- .../misc/regression-1130/output.js | 1 - .../misc/regression-1155/output.js | 5 - .../misc/regression-1169/output.js | 2 - .../misc/regression-1199/output.js | 2 - .../misc/regression-2364/output.js | 3 - .../misc/regression-2765/output.js | 6 - .../misc/regression-2892/output.js | 12 - .../source-maps/arrow-function/options.json | 3 +- .../arrow-function/source-mappings.json | 10 - .../source-maps/class/options.json | 3 +- .../source-maps/class/output.js | 2 - .../source-maps/class/source-mappings.json | 10 - .../comment-inside-string/output.js | 3 +- .../input-source-map-complex/options.json | 3 +- .../input-source-map-complex/output.js | 3 - .../source-mappings.json | 72 ---- .../output.js | 1 - packages/babel-generator/src/buffer.ts | 26 +- .../babel-generator/src/generators/base.ts | 41 +- .../babel-generator/src/generators/flow.ts | 2 + .../src/generators/statements.ts | 38 +- packages/babel-generator/src/printer.ts | 332 +++++++++++----- .../babel-generator/test/arrow-functions.js | 20 - .../auto-indentation/hard-tab/output.js | 1 - .../auto-indentation/soft-tab-2/output.js | 1 - .../auto-indentation/soft-tab-4/output.js | 1 - .../test/fixtures/auto-string/jsx/output.js | 1 - .../output.js | 1 + .../output.js | 16 +- .../comment-only-with-space/output.js | 1 + .../fixtures/comments/comment-only/output.js | 2 - .../computed-property-comments-2/input.js | 5 +- .../computed-property-comments-2/output.js | 27 +- .../computed-property-comments/output.js | 9 +- .../output.js | 9 +- .../function-block-line-comment/output.js | 2 - .../comments/if-block-line-comment/output.js | 3 +- .../comments/if-empty-line-comment/output.js | 3 +- .../comments/if-line-comment/output.js | 4 +- .../module-expression-inner-comment/output.js | 4 +- .../test/fixtures/comments/newlines/input.js | 99 +++++ .../test/fixtures/comments/newlines/output.js | 92 +++++ .../comments/object_comments/output.js | 1 - .../simple-a-lot-of-line-comment/output.js | 5 +- .../simple-a-lot-of-multi-comment/output.js | 2 + .../comments/simple-line-comment/output.js | 3 +- .../comments/simple-multi-comment/output.js | 1 + .../comments/try-block-line-comment/output.js | 2 - .../output.js | 13 +- .../output.js | 21 +- .../output.js | 23 +- .../accessor-with-retainlines/output.js | 2 - .../async-method-with-retainlines/output.js | 2 - .../output.js | 5 - .../output.js | 5 - .../edgecase/async-generator/output.js | 20 +- .../fixtures/edgecase/for-async-of/output.js | 4 - .../edgecase/for-await-async-of/output.js | 4 - .../fixtures/edgecase/for-in-no-in/output.js | 5 - .../fixtures/edgecase/for-loop-in/output.js | 1 - .../edgecase/let-identifier/output.js | 23 +- .../fixtures/flow/arrow-functions/output.js | 9 +- .../fixtures/flow/def-site-variance/output.js | 4 - .../test/fixtures/flow/implements/output.js | 2 - .../interfaces-module-and-script/output.js | 4 - .../flow/object-literal-types/output.js | 14 +- .../test/fixtures/flow/predicates/output.js | 5 - .../flow/string-literal-types/output.js | 1 - .../test/fixtures/flow/this-param/output.js | 17 - .../test/fixtures/flow/this-types/output.js | 1 - .../fixtures/flow/type-annotations/output.js | 58 --- .../fixtures/flow/type-parameters/output.js | 9 - .../test/fixtures/flow/typeapp-call/output.js | 3 - .../harmony-edgecase/arrow-function/output.js | 5 - .../class-declaration/output.js | 21 -- .../class-expression/output.js | 22 -- .../computed-property/output.js | 4 - .../default-parameter/output.js | 4 - .../destructuring-assignment/output.js | 3 - .../for-of-statement/output.js | 1 - .../import-with-break/output.js | 3 +- .../harmony-edgecase/spread-element/output.js | 2 - .../templates-indentation/output.js | 1 - .../yield-precedence/output.js | 2 +- .../test/fixtures/jsx/comments/output.js | 6 +- .../test/fixtures/misc/placeholders/output.js | 3 - .../arrow-function-object-body/output.js | 3 - .../async-arrow-function/output.js | 4 +- .../parentheses/await-expression/output.js | 1 - .../parentheses/break-statement/output.js | 9 +- .../parentheses/class-extends/output.js | 17 +- .../parentheses/identifier-lhs/output.js | 6 - .../sequence-expressions/output.js | 5 - .../tagged-template-expression/output.js | 1 - .../parentheses/terminator-break/output.js | 7 +- .../parentheses/yield-expression/output.js | 2 - .../output.js | 12 +- .../comments-with-_noLineTerminator/output.js | 1 - .../ClassBody-StaticBlock/output.js | 2 - .../ClassBody-StaticBlock/source-map.json | 2 +- .../real-world-babel-file1/output.js | 24 +- .../real-world-babel-file1/source-map.json | 2 +- .../real-world-babel-file2/output.js | 243 ++++-------- .../real-world-babel-file2/source-map.json | 2 +- .../template-literal-newline/output.js | 15 +- .../template-literal-newline/source-map.json | 2 +- .../types/ArgumentPlaceholder/output.js | 2 - .../types/ArrowFunctionExpression/output.js | 3 - .../fixtures/types/BreakStatement/output.js | 1 - .../types/ClassBody-ClassProperty/output.js | 14 - .../ClassBody-MethodDefinition/output.js | 39 -- .../types/ClassBody-StaticBlock/output.js | 2 - .../fixtures/types/ClassExpression/output.js | 1 - .../types/ContinueStatement/output.js | 1 - .../test/fixtures/types/Decorator/output.js | 12 - .../fixtures/types/DoWhileStatement/output.js | 1 - .../fixtures/types/ForInStatement/output.js | 1 - .../fixtures/types/ForOfStatement/output.js | 1 - .../fixtures/types/ForStatement/output.js | 2 - .../output.js | 11 - .../test/fixtures/types/IfStatement/output.js | 5 - .../types/LogicalExpression/output.js | 3 - .../output.js | 7 - .../output.js | 9 - .../test/fixtures/types/PrivateName/output.js | 2 - .../fixtures/types/RestProperty/output.js | 3 +- .../fixtures/types/ReturnStatement/output.js | 4 - .../SwitchStatement-SwitchCase/output.js | 10 - .../types/TryStatement-CatchClause/output.js | 4 - .../input.js | 3 + .../output.js | 20 +- .../fixtures/types/WhileStatement/output.js | 1 - .../fixtures/types/YieldExpression/output.js | 1 - .../arrow-function-assertion/output.js | 1 - .../fixtures/typescript/cast-as/output.js | 2 - .../typescript/catch-param-type/output.js | 1 - .../typescript/class-abstract/output.js | 9 +- .../typescript/class-constructor/output.js | 2 - .../output.js | 1 - .../class-expression-extends/output.js | 1 - .../class-expression-generic/output.js | 1 - .../class-expression-implements/output.js | 1 - .../typescript/class-method-generic/output.js | 2 - .../class-method-optional/output.js | 1 - .../class-method-return-type/output.js | 1 - .../output.js | 1 - .../class-modifier-override/output.js | 2 - .../class-modifiers-accessors/output.js | 7 - .../class-modifiers-methods-async/output.js | 7 - .../output.js | 1 - .../class-parameter-properties/output.js | 4 +- .../typescript/function-assertion/output.js | 1 - .../function-predicate-types/output.js | 1 - .../typescript/interface-export/output.js | 3 +- .../typescript/non-null-parentheses/output.js | 1 - .../typescript/tsx-brace-is-block/output.js | 1 - .../typescript/type-alias-export/output.js | 3 +- .../typescript/types-type-literal/output.js | 3 +- .../output.js | 11 +- .../variance-annotations-with-jsx/output.js | 11 +- .../whitespace/call-expression/output.js | 5 +- .../whitespace/member-expression/output.js | 3 - packages/babel-generator/test/index.js | 357 ++++++++++++------ .../private-accessor/output.js | 7 - .../private-field/output.js | 8 +- .../private-method/output.js | 8 +- .../loose-not-overwritten/output.js | 1 - .../output.js | 1 - .../output.js | 2 - .../recursive-class-property-type/output.js | 2 - .../output.js | 1 - .../warn-loose-and-assumptions/output.js | 1 - .../2018-12-ignore-abstract-methods/output.js | 7 - .../loose-false/output.js | 3 - .../loose-true/output.js | 3 - .../fixtures/replace-supers/method/output.js | 4 - .../loose-false/output.js | 2 - .../loose-true/output.js | 2 - packages/babel-helper-fixtures/src/index.ts | 15 +- .../package.json | 1 - .../src/index.ts | 12 - .../src/helpers/regeneratorRuntime.js | 197 ++++------ .../fixtures/dependencies/basic/output.js | 2 - .../test/fixtures/dependencies/deep/output.js | 3 - .../fixtures/dependencies/multiple/output.js | 3 - .../rename-binding-equal/output.js | 4 - .../dependencies/rename-deep-global/output.js | 2 - .../dependencies/reuse-dependency/output.js | 2 - .../variable-same-name-dependency/output.js | 2 - .../test/fixtures/regression/9496/output.js | 1 - .../test/fixtures/basic/basic/output.mjs | 5 +- .../assumption-noDocumentAll/basic/output.mjs | 1 - .../function-call/output.js | 1 - .../output.mjs | 1 - .../test/fixtures/basic/basic/output.mjs | 1 - .../output.mjs | 3 - .../class-private-integration/output.mjs | 3 - .../fixtures/basic/class-private/output.mjs | 3 - .../test/fixtures/opts/whitelist/output.js | 2 - .../output.js | 1 - .../output.js | 1 - .../lexical-declaration/output.js | 1 - .../async-generators/class-method/output.js | 2 - .../class-private-method/output.js | 4 - .../async-generators/declaration/output.js | 1 - .../async-generators/expression/output.js | 5 +- .../async-generators/object-method/output.js | 2 - .../async-generators/static-method/output.js | 2 - .../transform-class-keys/output.js | 4 - .../yield-star-babel-7/output.js | 1 - .../async-generators/yield-star/output.js | 1 - .../fixtures/for-await/async-arrow/output.js | 5 +- .../async-function-no-transform/output.js | 2 - .../for-await/async-function/output.js | 3 - .../for-await/async-generator/output.js | 3 - .../create-async-from-sync-iterator/output.js | 3 - .../for-await/destructuring/output.js | 3 - .../for-await/lhs-member-expression/output.js | 2 - .../nested/arrows-in-declaration/output.js | 7 +- .../fixtures/nested/async-in-params/output.js | 1 - .../nested/generator-in-async/output.js | 3 - .../test/fixtures/regression/13801/output.js | 21 -- .../test/fixtures/regression/5880/output.js | 4 +- .../output.js | 1 - .../create-async-from-sync-iterator/output.js | 1 - .../complex-super-class/output.js | 2 - .../instance-field/output.js | 1 - .../static-field/output.js | 1 - .../output.js | 7 - .../optional-chain-cast-to-boolean/output.js | 28 -- .../computed/output.js | 12 - .../constructor-collision/output.js | 3 - .../derived/output.js | 1 - .../foobar/output.js | 6 - .../instance-computed/output.js | 5 - .../instance-undefined/output.js | 1 - .../instance/output.js | 1 - .../length-name-use-define/output.js | 4 - .../non-block-arrow-func/output.mjs | 2 - .../regression-T2983/output.mjs | 1 - .../regression-T6719/output.js | 1 - .../regression-T7364/output.mjs | 8 - .../static-infer-name/output.js | 1 - .../static-super-loose/output.js | 4 - .../static-super/output.js | 4 - .../static-this/output.js | 2 - .../static-undefined/output.js | 1 - .../static/output.js | 1 - .../super-call/output.js | 3 - .../super-expression/output.js | 1 - .../super-statement/output.js | 1 - .../super-with-collision/output.js | 1 - .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../local-define-property/output.js | 6 +- .../decorators-legacy-interop/loose/output.js | 2 - .../strict/output.js | 2 - .../super-call-in-decorator/output.js | 7 - .../nested-class/super-call-in-key/output.js | 8 - .../super-property-in-accessor-key/output.js | 13 - .../super-property-in-decorator/output.js | 8 - .../super-property-in-key/output.js | 8 - .../private-loose/assignment/output.js | 2 - .../fixtures/private-loose/call/output.js | 3 - .../private-loose/canonical/output.js | 3 - .../constructor-collision/output.js | 2 - .../private-loose/declaration-order/output.js | 1 - .../derived-multiple-supers/output.js | 7 - .../fixtures/private-loose/derived/output.js | 7 - .../destructuring-array-pattern-1/output.js | 1 - .../destructuring-array-pattern-2/output.js | 1 - .../destructuring-array-pattern-3/output.js | 1 - .../output.js | 1 - .../destructuring-array-pattern/output.js | 1 - .../destructuring-object-pattern-1/output.js | 1 - .../destructuring-object-pattern-2/output.js | 1 - .../destructuring-object-pattern-3/output.js | 1 - .../output.js | 1 - .../destructuring-object-pattern/output.js | 1 - .../private-loose/extracted-this/output.js | 3 - .../fixtures/private-loose/foobar/output.js | 5 - .../instance-undefined/output.js | 1 - .../fixtures/private-loose/instance/output.js | 1 - .../logical-assignment/output.js | 7 - .../fixtures/private-loose/multiple/output.js | 2 - .../private-loose/native-classes/output.js | 6 - .../output.js | 7 - .../nested-class-computed/output.js | 4 - .../output.js | 10 - .../nested-class-extends-computed/output.js | 9 - .../nested-class-other-redeclared/output.js | 6 - .../nested-class-redeclared/output.js | 5 - .../private-loose/nested-class/output.js | 4 - .../non-block-arrow-func/output.mjs | 2 - .../output.js | 10 - .../output.js | 10 - .../output.js | 9 - .../optional-chain-before-property/output.js | 9 - .../optional-chain-cast-to-boolean/output.js | 29 -- .../output.js | 9 - .../optional-chain-delete-property/output.js | 9 - .../output.js | 18 - .../output.js | 16 - .../output.js | 5 - .../output.js | 10 - .../output.js | 10 - .../output.js | 10 - .../output.js | 10 - .../output.js | 9 - .../output.js | 9 - .../output.js | 8 - .../output.js | 6 - .../private-in-derived/output.js | 5 - .../private-loose/reevaluated/output.js | 7 - .../reference-in-other-property/output.js | 3 - .../private-loose/static-call/output.js | 3 - .../private-loose/static-export/output.mjs | 3 - .../private-loose/static-infer-name/output.js | 1 - .../private-loose/static-inherited/output.js | 11 - .../private-loose/static-shadow/output.js | 4 - .../private-loose/static-this/output.js | 2 - .../private-loose/static-undefined/output.js | 4 - .../fixtures/private-loose/static/output.js | 4 - .../private-loose/super-expression/output.js | 5 - .../private-loose/super-statement/output.js | 5 - .../fixtures/private-loose/update/output.js | 2 - .../output.js | 11 - .../fixtures/private/assignment/output.js | 3 - .../test/fixtures/private/call/output.js | 3 - .../test/fixtures/private/canonical/output.js | 3 - .../private/constructor-collision/output.js | 2 - .../private/declaration-order/output.js | 1 - .../private/derived-multiple-supers/output.js | 7 - .../test/fixtures/private/derived/output.js | 7 - .../destructuring-array-pattern-1/output.js | 1 - .../destructuring-array-pattern-2/output.js | 1 - .../destructuring-array-pattern-3/output.js | 1 - .../destructuring-array-pattern/output.js | 1 - .../destructuring-object-pattern-1/output.js | 1 - .../destructuring-object-pattern-2/output.js | 1 - .../destructuring-object-pattern-3/output.js | 1 - .../destructuring-object-pattern/output.js | 1 - .../fixtures/private/extracted-this/output.js | 3 - .../test/fixtures/private/foobar/output.js | 5 - .../private/instance-undefined/output.js | 1 - .../test/fixtures/private/instance/output.js | 1 - .../private/logical-assignment/output.js | 7 - .../test/fixtures/private/multiple/output.js | 2 - .../fixtures/private/native-classes/output.js | 5 - .../output.js | 7 - .../private/nested-class-computed/output.js | 4 - .../output.js | 10 - .../nested-class-extends-computed/output.js | 9 - .../nested-class-other-redeclared/output.js | 6 - .../private/nested-class-redeclared/output.js | 5 - .../fixtures/private/nested-class/output.js | 4 - .../private/non-block-arrow-func/output.mjs | 2 - .../output.js | 7 - .../output.js | 7 - .../output.js | 7 - .../optional-chain-before-property/output.js | 7 - .../optional-chain-cast-to-boolean/output.js | 28 -- .../output.js | 9 - .../optional-chain-delete-property/output.js | 7 - .../output.js | 16 - .../output.js | 15 - .../output.js | 5 - .../output.js | 7 - .../output.js | 7 - .../output.js | 7 - .../output.js | 7 - .../output.js | 7 - .../output.js | 7 - .../output.js | 6 - .../output.js | 6 - .../private/private-in-derived/output.js | 5 - .../fixtures/private/reevaluated/output.js | 6 - .../reference-in-other-property/output.js | 3 - .../private/regression-T2983/output.mjs | 1 - .../private/regression-T6719/output.js | 1 - .../private/regression-T7364/output.mjs | 14 - .../fixtures/private/static-call/output.js | 2 - .../private/static-infer-name/output.js | 1 - .../private/static-inherited/output.js | 9 - .../private/static-self-field/output.js | 1 - .../private/static-self-method/output.js | 4 - .../fixtures/private/static-shadow/output.js | 4 - .../private/static-undefined/output.js | 3 - .../test/fixtures/private/static/output.js | 3 - .../fixtures/private/super-call/output.js | 7 - .../private/super-expression/output.js | 5 - .../private/super-statement/output.js | 5 - .../private/tagged-template-static/output.js | 2 - .../private/tagged-template/output.js | 3 - .../test/fixtures/private/update/output.js | 3 - .../output.js | 1 - .../fixtures/public-loose/computed/output.js | 6 - .../fixtures/public-loose/derived/output.js | 4 - .../fixtures/public-loose/foobar/output.js | 6 - .../public-loose/instance-computed/output.js | 2 - .../non-block-arrow-func/output.mjs | 2 - .../public-loose/regression-T2983/output.mjs | 3 - .../public-loose/regression-T6719/output.js | 4 - .../public-loose/regression-T7364/output.mjs | 8 - .../public-loose/static-infer-name/output.js | 1 - .../public-loose/static-super/output.js | 6 - .../public-loose/static-this/output.js | 1 - .../public-loose/super-call/output.js | 6 - .../public-loose/super-expression/output.js | 4 - .../public-loose/super-statement/output.js | 4 - .../output.js | 1 - .../test/fixtures/public/assignment/output.js | 1 - .../test/fixtures/public/call/output.js | 1 - .../public/computed-without-block/output.js | 2 - .../test/fixtures/public/computed/output.js | 6 - .../public/derived-multiple-supers/output.js | 6 - .../output.js | 1 - .../output.js | 1 - .../derived-super-in-default-params/output.js | 1 - .../test/fixtures/public/derived/output.js | 4 - .../test/fixtures/public/foobar/output.js | 4 - .../public/instance-computed/output.js | 2 - .../fixtures/public/native-classes/output.js | 2 - .../public/non-block-arrow-func/output.mjs | 2 - .../public/regression-T2983/output.mjs | 3 - .../public/regression-T6719/output.js | 4 - .../public/regression-T7364/output.mjs | 8 - .../public/static-infer-name/output.js | 1 - .../fixtures/public/static-super/output.js | 5 - .../test/fixtures/public/super-call/output.js | 6 - .../public/super-expression/output.js | 4 - .../fixtures/public/super-statement/output.js | 4 - .../test/fixtures/public/update/output.js | 1 - .../test/fixtures/regression/6153/output.js | 15 - .../test/fixtures/regression/6154/output.js | 8 - .../test/fixtures/regression/7371/output.js | 33 +- .../test/fixtures/regression/7951/output.mjs | 1 - .../test/fixtures/regression/8110/output.js | 2 - .../test/fixtures/regression/8882/output.js | 5 - .../test/fixtures/regression/T2983/output.mjs | 3 - .../test/fixtures/regression/T6719/output.js | 4 - .../test/fixtures/regression/T7364/output.mjs | 8 - .../decorator-interop/output.js | 4 - .../static-property-tdz/edgest-case/output.js | 1 - .../static-property-tdz/general/output.js | 1 - .../static-property-tdz/loose/output.js | 3 - .../class-binding/output.js | 1 - .../class-declaration/output.js | 1 - .../in-class-heritage/output.js | 1 - .../name-conflict/output.js | 5 +- .../class-static-block/new-target/output.js | 2 - .../integration-loose/class-binding/output.js | 1 - .../class-declaration/output.js | 1 - .../in-class-heritage/output.js | 2 - .../multiple-static-initializers/output.js | 4 - .../integration-loose/name-conflict/output.js | 2 - .../super-static-block/output.js | 2 - .../integration/class-binding/output.js | 1 - .../integration/class-declaration/output.js | 1 - .../integration/in-class-heritage/output.js | 2 - .../multiple-static-initializers/output.js | 3 - .../integration/name-conflict/output.js | 1 - .../fixtures/integration/new-target/output.js | 3 - .../test/plugin-ordering.test.js | 3 - .../computed-keys-same-ast/output.js | 2 - .../computed-keys-same-value/output.js | 2 - .../method-name-not-shadow/output.js | 2 - .../arguments/output.js | 2 - .../async-generator-method/output.js | 2 - .../class-decorators-yield-await/output.js | 2 - .../declaration/output.js | 2 - .../export-default-anonymous/output.mjs | 2 - .../export-default-named/output.mjs | 2 - .../expression/output.js | 2 - .../extends-await/output.js | 3 - .../extends-yield/output.js | 3 - .../2018-09-transformation/extends/output.js | 3 - .../output.js | 2 - .../initialize-after-super-bug-8931/output.js | 4 - .../output.js | 2 - .../initialize-after-super-multiple/output.js | 9 - .../output.js | 3 - .../only-decorated/output.js | 2 - .../strict-directive/output.js | 5 - .../private/output.js | 12 - .../public/output.js | 14 - .../static-private/output.js | 12 - .../static-public/output.js | 12 - .../undecorated-private/output.js | 10 - .../undecorated-public/output.js | 11 - .../undecorated-static-private/output.js | 6 - .../undecorated-static-public/output.js | 8 - .../2021-12-accessors/private/output.js | 8 - .../2021-12-accessors/public/output.js | 12 - .../static-private/output.js | 10 - .../2021-12-accessors/static-public/output.js | 14 - .../undecorated-private/output.js | 7 - .../undecorated-public/output.js | 10 - .../undecorated-static-private/output.js | 7 - .../undecorated-static-public/output.js | 10 - .../output.js | 6 - .../super-in-private-accessor/output.js | 6 - .../super-in-private-method/output.js | 5 - .../expressions/output.js | 4 - .../inheritance/output.js | 10 - .../initializers/output.js | 9 - .../output.js | 9 - .../replacement-static-this/output.js | 5 - .../replacement-with-expr/output.js | 3 - .../replacement/output.js | 5 - .../2021-12-classes/expressions/output.js | 13 - .../2021-12-classes/inheritance/output.js | 9 - .../2021-12-classes/initializers/output.js | 11 - .../output.js | 12 - .../replacement-static-this/output.js | 6 - .../replacement-with-expr/output.js | 3 - .../2021-12-classes/replacement/output.js | 6 - .../computed-keys-same-ast/output.js | 7 - .../computed-keys-same-value/output.js | 7 - .../method-and-field/output.js | 5 - .../methods-with-same-key/output.js | 6 - .../computed-keys-same-ast/output.js | 7 - .../computed-keys-same-value/output.js | 7 - .../method-and-field/output.js | 4 - .../methods-with-same-key/output.js | 6 - .../default-anonymous/output.mjs | 5 - .../2021-12-exported/default-named/output.mjs | 5 - .../member-decorator/output.mjs | 1 - .../2021-12-exported/named/output.mjs | 5 - .../2021-12-exported/no-decorators/output.mjs | 2 - .../private/output.js | 6 - .../public/output.js | 5 - .../static-private/output.js | 3 - .../static-public/output.js | 4 - .../fixtures/2021-12-fields/private/output.js | 2 - .../fixtures/2021-12-fields/public/output.js | 3 - .../2021-12-fields/static-private/output.js | 2 - .../2021-12-fields/static-public/output.js | 3 - .../private/output.js | 8 - .../public/output.js | 8 - .../static-private/output.js | 8 - .../static-public/output.js | 8 - .../private/output.js | 10 - .../public/output.js | 10 - .../static-private/output.js | 10 - .../static-public/output.js | 10 - .../private/output.js | 9 - .../public/output.js | 10 - .../static-private/output.js | 9 - .../static-public/output.js | 10 - .../2021-12-getters/private/output.js | 7 - .../fixtures/2021-12-getters/public/output.js | 8 - .../2021-12-getters/static-private/output.js | 7 - .../2021-12-getters/static-public/output.js | 8 - .../private/output.js | 7 - .../public/output.js | 8 - .../static-private/output.js | 6 - .../static-public/output.js | 8 - .../2021-12-methods/private/output.js | 6 - .../fixtures/2021-12-methods/public/output.js | 8 - .../2021-12-methods/static-private/output.js | 6 - .../2021-12-methods/static-public/output.js | 8 - .../output.js | 8 - .../valid-expression-formats/output.js | 13 - .../2021-12-misc/all-decorators/output.js | 31 -- .../output.js | 11 - .../output.js | 7 - .../private-keys-in-enclosing-class/output.js | 5 - .../output.js | 6 - .../super-in-private-accessor/output.js | 6 - .../super-in-private-method/output.js | 5 - .../valid-expression-formats/output.js | 11 - .../private/output.js | 8 - .../public/output.js | 8 - .../static-private/output.js | 8 - .../static-public/output.js | 8 - .../2021-12-setters/private/output.js | 7 - .../fixtures/2021-12-setters/public/output.js | 8 - .../2021-12-setters/static-private/output.js | 7 - .../2021-12-setters/static-public/output.js | 8 - .../private/output.js | 12 - .../public/output.js | 14 - .../static-private/output.js | 12 - .../static-public/output.js | 12 - .../undecorated-private/output.js | 10 - .../undecorated-public/output.js | 11 - .../undecorated-static-private/output.js | 6 - .../undecorated-static-public/output.js | 8 - .../2022-03-accessors/private/output.js | 8 - .../2022-03-accessors/public/output.js | 12 - .../static-private/output.js | 10 - .../2022-03-accessors/static-public/output.js | 14 - .../undecorated-private/output.js | 7 - .../undecorated-public/output.js | 10 - .../undecorated-static-private/output.js | 7 - .../undecorated-static-public/output.js | 10 - .../output.js | 6 - .../super-in-private-accessor/output.js | 6 - .../super-in-private-method/output.js | 5 - .../expressions/output.js | 4 - .../inheritance/output.js | 10 - .../initializers/output.js | 9 - .../output.js | 9 - .../replacement-static-this/output.js | 5 - .../replacement-with-expr/output.js | 3 - .../replacement/output.js | 5 - .../2022-03-classes/expressions/output.js | 13 - .../2022-03-classes/inheritance/output.js | 9 - .../2022-03-classes/initializers/output.js | 11 - .../output.js | 12 - .../replacement-static-this/output.js | 6 - .../replacement-with-expr/output.js | 3 - .../2022-03-classes/replacement/output.js | 6 - .../computed-keys-same-ast/output.js | 7 - .../computed-keys-same-value/output.js | 7 - .../method-and-field/output.js | 5 - .../methods-with-same-key/output.js | 6 - .../computed-keys-same-ast/output.js | 7 - .../computed-keys-same-value/output.js | 7 - .../method-and-field/output.js | 4 - .../methods-with-same-key/output.js | 6 - .../default-anonymous/output.mjs | 5 - .../2022-03-exported/default-named/output.mjs | 5 - .../member-decorator/output.mjs | 1 - .../2022-03-exported/named/output.mjs | 5 - .../2022-03-exported/no-decorators/output.mjs | 2 - .../private/output.js | 6 - .../public/output.js | 5 - .../static-private/output.js | 3 - .../static-public/output.js | 4 - .../fixtures/2022-03-fields/private/output.js | 2 - .../fixtures/2022-03-fields/public/output.js | 3 - .../2022-03-fields/static-private/output.js | 2 - .../2022-03-fields/static-public/output.js | 3 - .../private/output.js | 8 - .../public/output.js | 8 - .../static-private/output.js | 8 - .../static-public/output.js | 8 - .../private/output.js | 10 - .../public/output.js | 10 - .../static-private/output.js | 10 - .../static-public/output.js | 10 - .../private/output.js | 9 - .../public/output.js | 10 - .../static-private/output.js | 9 - .../static-public/output.js | 10 - .../2022-03-getters/private/output.js | 7 - .../fixtures/2022-03-getters/public/output.js | 8 - .../2022-03-getters/static-private/output.js | 7 - .../2022-03-getters/static-public/output.js | 8 - .../private/output.js | 7 - .../public/output.js | 8 - .../static-private/output.js | 6 - .../static-public/output.js | 8 - .../2022-03-methods/private/output.js | 6 - .../fixtures/2022-03-methods/public/output.js | 8 - .../2022-03-methods/static-private/output.js | 6 - .../2022-03-methods/static-public/output.js | 8 - .../output.js | 8 - .../valid-expression-formats/output.js | 13 - .../2022-03-misc/all-decorators/output.js | 31 -- .../output.js | 11 - .../output.js | 7 - .../private-keys-in-enclosing-class/output.js | 5 - .../output.js | 6 - .../super-in-private-accessor/output.js | 6 - .../super-in-private-method/output.js | 5 - .../valid-expression-formats/output.js | 11 - .../private/output.js | 8 - .../public/output.js | 8 - .../static-private/output.js | 8 - .../static-public/output.js | 8 - .../2022-03-setters/private/output.js | 7 - .../fixtures/2022-03-setters/public/output.js | 8 - .../2022-03-setters/static-private/output.js | 7 - .../2022-03-setters/static-public/output.js | 8 - .../class-decorators/output.mjs | 3 - .../method-decorators/output.mjs | 3 - .../no-decorators/output.mjs | 3 - .../legacy-regression/10264/output.mjs | 3 - .../fixtures/legacy-regression/7030/output.js | 6 - .../legacy-regression/8041/output.mjs | 3 - .../fixtures/legacy-regression/8559/output.js | 4 - .../array-rest-destructuring-middle/output.js | 4 - .../array-rest-only/output.js | 4 - .../assignment--es2015/array-rest/output.js | 4 - .../assignment--es2015/basic/output.js | 4 - .../completion-do-expression/output.js | 4 - .../member-expression/output.js | 4 - .../nested-under-array-pattern/output.js | 4 - .../assignment--es2015/nested/output.js | 6 +- .../object-rest-and-keys/output.js | 4 - .../object-rest-and-private-keys/output.js | 4 - .../object-rest-under-private/output.js | 4 - .../assignment--es2015/object-rest/output.js | 4 - .../under-param-initializer/output.js | 8 - .../array-rest-destructuring-middle/output.js | 2 - .../assignment/array-rest-only/output.js | 2 - .../fixtures/assignment/array-rest/output.js | 2 - .../test/fixtures/assignment/basic/output.js | 2 - .../completion-do-expression/output.js | 2 - .../assignment/member-expression/output.js | 2 - .../nested-under-array-pattern/output.js | 3 - .../test/fixtures/assignment/nested/output.js | 4 +- .../assignment/object-rest-and-keys/output.js | 1 - .../object-rest-and-private-keys/output.js | 4 +- .../object-rest-under-private/output.js | 1 - .../fixtures/assignment/object-rest/output.js | 2 - .../under-param-initializer/output.js | 8 - .../function-params/output.js | 11 +- .../variable-declaration/output.js | 20 +- .../no-shadowed-params/output.js | 5 - .../catch-param/no-shadowed-params/output.js | 3 - .../lhs-with-assign/output.js | 4 - .../fixtures/for-init--es2015/lhs/output.js | 4 - .../output.js | 5 - .../variable-declaration/output.js | 2 - .../for-init/lhs-with-assign/output.js | 3 - .../test/fixtures/for-init/lhs/output.js | 2 - .../output.js | 3 - .../for-init/variable-declaration/output.js | 1 - .../lhs-with-shadowed-block-scoped/output.js | 5 +- .../fixtures/for-of--es2015/lhs/output.js | 3 - .../output.js | 9 +- .../variable-declaration/output.js | 3 - .../lhs-with-shadowed-block-scoped/output.js | 4 +- .../test/fixtures/for-of/lhs/output.js | 1 - .../output.js | 8 +- .../for-of/variable-declaration/output.js | 1 - .../function-length/output.js | 11 +- .../no-shadowed-params/output.js | 7 +- .../shadowed-params/output.js | 7 +- .../function-params/function-length/output.js | 11 +- .../no-shadowed-params/output.js | 6 +- .../function-params/shadowed-params/output.js | 6 +- .../output.js | 2 - .../array-rest-only/output.js | 10 +- .../array-rest/output.js | 8 +- .../basic/output.js | 16 +- .../nested-under-array-pattern/output.js | 13 +- .../nested/output.js | 26 +- .../non-identifier-keys/output.js | 8 +- .../object-rest-and-keys/output.js | 11 +- .../object-rest-and-private-keys/output.js | 7 +- .../object-rest-under-private/output.js | 18 +- .../object-rest/output.js | 20 +- .../array-rest-only/output.js | 7 +- .../variable-declaration/array-rest/output.js | 6 +- .../variable-declaration/basic/output.js | 14 +- .../nested-under-array-pattern/output.js | 12 +- .../variable-declaration/nested/output.js | 25 +- .../non-identifier-keys/output.js | 8 +- .../object-rest-and-keys/output.js | 9 +- .../object-rest-and-private-keys/output.js | 8 +- .../object-rest-under-private/output.js | 13 +- .../object-rest/output.js | 18 +- .../condition-before-break/output.js | 1 - .../condition-before-expression/output.js | 1 - .../declaration-before-break/output.js | 5 - .../empty-case-block/output.js | 1 - .../fallthrough-block-last/output.js | 4 - .../fallthrough-block/output.js | 5 - .../fallthrough-last/output.js | 4 - .../fallthrough-multiblock/output.js | 7 - .../fallthrough/output.js | 5 - .../multi-consequent-multiblock/output.js | 5 - .../multiple-break/output.js | 2 - .../multiple-consequent-block/output.js | 4 - .../multiple-consequent/output.js | 1 - .../nested-break-block/output.js | 7 - .../single-consequent-block/output.js | 1 - .../single-consequent/output.js | 1 - .../do-expressions/block-scope/output.js | 1 - .../output.js | 1 - .../do-expressions/while-if/output.js | 3 - .../test/fixtures/runtime/basic/output.js | 3 +- .../commonjs/missing-plugin/output.js | 1 - .../commonjs/shadowed-require/output.js | 1 - .../fixtures/function-bind/bind/output.js | 3 - .../fixtures/function-bind/call/output.js | 3 - .../function-bind/complex-call/output.mjs | 1 - .../function-bind/static-contexts/output.js | 1 - .../fixtures/function-bind/super/output.js | 1 - .../test/fixtures/regression/6458/output.js | 1 - .../test/fixtures/regression/T6984/output.js | 3 - .../fixtures/function-sent/basic/output.js | 2 - .../fixtures/function-sent/multiple/output.js | 1 - .../yield-function-sent/output.js | 1 - .../generator-kinds/async-generator/output.js | 2 - .../generator-kinds/class-method/output.js | 2 - .../export-default-anonymous/output.mjs | 2 - .../export-default-named/output.mjs | 2 - .../generator-kinds/export/output.mjs | 2 - .../expression-anonymous/output.js | 1 - .../expression-named/output.js | 3 - .../generator-kinds/object-method/output.js | 2 - .../generator-kinds/statement/output.js | 2 - .../directive-line-separator/output.js | 14 +- .../directive-paragraph-separator/output.js | 14 +- .../string-line-separator/output.js | 18 +- .../string-paragraph-separator/output.js | 18 +- .../general-semantics/output.js | 4 - .../null-coalescing-without-other/output.js | 1 - .../null-coalescing/output.js | 4 - .../output.js | 1 - .../transform-in-default-param/output.js | 2 - .../transform-in-function/output.js | 1 - .../transform/output.js | 1 - .../output.js | 1 - .../transform-in-default-param/output.js | 2 - .../transform-in-function/output.js | 1 - .../transform-loose/output.js | 1 - .../output.js | 7 - .../rest-computed/output.js | 8 +- .../rest-nested/output.js | 16 +- .../rest-var-declaration/output.js | 8 +- .../output.js | 14 +- .../expression/output.js | 1 - .../expression/output.js | 1 - .../assignment-expression/output.js | 1 - .../object-rest/catch-clause/output.js | 41 +- .../fixtures/object-rest/export/output.mjs | 8 +- .../object-rest/for-x-array-pattern/output.js | 34 +- .../for-x-completion-record/output.js | 1 - .../test/fixtures/object-rest/for-x/output.js | 22 +- .../object-rest/impure-computed/output.js | 51 ++- .../fixtures/object-rest/nested-2/output.js | 16 +- .../object-rest/nested-array-2/output.js | 30 +- .../object-rest/nested-array/output.js | 18 +- .../object-rest/nested-computed-key/output.js | 3 +- .../nested-default-value/output.js | 3 +- .../nested-literal-property/output.js | 20 +- .../object-rest/nested-order/output.js | 4 +- .../fixtures/object-rest/nested/output.js | 12 +- .../object-rest/non-string-computed/output.js | 24 +- .../output.js | 6 +- .../object-rest/null-destructuring/output.js | 10 +- .../object-rest/object-ref-computed/output.js | 76 ++-- .../output.js | 16 +- .../fixtures/object-rest/parameters/output.js | 97 +++-- .../output.js | 15 +- .../fixtures/object-rest/symbol/output.js | 15 +- .../output.js | 19 +- .../output.js | 10 +- .../variable-destructuring/output.js | 236 ++++++------ .../object-rest/with-array-rest/output.js | 16 +- .../expression/output.js | 1 - .../side-effect/output.js | 4 - .../object-spread-loose/expression/output.js | 1 - .../output.js | 7 - .../object-spread-loose/side-effect/output.js | 4 - .../object-spread/expression/output.js | 1 - .../object-spread/side-effect/output.js | 4 - .../test/fixtures/regression/T7178/output.js | 2 - .../fixtures/regression/gh-4904/output.js | 31 +- .../fixtures/regression/gh-5151/output.js | 29 +- .../fixtures/regression/gh-7304/output.js | 3 - .../fixtures/regression/gh-7388/output.js | 7 +- .../fixtures/regression/gh-8323/output.js | 10 +- .../assignment/output.js | 1 - .../cast-to-boolean/output.js | 36 -- .../in-function-params/output.js | 8 - .../memoize/output.js | 1 - .../optional-eval-call/output.js | 5 +- .../super-method-call/output.js | 4 - .../function-call/output.js | 1 - .../assumption-pureGetters/memoize/output.js | 1 - .../super-method-call/output.js | 3 - .../fixtures/general/assignment/output.js | 1 - .../general/cast-to-boolean/output.js | 36 -- .../fixtures/general/containers/output.js | 1 - .../test/fixtures/general/delete/output.js | 1 - .../general/function-call-loose/output.js | 1 - .../general/function-call-spread/output.js | 1 - .../fixtures/general/function-call/output.js | 1 - .../in-function-params-loose/output.js | 8 - .../general/in-function-params/output.js | 8 - .../general/in-method-key-loose/output.js | 2 - .../fixtures/general/in-method-key/output.js | 2 - .../general/in-var-destructuring/output.js | 1 - .../fixtures/general/member-access/output.js | 1 - .../fixtures/general/memoize-loose/output.js | 1 - .../test/fixtures/general/memoize/output.js | 1 - .../optional-eval-call-loose/output.js | 5 +- .../general/optional-eval-call/output.js | 5 +- .../output.js | 1 - .../parenthesized-member-call-loose/output.js | 8 - .../parenthesized-member-call/output.js | 8 - .../general/super-method-call-loose/output.js | 3 - .../general/super-method-call/output.js | 4 - .../test/fixtures/general/unary/output.js | 1 - .../fixtures/loose/cast-to-boolean/output.js | 36 -- .../output.js | 1 - .../output.js | 1 - .../test/fixtures/regression/7642/output.js | 1 - .../ts-as-call-context-in-if/output.js | 1 - .../ts-as-call-context/output.js | 1 - .../ts-as-in-conditional/output.js | 1 - .../ts-as-member-expression/output.js | 1 - .../output.js | 1 - .../fixtures/general/bound-method/output.js | 2 - .../test/fixtures/general/curry/output.js | 2 - .../test/fixtures/general/from-left/output.js | 1 - .../fixtures/general/from-right/output.js | 1 - .../member-expression-private-name/output.js | 4 - .../general/member-expression/output.js | 1 - .../fixtures/general/multiple-calls/output.js | 1 - .../fixtures/general/nested-calls/output.js | 1 - .../nested-member-expression/output.js | 1 - .../not-assigned-and-chained/output.js | 1 - .../fixtures/general/simple-call/output.js | 1 - .../fixtures/general/uncurry-this/output.js | 1 - .../fixtures/general/with-spread/output.js | 1 - .../fixtures/fsharp/arrow-functions/output.js | 5 - .../test/fixtures/fsharp/await/output.js | 1 - .../test/fixtures/fsharp/basic/output.js | 2 - .../fixtures/fsharp/indirect-eval/output.js | 1 - .../fsharp/multiple-argument-use/output.js | 1 - .../fsharp/optimize-0-param-arrow/output.js | 4 +- .../pipe-body-with-addition/output.js | 1 - .../output.js | 1 - .../pipe-body-with-arrow-function/output.js | 1 - .../hack-caret/pipe-body-with-await/output.js | 3 - .../output.js | 4 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../hack-caret/pipe-body-with-yield/output.js | 2 - .../pipe-in-arrow-function/output.js | 2 - .../topic-token-in-function/output.js | 1 - .../transform-arrow-functions/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../within-generator-with-yield/output.js | 1 - .../hack-caret/within-if-else-block/output.js | 1 - .../hack-double-at/class-decorator/output.js | 4 - .../pipe-body-with-addition/output.js | 1 - .../output.js | 1 - .../pipe-body-with-arrow-function/output.js | 1 - .../pipe-body-with-await/output.js | 3 - .../output.js | 4 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../pipe-body-with-yield/output.js | 2 - .../pipe-in-arrow-function/output.js | 2 - .../topic-token-in-function/output.js | 1 - .../transform-arrow-functions/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../within-generator-with-yield/output.js | 1 - .../within-if-else-block/output.js | 1 - .../class-decorator/output.js | 4 - .../pipe-body-with-addition/output.js | 1 - .../output.js | 1 - .../pipe-body-with-arrow-function/output.js | 1 - .../pipe-body-with-await/output.js | 3 - .../output.js | 4 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../pipe-body-with-yield/output.js | 2 - .../pipe-in-arrow-function/output.js | 2 - .../topic-token-in-function/output.js | 1 - .../transform-arrow-functions/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../within-generator-with-yield/output.js | 1 - .../within-if-else-block/output.js | 1 - .../pipe-body-with-addition/output.js | 1 - .../output.js | 1 - .../pipe-body-with-arrow-function/output.js | 1 - .../hack-hash/pipe-body-with-await/output.js | 3 - .../output.js | 4 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../hack-hash/pipe-body-with-yield/output.js | 2 - .../pipe-in-arrow-function/output.js | 2 - .../topic-token-in-function/output.js | 1 - .../transform-arrow-functions/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../within-generator-with-yield/output.js | 1 - .../hack-hash/within-if-else-block/output.js | 1 - .../pipe-body-with-addition/output.js | 1 - .../output.js | 1 - .../pipe-body-with-arrow-function/output.js | 1 - .../pipe-body-with-await/output.js | 3 - .../output.js | 4 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../pipe-body-with-yield/output.js | 2 - .../pipe-in-arrow-function/output.js | 2 - .../topic-token-in-function/output.js | 1 - .../transform-arrow-functions/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../within-generator-with-yield/output.js | 1 - .../within-if-else-block/output.js | 1 - .../arrow-functions-parenless/output.js | 7 - .../minimal/arrow-functions/output.js | 5 - .../fixtures/minimal/async-arrow/output.js | 2 - .../test/fixtures/minimal/basic/output.js | 2 - .../test/fixtures/minimal/chaining/output.js | 3 - .../test/fixtures/minimal/currying/output.js | 2 - .../deoptimize-multi-param-arrow/output.js | 5 +- .../minimal/destructure-arrow-param/output.js | 4 +- .../fixtures/minimal/evaluation/output.js | 3 - .../fixtures/minimal/indirect-eval/output.js | 1 - .../minimal/multiple-argument-use/output.js | 1 - .../minimal/optimize-0-param-arrow/output.js | 4 +- .../fixtures/minimal/precedence/output.js | 5 - .../test/fixtures/smart/basic/output.js | 1 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../fixtures/smart/generator-yield/output.js | 1 - .../fixtures/smart/if-else-block/output.js | 1 - .../smart/pipe-body-identity/output.js | 1 - .../output.js | 2 - .../output.js | 1 - .../smart/pipe-body-with-await/output.js | 3 - .../pipe-body-with-eval-on-topic/output.js | 1 - .../pipe-body-with-eval-tacit-call/output.js | 1 - .../pipe-body-with-nested-pipe/output.js | 1 - .../pipe-body-with-object-literal/output.js | 2 - .../output.js | 1 - .../output.js | 1 - .../smart/pipe-body-with-yield/output.js | 2 - .../pipe-head-with-nested-pipe/output.js | 1 - .../smart/pipe-in-arrow-function/output.js | 2 - .../smart/transform-arrow-functions/output.js | 2 - .../output.js | 3 - .../output.js | 3 - .../fixtures/accessors-loose/basic/output.js | 7 - .../accessors-loose/get-only-setter/output.js | 4 - .../accessors-loose/reassignment/output.js | 4 - .../accessors-loose/set-only-getter/output.js | 4 - .../accessors-loose/updates/output.js | 10 - .../basic/output.js | 7 - .../get-only-setter/output.js | 4 - .../set-only-getter/output.js | 4 - .../updates/output.js | 10 - .../test/fixtures/accessors/basic/output.js | 7 - .../accessors/get-only-setter/output.js | 4 - .../fixtures/accessors/reassignment/output.js | 5 - .../accessors/set-only-getter/output.js | 6 - .../accessors/tagged-template/output.js | 4 - .../accessors/updates-bigint/output.js | 11 - .../test/fixtures/accessors/updates/output.js | 11 - .../private-method-super/output.js | 7 - .../duplicated-names/get-set/output.js | 5 - .../duplicated-names/set-get/output.js | 5 - .../private-method-loose/assignment/output.js | 3 - .../private-method-loose/async/output.js | 4 - .../before-fields/output.js | 5 - .../class-expression/output.js | 4 - .../private-method-loose/context/output.js | 8 - .../exfiltrated/output.js | 5 - .../private-method-loose/generator/output.js | 4 - .../reassignment/output.js | 4 - .../private-method-loose/super/output.js | 7 - .../assignment/output.js | 3 - .../async/output.js | 4 - .../before-fields/output.js | 5 - .../class-expression/output.js | 4 - .../context/output.js | 8 - .../exfiltrated/output.js | 5 - .../generator/output.js | 4 - .../super/output.js | 7 - .../private-method/assignment/output.js | 3 - .../fixtures/private-method/async/output.js | 4 - .../private-method/before-fields/output.js | 5 - .../private-method/class-expression/output.js | 4 - .../fixtures/private-method/context/output.js | 7 - .../private-method/exfiltrated/output.js | 5 - .../private-method/generator/output.js | 4 - .../private-method/read-only/output.js | 4 - .../private-method/reassignment/output.js | 5 - .../fixtures/private-method/super/output.js | 7 - .../private-method/tagged-template/output.js | 4 - .../async/output.js | 3 - .../basic/output.js | 8 - .../class-check/output.js | 4 - .../class-expression/output.js | 3 - .../exfiltrated/output.js | 5 - .../generator/output.js | 4 - .../reassignment/output.js | 4 - .../super/output.js | 7 - .../this/output.js | 9 - .../async/output.js | 4 - .../basic/output.js | 8 - .../class-check/output.js | 4 - .../class-expression/output.js | 3 - .../exfiltrated/output.js | 5 - .../generator/output.js | 4 - .../reassignment/output.js | 4 - .../super/output.js | 7 - .../this/output.js | 9 - .../private-static-method/async/output.js | 3 - .../private-static-method/basic/output.js | 6 - .../class-check/output.js | 2 - .../class-expression/output.js | 3 - .../exfiltrated/output.js | 3 - .../private-static-method/generator/output.js | 2 - .../private-static-method/read-only/output.js | 2 - .../private-static-method/super/output.js | 5 - .../tagged-template/output.js | 2 - .../private-static-method/this/output.js | 7 - .../static-accessors-loose/basic/output.js | 7 - .../destructure-set/output.js | 5 - .../get-only-setter/output.js | 5 - .../set-only-getter/output.js | 5 - .../static-accessors-loose/updates/output.js | 10 - .../basic/output.js | 7 - .../destructure-set/output.js | 5 - .../get-only-setter/output.js | 5 - .../set-only-getter/output.js | 5 - .../updates/output.js | 10 - .../fixtures/static-accessors/basic/output.js | 5 - .../destructure-set/output.js | 3 - .../get-only-setter/output.js | 3 - .../set-only-getter/output.js | 3 - .../tagged-template/output.js | 3 - .../static-accessors/updates/output.js | 9 - .../accessor/output.js | 4 - .../compiled-classes/output.js | 4 - .../field/output.js | 3 - .../method/output.js | 4 - .../nested-class-other-redeclared/output.js | 8 - .../nested-class-redeclared/output.js | 7 - .../nested-class/output.js | 5 - .../static-accessor/output.js | 4 - .../static-field/output.js | 3 - .../static-method/output.js | 4 - .../fixtures/private-loose/accessor/output.js | 3 - .../fixtures/private-loose/field/output.js | 2 - .../fixtures/private-loose/method/output.js | 3 - .../private-loose/native-classes/output.js | 5 - .../nested-class-other-redeclared/output.js | 6 - .../nested-class-redeclared/output.js | 5 - .../private-loose/nested-class/output.js | 4 - .../private-loose/static-accessor/output.js | 4 - .../private-loose/static-field/output.js | 3 - .../private-loose/static-method/output.js | 4 - .../private-loose/static-shadow/output.js | 4 - .../test/fixtures/private/accessor/output.js | 3 - .../test/fixtures/private/field/output.js | 2 - .../test/fixtures/private/method/output.js | 3 - .../fixtures/private/native-classes/output.js | 5 - .../nested-class-other-redeclared/output.js | 8 - .../private/nested-class-redeclared/output.js | 5 - .../fixtures/private/nested-class/output.js | 4 - .../private/static-accessor/output.js | 3 - .../fixtures/private/static-field/output.js | 2 - .../fixtures/private/static-method/output.js | 2 - .../fixtures/private/static-shadow/output.js | 4 - .../to-native-fields/accessor/output.js | 4 - .../output.js | 3 - .../class-expression-instance/output.js | 3 - .../class-expression-static/output.js | 3 - .../fixtures/to-native-fields/field/output.js | 3 - .../half-constructed-instance/output.js | 11 - .../half-constructed-static/output.js | 8 - .../to-native-fields/method/output.js | 4 - .../multiple-checks/output.js | 8 - .../nested-class-other-redeclared/output.js | 10 - .../nested-class-redeclared/output.js | 7 - .../to-native-fields/nested-class/output.js | 5 - .../static-accessor/output.js | 2 - .../to-native-fields/static-field/output.js | 3 - .../to-native-fields/static-method/output.js | 2 - .../to-native-fields/static-shadow/output.js | 4 - .../static-shadowed-binding/output.js | 3 - .../import-polyfill/commonjs/output.js | 3 - .../output.mjs | 2 - .../import-polyfill/custom-name/output.mjs | 2 - .../import-polyfill/default-name/output.mjs | 2 - .../type-parameter-unambiguous/output.js | 1 - .../arguments-global-undeclared/output.js | 4 - .../arguments-global-var/output.js | 4 - .../arrow-functions/arguments/output.js | 36 -- .../default-parameters/output.js | 1 - .../destructuring-parameters/output.js | 1 - .../implicit-var-arguments/output.js | 5 - .../fixtures/arrow-functions/nested/output.js | 2 - .../self-referential/output.js | 3 - .../fixtures/arrow-functions/spec/output.js | 5 - .../fixtures/arrow-functions/this/output.js | 5 - .../basic/output.js | 5 - .../naming/output.js | 3 - .../self-referential/output.js | 7 - .../newableArrowFunction-default/output.js | 1 - .../output.js | 1 - .../export-default-function/output.mjs | 1 - .../basic/output.js | 4 +- .../async-arrow-in-method/output.js | 4 - .../async-default-arguments/output.js | 2 - .../output.js | 15 +- .../async-iife-with-regenerator/output.js | 14 +- .../async-to-generator/async-iife/output.js | 10 +- .../async-to-generator/async/output.js | 1 - .../deeply-nested-asyncs/output.js | 11 +- .../async-to-generator/double-await/output.js | 1 - .../async-to-generator/expression/output.js | 34 +- .../function-arity/output.js | 11 - .../named-expression/output.js | 2 - .../object-method-with-arrows/output.js | 19 +- .../object-method-with-super/output.js | 5 +- .../object-method/output.js | 2 - .../async-to-generator/parameters/output.js | 1 - .../shadowed-promise-import/output.mjs | 2 - .../shadowed-promise-nested/output.js | 4 - .../shadowed-promise/output.js | 2 - .../async-to-generator/statement/output.js | 1 - .../arrow-function/output.js | 1 - .../bluebird-coroutines/class/output.js | 2 - .../bluebird-coroutines/expression/output.js | 2 - .../named-expression/output.js | 3 - .../bluebird-coroutines/statement/output.js | 2 - .../default-arrow-export/output.js | 2 - .../export-async/default-export/output.js | 2 - .../export-async/import-and-export/output.js | 3 - .../export-async/lone-export/output.js | 2 - .../test/fixtures/regression/4599/output.js | 7 +- .../test/fixtures/regression/4943/output.js | 6 +- .../test/fixtures/regression/7178/output.js | 3 - .../test/fixtures/regression/8783/output.js | 2 - .../test/fixtures/regression/T7108/output.js | 10 - .../test/fixtures/regression/T7194/output.js | 7 +- .../fixtures/regression/gh-6923/output.js | 7 +- .../in-uncompiled-class-fields/output.js | 4 +- .../destructuring-assignment/output.js | 2 +- .../const-violations/destructuring/output.js | 24 +- .../fixtures/const-violations/loop/output.js | 1 - .../nested-update-expressions/output.js | 1 - .../const-violations/no-for-in/output.js | 1 - .../const-violations/program/output.js | 1 - .../test/fixtures/exec/scope-bindings.js | 1 - .../general/assignment-patterns/output.js | 1 - .../block-inside-switch-inside-loop/output.js | 28 +- .../for-break-continue-closure/output.js | 4 - .../for-break-continue-return/output.js | 3 - .../test/fixtures/general/for-break/output.js | 2 - .../general/for-const-closure/output.js | 1 - .../general/for-continuation/output.js | 2 - .../fixtures/general/for-continue/output.js | 2 - .../general/for-return-undefined/output.js | 2 - .../fixtures/general/for-return/output.js | 2 - .../fixtures/general/function-name/output.js | 1 - .../test/fixtures/general/hoisting/output.js | 5 +- .../issue-10046-async-generator/output.js | 2 +- .../general/issue-10046-async/output.js | 2 - .../issue-10046-collision-const/output.js | 2 - .../issue-10046-collision-let/output.js | 2 - .../issue-10046-collision-var/output.js | 2 - .../general/issue-10046-generator/output.js | 2 - .../general/issue-10046-module/output.mjs | 1 - .../general/issue-10046-strict/output.js | 1 - .../fixtures/general/issue-10046/output.js | 1 - .../fixtures/general/issue-10339/output.js | 11 +- .../fixtures/general/issue-1051/output.js | 3 - .../fixtures/general/issue-2174/output.js | 2 - .../fixtures/general/issue-4363/output.js | 9 - .../general/issue-8128-for-of-after/output.js | 5 +- .../issue-8128-for-of-before/output.js | 4 +- .../issue-8128-for-of-loose-after/output.js | 2 - .../issue-8128-for-of-loose-before/output.js | 1 - .../output.js | 9 +- .../test/fixtures/general/issue-973/output.js | 2 - .../fixtures/general/issue-T7525/output.js | 2 - .../fixtures/general/jsx-identifier/output.js | 2 +- .../test/fixtures/general/label/output.js | 4 - .../loop-initializer-default/output.js | 2 - .../general/loops-and-no-loops/output.js | 5 - .../general/rename-inside-switch/output.js | 8 - .../fixtures/general/sibling-scopes/output.js | 2 - .../fixtures/general/superswitch/output.js | 2 - .../general/switch-callbacks/output.js | 3 - .../general/switch-inside-loop/output.js | 28 +- .../test/fixtures/general/switch/output.js | 8 - .../output.js | 4 - .../wrap-closure-shadow-variables/output.js | 3 - .../tdz/block-ref-function-call/output.js | 1 - .../test/fixtures/tdz/exported-fn/output.mjs | 3 +- .../tdz/function-call-after/output.js | 1 - .../tdz/function-call-before/output.js | 1 - .../function-call-maybe-real-after/output.js | 2 - .../output.js | 2 - .../tdz/function-call-maybe/output.js | 2 - .../function-call-nested-function/output.js | 2 - .../function-call-recursive-after/output.js | 1 - .../function-call-recursive-before/output.js | 1 - .../output.js | 2 - .../test/fixtures/tdz/function-ref/output.js | 2 - .../fixtures/tdz/hoisted-function/output.js | 1 - .../fixtures/tdz/shadow-outer-var/output.js | 2 - .../accessing-super-class/output.js | 10 - .../accessing-super-properties/output.js | 4 - .../output.js | 4 - .../calling-super-properties/output.js | 7 - .../default-super/output.js | 6 +- .../with-constructor/output.js | 2 - .../with-superClass/output.js | 5 - .../literal-key/output.js | 3 - .../output.js | 3 - .../method-name-non-bmp/output.js | 3 - .../method-return-type-annotation/output.js | 3 - .../method-reuse-prototype/output.js | 5 - .../output.js | 3 - .../output.js | 5 - .../super-class-this-usage/output.js | 3 - .../super-class/output.js | 2 - .../fixtures/extend-builtins/loose/output.js | 2 - .../extend-builtins/shadowed/output.js | 4 - .../fixtures/extend-builtins/spec/output.js | 3 - .../output.js | 13 - .../output.js | 11 - .../output.js | 11 +- .../output.js | 12 +- .../output.js | 7 - .../output.js | 7 - .../output.js | 6 - .../output.js | 7 - .../get-set-loose/memoized-assign/output.js | 11 - .../get-set-loose/memoized-update/output.js | 11 - .../output.js | 7 - .../output.js | 17 +- .../output.js | 6 - .../output.js | 11 +- .../output.js | 6 - .../output.js | 12 +- .../output.js | 18 +- .../output.js | 6 - .../output.js | 6 - .../output.js | 9 +- .../output.js | 10 +- .../get-set/change-computed-key/output.js | 1 - .../output.js | 5 - .../output.js | 6 - .../output.js | 5 - .../output.js | 6 - .../get-set/memoized-assign/output.js | 8 - .../get-set/memoized-update/output.js | 8 - .../get-set/method-conflict/output.js | 1 - .../fixtures/get-set/numeric-keys/output.js | 4 +- .../output.js | 5 - .../output.js | 7 - .../output.js | 5 - .../output.js | 5 - .../output.js | 5 - .../output.js | 5 - .../output.js | 7 - .../with-constructor/output.js | 4 - .../with-superClass/output.js | 4 - .../loose/accessing-super-class/output.js | 9 - .../accessing-super-properties/output.js | 3 - .../output.js | 4 - .../output.js | 3 - .../loose/calling-super-properties/output.js | 7 - .../loose/constructor-order/output.js | 3 - .../fixtures/loose/default-super/output.js | 7 +- .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../test/fixtures/loose/literal-key/output.js | 3 - .../method-name-non-bmp-babel-7/output.js | 1 - .../output.js | 1 - .../output.js | 1 - .../loose/method-name-non-bmp/output.js | 1 - .../method-return-type-annotation/output.js | 3 - .../loose/method-reuse-prototype/output.js | 5 - .../output.js | 3 - .../output.js | 5 - .../test/fixtures/loose/super-class/output.js | 2 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../test/fixtures/regression/14652/output.js | 4 - .../test/fixtures/regression/2663/output.js | 12 +- .../test/fixtures/regression/2694/output.js | 6 - .../test/fixtures/regression/2775/output.js | 6 - .../test/fixtures/regression/2941/output.js | 2 - .../test/fixtures/regression/3028/output.js | 15 - .../test/fixtures/regression/5769/output.js | 9 - .../test/fixtures/regression/5817/output.js | 7 - .../test/fixtures/regression/8499/output.js | 8 - .../test/fixtures/regression/T2494/output.js | 3 - .../test/fixtures/regression/T2997/output.js | 5 - .../test/fixtures/regression/T6712/output.js | 1 - .../test/fixtures/regression/T6750/output.js | 2 - .../test/fixtures/regression/T6755/output.js | 7 - .../test/fixtures/regression/T7010/output.js | 3 - .../test/fixtures/regression/T7537/output.js | 5 - .../spec/accessing-super-class/output.js | 11 - .../spec/accessing-super-properties/output.js | 4 - .../output.js | 5 - .../spec/calling-super-properties/output.js | 4 - .../spec/computed-keys-yield-await/output.js | 5 - .../fixtures/spec/computed-methods/output.js | 1 - .../constructor-binding-collision/output.js | 1 - .../test/fixtures/spec/constructor/output.js | 6 - .../fixtures/spec/default-super/output.js | 6 +- .../output.js | 4 - .../output.js | 4 - .../output.js | 6 - .../output.js | 6 - .../output.js | 4 - .../output.js | 4 - .../output.js | 4 - .../output.js | 4 - .../spec/export-super-class/output.mjs | 4 - .../spec/instance-getter-and-setter/output.js | 1 - .../fixtures/spec/instance-getter/output.js | 1 - .../fixtures/spec/instance-method/output.js | 1 - .../fixtures/spec/instance-setter/output.js | 1 - .../method-name-non-bmp-babel-7/output.js | 1 - .../output.js | 1 - .../output.js | 1 - .../spec/method-name-non-bmp/output.js | 1 - .../method-return-type-annotation/output.js | 1 - .../output.js | 8 - .../output.js | 9 - .../output.js | 8 - .../spec/name-method-collision/output.js | 2 - .../nested-class-super-call-in-key/output.js | 10 - .../output.js | 10 - .../nested-object-super-call-in-key/output.js | 8 - .../output.js | 8 - .../spec/relaxed-method-coercion/output.js | 1 - .../test/fixtures/spec/statement/output.js | 2 - .../test/fixtures/spec/static/output.js | 1 - .../spec/super-class-anonymous/output.js | 24 -- .../output.js | 7 - .../test/fixtures/spec/super-class/output.js | 3 - .../output.js | 4 - .../output.js | 4 - .../output.js | 6 - .../output.js | 6 - .../output.js | 6 - .../output.js | 4 - .../output.js | 4 - .../output.js | 6 - .../output.js | 6 - .../output.js | 4 - .../output.js | 4 - .../accessors/output.js | 1 - .../argument/output.js | 1 - .../assignment/output.js | 1 - .../coerce/output.js | 1 - .../method/output.js | 1 - .../mixed/output.js | 1 - .../multiple/output.js | 1 - .../single/output.js | 1 - .../symbol/output.js | 1 - .../this/output.js | 1 - .../two/output.js | 1 - .../variable/output.js | 1 - .../loose/setComputedProperties/output.js | 1 - .../test/fixtures/regression/7144/output.mjs | 1 - .../test/fixtures/spec/accessors/output.js | 1 - .../test/fixtures/spec/method/output.js | 1 - .../test/fixtures/spec/mixed/output.js | 1 - .../test/fixtures/spec/multiple/output.js | 1 - .../test/fixtures/spec/symbol/output.js | 1 - .../fixtures/allowArrayLike/simple/output.js | 6 +- .../simple/output.js | 6 +- .../basic/output.js | 4 +- .../for-in/output.js | 1 - .../rest-computed/output.js | 6 +- .../rest-nested/output.js | 12 +- .../rest-var-declaration/output.js | 6 +- .../array-symbol-unsupported/output.js | 10 +- .../array-unpack-optimisation/output.js | 44 ++- .../fixtures/destructuring/array/output.js | 6 +- .../assignment-expression/output.js | 1 - .../assignment-statement/output.js | 2 - .../output.js | 2 +- .../fixtures/destructuring/const/output.js | 8 +- .../default-precedence/output.js | 5 - .../destructuring-empty-in-for/output.js | 3 - .../destructuring/empty-string/output.js | 4 +- .../fixtures/destructuring/empty/output.js | 12 +- .../es7-object-rest-builtins/output.js | 14 +- .../es7-object-rest-loose/output.js | 14 +- .../destructuring/es7-object-rest/output.js | 14 +- .../destructuring/export-variable/output.mjs | 12 +- .../fixtures/destructuring/for-in/output.js | 4 - .../for-of-shadowed-block-scoped/output.js | 3 - .../fixtures/destructuring/for-of/output.js | 4 - .../destructuring/init-hole/output.js | 21 +- .../destructuring/issue-3081/output.js | 1 - .../destructuring/issue-5628/output.js | 3 - .../destructuring/issue-6373/output.js | 3 +- .../destructuring/issue-9834/output.js | 15 +- .../destructuring/known-array/output.js | 2 +- .../fixtures/destructuring/mixed/output.js | 11 +- .../fixtures/destructuring/multiple/output.js | 4 +- .../destructuring/object-advanced/output.js | 14 +- .../destructuring/object-basic/output.js | 2 +- .../output.js | 6 +- .../destructuring/parameters/output.js | 26 +- .../fixtures/destructuring/spread/output.js | 7 +- .../test/fixtures/regression/11210/output.mjs | 1 - .../test/fixtures/regression/8528/output.js | 1 - .../sourcemap/declaration-loc/options.json | 3 +- .../sourcemap/declaration-loc/output.js | 4 +- .../declaration-loc/source-mappings.json | 10 - .../fixtures/duplicate-keys/getter/output.js | 2 - .../getters-and-setters/output.js | 13 - .../test/fixtures/regression/4349/output.js | 2 - .../test/fixtures/regression/4403/output.js | 1 - .../arrow-single-optional-param/output.js | 4 +- .../arrow-single-param-type/output.js | 4 +- .../class-extends-type-parameter/output.js | 4 +- .../class-prop-values-2/output.js | 1 - .../class-prop-values-3/output.js | 1 - .../flow-comments/class-prop-values/output.js | 6 +- .../class-type-parameter-2/output.js | 4 +- .../class-type-parameter-3/output.js | 4 +- .../output.js | 27 +- .../class-type-parameter-extends/output.js | 4 +- .../class-type-parameter/output.js | 4 +- .../declare-statements/output.js | 15 - .../flow-comments/def-site-variance/output.js | 10 +- .../default-parameters/output.js | 29 +- .../flow-comments/export-type-alias/output.js | 3 - .../flow-comments/import-export/output.mjs | 6 +- .../import-type-alias-2/output.mjs | 6 +- .../import-type-alias/output.mjs | 4 +- .../object-destructuring-1/output.js | 6 +- .../object-destructuring-2/output.js | 4 +- .../object-method-type-annotations/output.js | 6 +- .../flow-comments/opaque-type-alias/output.js | 3 - .../optional-parameters/output.js | 4 +- .../flow-comments/optional-type/output.js | 9 +- .../preserve-comments-order/output.js | 4 - .../flow-comments/preserve-comments/output.js | 1 - .../output.js | 9 +- .../output.js | 7 +- .../type-alias-with-comment/output.js | 2 - .../flow-comments/type-alias/output.js | 3 - .../flow-comments/type-cast/output.js | 10 +- .../fixtures/flow-comments/type/output.js | 6 +- .../class-fields-uninitialized/output.js | 1 - .../output.js | 3 - .../output.js | 1 - .../def-site-variance-babel-7/output.js | 3 - .../strip-types/def-site-variance/output.js | 3 - .../strip-types/default-parameters/output.js | 5 - .../output.js | 2 - .../output.js | 3 - .../strip-string-literal-types/output.js | 1 - .../strip-types/strip-this-param/output.js | 16 - .../strip-type-annotations-babel-7/output.mjs | 54 --- .../strip-type-annotations/output.mjs | 54 --- .../strip-types/strip-typeapp-call/output.js | 3 - .../strip-types/strip-typecasts/output.js | 2 - .../strip-types/type-comments/output.js | 3 +- .../fixtures/allowArrayLike/simple/output.js | 3 +- .../simple/output.js | 3 +- .../for-of-array-pattern/output.js | 1 - .../for-of-expression/output.js | 1 - .../for-of-import-commonjs/output.js | 1 - .../for-of-import-es2015/output.mjs | 1 - .../for-of-static-declaration/output.js | 1 - .../for-of-static/output.js | 1 - .../for-of/output.js | 1 - .../ignore-cases/output.js | 1 - .../multiple/output.js | 1 - .../nested-label-for-of/output.js | 1 - .../for-of-array-pattern/output.js | 1 - .../for-of-expression/output.js | 1 - .../for-of-import-commonjs/output.js | 1 - .../for-of-import-es2015/output.mjs | 1 - .../for-of-redeclaration-in-body/output.js | 1 - .../for-of-static-declaration/output.js | 1 - .../for-of-as-array/for-of-static/output.js | 1 - .../fixtures/for-of-as-array/for-of/output.js | 1 - .../for-of-redeclaration-in-body/output.js | 1 - .../fixtures/loose/ignore-cases/output.js | 1 - .../test/fixtures/loose/multiple/output.js | 1 - .../loose/nested-label-for-of/output.js | 1 - .../test/fixtures/opt/array-binding/output.js | 3 - .../test/fixtures/opt/built-ins/output.js | 4 - .../output.js | 3 +- .../type-annotation-array-ts-deopt/output.js | 3 +- .../output.js | 3 +- .../if-label-generic-iterable-12610/output.js | 3 +- .../label-object-with-comment-4995/output.js | 6 +- .../fixtures/regression/scope-9696/output.js | 1 - .../test/fixtures/spec/identifier/output.js | 3 +- .../test/fixtures/spec/ignore-cases/output.js | 4 +- .../test/fixtures/spec/let/output.js | 3 +- .../fixtures/spec/member-expression/output.js | 3 +- .../test/fixtures/spec/multiple/output.js | 7 +- .../spec/nested-label-for-of/output.js | 7 +- .../test/fixtures/spec/var/output.js | 3 +- .../function-name/assignment/output.js | 1 - .../function-name/class-method/output.js | 1 - .../function-name/collisions/output.js | 1 - .../export-default-arrow-renaming-2/output.js | 2 - .../export-default-arrow-renaming-3/output.js | 2 - .../output.js | 2 - .../output.js | 2 - .../output.js | 2 - .../export-default-arrow-renaming/output.js | 2 - .../fixtures/function-name/export/output.mjs | 6 +- .../function-assignment/output.js | 8 - .../function-collision/output.js | 3 - .../fixtures/function-name/global/output.js | 2 - .../function-name/method-definition/output.js | 1 - .../function-name/modules-2/output.js | 5 - .../function-name/modules-3/output.js | 6 - .../function-name/modules-4/output.mjs | 1 - .../fixtures/function-name/modules/output.js | 3 - .../fixtures/function-name/object/output.js | 2 - .../function-name/own-bindings/output.js | 2 - .../function-name/self-reference/output.js | 1 - .../shorthand-property/output.js | 1 - .../output.js | 3 - .../with-arrow-functions-transform/output.js | 2 - .../fixtures/jscript/simple-class/output.js | 1 - .../var-named-function-expression/output.js | 3 - .../fixtures/amd/export-default-10/output.js | 2 - .../fixtures/amd/export-default-5/output.js | 1 - .../fixtures/amd/export-default-6/output.js | 2 - .../fixtures/amd/export-default-7/output.js | 1 - .../fixtures/amd/export-default-8/output.js | 2 - .../fixtures/amd/exports-variable/output.js | 7 +- .../amd/hoist-function-exports/output.js | 3 - .../test/fixtures/amd/remap/output.js | 4 - .../loose/export-default-10/output.js | 2 - .../fixtures/loose/export-default-5/output.js | 1 - .../fixtures/loose/export-default-6/output.js | 2 - .../fixtures/loose/export-default-7/output.js | 1 - .../fixtures/loose/export-default-8/output.js | 2 - .../fixtures/loose/exports-variable/output.js | 7 +- .../loose/hoist-function-exports/output.js | 3 - .../test/fixtures/loose/remap/output.js | 4 - .../test/fixtures/regression/4192/output.js | 1 - .../test/fixtures/regression/9346/output.js | 2 - .../test/importInterop-function.js | 2 - .../export-from-2/output.js | 2 - .../export-from-3/output.js | 2 - .../export-from-4/output.js | 2 - .../export-from-5/output.js | 2 - .../export-from-6/output.js | 2 - .../export-from/output.js | 2 - .../import-export/output.js | 2 - .../export-from/output.js | 2 - .../auxiliary-comment/overview/output.js | 18 +- .../class-properties/live-rewrite/output.js | 9 - .../class-properties/private-method/output.js | 1 - .../strictMode-false/output.js | 2 - .../export-default-from/output.js | 1 - .../export-named-and-default-from/output.js | 1 - .../export-named-from/output.js | 1 - .../import-default/output.js | 1 - .../import-named-and-default/output.js | 1 - .../importInterop-node/import-named/output.js | 1 - .../importInterop-none/export-from/output.js | 1 - .../import-default-only/output.js | 1 - .../import-wildcard/output.js | 1 - .../interop-loose/export-default-10/output.js | 2 - .../interop-loose/export-default-11/output.js | 3 - .../interop-loose/export-default-5/output.js | 1 - .../interop-loose/export-default-6/output.js | 2 - .../interop-loose/export-default-7/output.js | 1 - .../interop-loose/export-default-8/output.js | 2 - .../export-destructured/output.js | 4 - .../interop-loose/export-from-2/output.js | 2 - .../interop-loose/export-from-3/output.js | 2 - .../interop-loose/export-from-4/output.js | 2 - .../interop-loose/export-from-5/output.js | 2 - .../interop-loose/export-from-6/output.js | 2 - .../interop-loose/export-from-7/output.js | 2 - .../interop-loose/export-from-8/output.js | 2 - .../interop-loose/export-from/output.js | 2 - .../interop-loose/exports-variable/output.js | 7 +- .../hoist-function-exports/output.js | 4 - .../interop-loose/imports-default/output.js | 1 - .../interop-loose/imports-hoisting/output.js | 3 - .../interop-loose/imports-mixing/output.js | 1 - .../interop-loose/imports-named/output.js | 1 - .../interop-loose/imports-ordering/output.js | 3 - .../fixtures/interop-loose/imports/output.js | 2 - .../interop-loose/module-shadow/output.js | 1 - .../interop-loose/multi-load/output.js | 3 - .../fixtures/interop-loose/overview/output.js | 8 - .../fixtures/interop-loose/remap/output.js | 4 - .../export-from-string-as-string/output.js | 2 - .../export-from-string/output.js | 2 - .../export-from/output.js | 2 - .../output.js | 1 - .../import-named/output.js | 1 - .../export-from-string-as-string/output.js | 1 - .../export-from-string/output.js | 1 - .../export-from/output.js | 1 - .../output.js | 1 - .../import-named/output.js | 1 - .../fixtures/interop/export-all/output.js | 2 - .../interop/export-default-10/output.js | 2 - .../interop/export-default-11/output.js | 3 - .../interop/export-default-5/output.js | 1 - .../interop/export-default-6/output.js | 2 - .../interop/export-default-7/output.js | 1 - .../interop/export-default-8/output.js | 2 - .../interop/export-destructured/output.js | 4 - .../fixtures/interop/export-from-2/output.js | 1 - .../fixtures/interop/export-from-3/output.js | 1 - .../fixtures/interop/export-from-4/output.js | 1 - .../fixtures/interop/export-from-5/output.js | 1 - .../fixtures/interop/export-from-6/output.js | 1 - .../fixtures/interop/export-from-7/output.js | 1 - .../fixtures/interop/export-from-8/output.js | 1 - .../fixtures/interop/export-from/output.js | 2 - .../interop/exports-variable/output.js | 7 +- .../interop/hoist-function-exports/output.js | 4 - .../interop/imports-default/output.js | 1 - .../interop/imports-hoisting/output.js | 3 - .../fixtures/interop/imports-mixing/output.js | 1 - .../fixtures/interop/imports-named/output.js | 1 - .../interop/imports-ordering/output.js | 3 - .../test/fixtures/interop/imports/output.js | 2 - .../fixtures/interop/module-shadow/output.js | 1 - .../fixtures/interop/multi-load/output.js | 3 - .../test/fixtures/interop/overview/output.js | 8 - .../test/fixtures/interop/remap/output.js | 4 - .../lazy-dep/import-default/output.js | 3 - .../fixtures/lazy-dep/import-named/output.js | 3 - .../lazy-dep/import-namespace/output.js | 3 - .../fixtures/lazy-dep/reexport-all/output.js | 2 - .../lazy-dep/reexport-default/output.js | 3 - .../lazy-dep/reexport-named/output.js | 3 - .../lazy-dep/reexport-namespace/output.js | 4 - .../lazy-local/import-default/output.js | 1 - .../lazy-local/import-named/output.js | 1 - .../lazy-local/reexport-all/output.js | 2 - .../lazy-local/reexport-default/output.js | 1 - .../lazy-local/reexport-named/output.js | 1 - .../lazy-whitelist/import-default/output.js | 4 - .../lazy-whitelist/import-named/output.js | 4 - .../lazy-whitelist/import-namespace/output.js | 3 - .../lazy-whitelist/reexport-all/output.js | 4 - .../lazy-whitelist/reexport-default/output.js | 3 - .../lazy-whitelist/reexport-named/output.js | 4 - .../reexport-namespace/output.js | 4 - .../lazy-whitelist/sideeffect/output.js | 1 - .../misc/binding-for-new-vars/output.js | 10 +- .../misc/class-static-block/output.js | 1 - .../misc/copy-getters-setters-star/output.js | 4 - .../misc/copy-getters-setters/output.js | 3 - .../fixtures/misc/for-of-in-export/output.js | 14 - .../misc/import-const-throw/output.js | 20 - .../misc/import-shadowed-assign/output.js | 2 - .../local-exports-decl-top-level/output.js | 1 - .../output.js | 1 - .../fixtures/misc/module-exports/output.js | 1 - .../misc/reference-source-map/options.json | 3 +- .../misc/reference-source-map/output.js | 3 - .../reference-source-map/source-mappings.json | 162 -------- .../output.js | 3 - .../output.js | 1 - .../output.js | 1 - .../output.js | 2 - .../fixtures/noInterop/export-from/output.js | 1 - .../noInterop/import-default-only/output.js | 1 - .../noInterop/import-wildcard/output.js | 1 - .../fixtures/regression/4462-T7565/output.js | 2 - .../test/fixtures/regression/T7160/output.js | 4 - .../test/fixtures/regression/T7165/output.js | 5 - .../test/fixtures/regression/T7199/output.js | 12 +- .../test/fixtures/regression/T7272/output.js | 2 - .../es3-compatibility-class/output.js | 2 - .../es3-compatibility-function/output.js | 1 - .../es3-compatibility-named-class/output.js | 2 - .../output.js | 1 - .../regression/es3-compatibility/output.js | 3 - .../fixtures/regression/issue-9611/output.js | 3 - .../fixtures/regression/lazy-7176/output.js | 3 - .../test/fixtures/strict/export-all/output.js | 9 +- .../test/fixtures/strict/export/output.js | 1 - .../test/fixtures/strict/import/options.json | 1 + .../strict/import/source-mappings.json | 62 --- .../update-expression/bigint/output.js | 2 - .../negative-suffix/output.js | 1 - .../positive-suffix/output.js | 1 - .../test/importInterop-function.js | 5 - .../output.mjs | 2 - .../export-named/output.mjs | 2 - .../regression/issue-12329/output.mjs | 3 - .../systemjs/export-default-5/output.mjs | 1 - .../systemjs/export-default-6/output.mjs | 1 - .../systemjs/export-default-7/output.mjs | 2 - .../systemjs/export-default-8/output.mjs | 2 - .../systemjs/export-fn-decl/output.mjs | 3 - .../fixtures/systemjs/export-from/output.mjs | 2 - .../systemjs/export-let-const/output.mjs | 4 - .../systemjs/export-named-2/output.mjs | 2 - .../systemjs/export-named-3/output.mjs | 2 - .../systemjs/export-named-4/output.mjs | 2 - .../systemjs/export-named-5/output.mjs | 2 - .../systemjs/export-named-6/output.mjs | 2 - .../systemjs/export-named-7/output.mjs | 2 - .../output.mjs | 6 - .../fixtures/systemjs/export-named/output.mjs | 2 - .../systemjs/export-uninitialized/output.mjs | 2 - .../systemjs/exports-variable/output.mjs | 8 - .../systemjs/hoist-function-class/output.mjs | 5 - .../hoist-function-exports/output.mjs | 6 - .../systemjs/hoisting-bindings/output.mjs | 5 - .../output.mjs | 1 - .../systemjs/module-level-variable/output.mjs | 1 - .../fixtures/systemjs/overview/output.mjs | 2 - .../test/fixtures/systemjs/remap/output.mjs | 9 - .../loose/export-default-10/output.js | 2 - .../loose/export-default-11/output.js | 3 - .../fixtures/loose/export-default-5/output.js | 1 - .../fixtures/loose/export-default-6/output.js | 2 - .../fixtures/loose/export-default-7/output.js | 1 - .../fixtures/loose/export-default-8/output.js | 2 - .../fixtures/loose/exports-variable/output.js | 7 +- .../loose/hoist-function-exports/output.js | 3 - .../test/fixtures/loose/remap/output.js | 4 - .../test/fixtures/regression/4192/output.js | 1 - .../fixtures/umd/export-default-10/output.js | 2 - .../fixtures/umd/export-default-11/output.js | 3 - .../fixtures/umd/export-default-5/output.js | 1 - .../fixtures/umd/export-default-6/output.js | 2 - .../fixtures/umd/export-default-7/output.js | 1 - .../fixtures/umd/export-default-8/output.js | 2 - .../fixtures/umd/exports-variable/output.js | 7 +- .../umd/hoist-function-exports/output.js | 3 - .../test/fixtures/umd/remap/output.js | 4 - .../test/importInterop-function.js | 2 - .../test/fixtures/general/arrow/output.js | 4 - .../general/class-properties-loose/output.js | 9 +- .../general/class-properties/output.js | 7 +- .../test/fixtures/general/class/output.js | 2 - .../fixtures/general/extended-class/output.js | 5 - .../general/function-duplicate-name/output.js | 2 - .../test/fixtures/general/function/output.js | 2 - .../test/fixtures/general/object/output.js | 1 - .../output.js | 3 - .../output.js | 4 - .../output.js | 3 - .../output.js | 4 - .../output.js | 3 - .../output.js | 4 - .../output.js | 2 - .../output.js | 2 - .../output.js | 2 - .../output.js | 3 - .../output.js | 3 - .../output.js | 2 - .../output.js | 3 - .../output.js | 4 - .../output.js | 3 - .../output.js | 1 - .../object-super/statically-bound/output.js | 1 - .../super-exponentiation/output.js | 1 - .../super-increment-postfix/output.js | 2 - .../super-increment-prefix/output.js | 2 - .../complex-assignment/output.js | 2 +- .../default-array-destructuring/output.js | 5 +- .../default-multiple/output.js | 4 - .../default-rest-mix/output.js | 8 +- .../default-single/output.js | 1 - .../destructuring-rest/output.js | 5 +- .../default/output.js | 1 - .../loose/ignoreFunctionLength/output.js | 1 - .../parameters/default-arguments/output.js | 1 - .../parameters/default-eval/output.js | 2 - .../parameters/default-iife-4253/output.js | 2 - .../parameters/default-iife-9947/output.js | 2 - .../parameters/default-iife-self/output.js | 3 - .../parameters/default-multiple/output.js | 1 - .../parameters/default-rest-mix/output.js | 11 +- .../parameters/default-rest/output.js | 8 - .../parameters/default-setter/output.js | 2 - .../parameters/destructuring-rest/output.js | 7 +- .../parameters/iife-this-9385/output.js | 3 - .../fixtures/parameters/iife-this/output.js | 3 - .../parameters/preserve-types/output.js | 9 +- .../parameters/regression-4333/output.js | 2 - .../parameters/regression-4348/output.js | 1 - .../parameters/regression-4634/output.js | 2 - .../parameters/regression-5787/output.js | 2 - .../output.js | 2 - .../rest-arguments-deoptimisation/output.js | 1 - .../parameters/rest-arrow-functions/output.js | 13 - .../rest-async-arrow-functions/output.js | 5 - .../rest-binding-deoptimisation/output.js | 1 - .../output.js | 46 +-- .../fixtures/parameters/rest-length/output.js | 3 - .../output.js | 49 +-- .../output.js | 8 +- .../parameters/rest-multiple/output.js | 2 - .../parameters/rest-nested-5656/output.js | 7 - .../parameters/rest-nested-iife/output.js | 5 - .../parameters/rest-patterns/output.js | 1 - .../rest-spread-optimisation/output.js | 9 +- .../rest-ts-this-parameter/output.js | 2 - .../output.js | 6 +- .../var-same-as-array-pattern-param/output.js | 2 +- .../output.js | 5 +- .../output.js | 15 +- .../output.js | 11 +- .../var-same-name-as-rest-param/output.js | 3 - .../output.js | 6 +- .../test/fixtures/regression/11256/output.js | 1 - .../fixtures/regression/11344-flow/output.js | 1 - .../regression/11344-typescript/output.js | 1 - .../regression/13939-complex/output.js | 6 +- .../13939-private-complex/output.js | 6 +- .../test/fixtures/regression/4209/output.js | 2 - .../regression/6057-expanded/output.js | 9 - .../fixtures/regression/6057-simple/output.js | 2 - .../regression/scope-gen-async/output.js | 2 - .../assignment-expression/output.js | 1 - .../allowMutablePropsOnTags/basic/output.js | 1 - .../function-closure/output.js | 1 - .../function-impure-body/output.js | 1 - .../function-same-binding-name/output.js | 1 - .../function/output.js | 1 - .../tag-member-expression/output.mjs | 1 - .../after-return-issue-6751/output.js | 4 - .../output.mjs | 3 - .../output.js | 4 - .../output.js | 4 - .../output.mjs | 3 - .../async-function/output.mjs | 5 +- .../constant-elements/children/output.js | 1 - .../output.mjs | 9 +- .../compound-assignment/output.mjs | 4 +- .../constant-elements/constructor/output.js | 2 - .../deep-constant-violation/output.js | 3 - .../deopt-mutable-complex/output.mjs | 2 - .../constant-elements/destructure/output.js | 7 +- .../dont-hoist-before-class/output.mjs | 4 - .../dont-hoist-before-declaration/output.js | 11 +- .../output.js | 1 - .../output.js | 1 - .../dont-hoist-before-hoc/output.mjs | 6 - .../output.js | 1 - .../constant-elements/for-loop-2/output.js | 2 - .../constant-elements/for-loop-3/output.js | 2 - .../constant-elements/for-loop-4/output.js | 2 - .../constant-elements/for-loop-5/output.js | 2 - .../constant-elements/for-loop/output.js | 2 - .../function-parameter/output.js | 4 - .../constant-elements/html-element/output.js | 2 - .../output.mjs | 1 - .../inline-elements/output.js | 3 - .../inner-declaration/output.js | 1 - .../constant-elements/issue-11686/output.mjs | 3 - .../constant-elements/jsx-in-prop-2/output.js | 1 - .../constant-elements/jsx-in-prop/output.js | 1 - .../magical-bindings/output.js | 8 - .../member-expression-constant/output.js | 1 - .../member-expression-this/output.js | 5 - .../member-expression/output.js | 4 - .../constant-elements/namespace/output.js | 2 - .../constant-elements/param-and-var/output.js | 1 - .../parameter-destructure-multi/output.js | 5 +- .../parameter-destructure-rest/output.js | 8 +- .../output.js | 7 +- .../parameter-destructure/output.js | 1 - .../parameter-reference/output.js | 2 - .../pure-expression-2/output.js | 1 - .../pure-expression-3/output.js | 1 - .../pure-expression/output.js | 1 - .../constant-elements/reassignment/output.js | 1 - .../regression-14363-2/output.mjs | 6 +- .../output.mjs | 3 - .../regression-node-type-export/output.mjs | 3 - .../constant-elements/text-children/output.js | 1 - .../fixtures/constant-elements/var/output.js | 1 - .../integration/issue-10879-babel-7/output.js | 3 - .../integration/issue-10879/output.js | 4 - .../integration/issue-12303/output.mjs | 8 +- .../integration/issue-7610-babel-7/output.js | 5 - .../fixtures/integration/issue-7610/output.js | 6 - .../inline-elements/children-exists/output.js | 3 +- .../component-with-props/output.js | 3 +- .../inline-elements/component/output.js | 3 +- .../inline-elements/fragment/output.js | 3 +- .../html-element-with-props/output.js | 3 +- .../inline-elements/html-element/output.js | 3 +- .../inline-elements/key-computed/output.js | 3 +- .../fixtures/inline-elements/key/output.js | 3 +- .../lowercase-member-expression/output.js | 2 +- .../member-expression/output.js | 3 - .../inline-elements/multiline/output.js | 3 +- .../nested-components/output.js | 3 +- .../nested-html-elements/output.js | 3 +- .../fixtures/inline-elements/nested/output.js | 3 +- .../inline-elements/ref-deopt/output.js | 3 +- .../output.js | 3 +- .../self-closing-component/output.js | 3 +- .../output.js | 3 +- .../self-closing-html-element/output.js | 3 +- .../shorthand-attributes/output.js | 3 +- .../inline-elements/spread-deopt/output.js | 3 +- .../cross-platform/generated-jsx/output.js | 5 +- .../fixtures/linux/auto-import-dev/output.mjs | 4 +- .../fixtures/linux/classic-runtime/output.js | 3 +- .../test/fixtures/linux/fragments/output.js | 2 - .../linux/handle-fragments-with-key/output.js | 2 - .../linux/handle-nonstatic-children/output.js | 2 - .../linux/handle-static-children/output.js | 2 - .../linux/self-inside-arrow/output.mjs | 14 +- .../output.js | 36 +- .../auto-import-dev-windows/output.mjs | 4 +- .../windows/classic-runtime-windows/output.js | 3 +- .../windows/fragments-windows/output.js | 2 - .../output.js | 2 - .../output.js | 2 - .../handle-static-children-windows/output.js | 2 - .../self-inside-arrow-windows/output.mjs | 14 +- .../output.js | 36 +- .../react-source/arrow-function/output.js | 5 - .../react-source/disable-with-super/output.js | 17 - .../autoImport/after-polyfills-2/output.mjs | 4 +- .../after-polyfills-compiled-to-cjs/output.js | 5 +- .../output.js | 5 +- .../autoImport/after-polyfills/output.mjs | 1 + .../output.mjs | 4 +- .../output.js | 5 +- .../complicated-scope-module/output.mjs | 5 - .../complicated-scope-script/output.js | 5 - .../import-source-pragma/output.mjs | 1 - .../autoImport/import-source/output.mjs | 1 - .../autoImport/react-defined/output.mjs | 4 +- .../output.js | 1 - .../output.js | 1 + .../output.js | 4 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 4 +- .../output.js | 3 +- .../output.js | 1 + .../output.mjs | 5 +- .../arrow-functions/output.mjs | 4 - .../react-automatic/assignment/output.mjs | 4 +- .../output.mjs | 1 - .../output.mjs | 4 +- .../output.mjs | 4 +- .../duplicate-props/output.mjs | 16 +- .../flattens-spread/output.mjs | 26 +- .../handle-fragments-with-key/output.mjs | 1 - .../output.mjs | 1 - .../handle-fragments/output.mjs | 1 - .../handle-nonstatic-children/output.mjs | 1 - .../handle-spread-with-proto/output.mjs | 10 +- .../handle-static-children/output.mjs | 1 - .../jsx-without-retainlines-option/output.mjs | 1 - .../key-undefined-works/output.mjs | 4 +- .../output.mjs | 4 - .../output.mjs | 1 - .../should-add-quotes-es3/output.mjs | 1 - .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 4 +- .../should-allow-js-namespacing/output.mjs | 4 +- .../should-allow-nested-fragments/output.mjs | 4 +- .../output.mjs | 4 - .../should-convert-simple-tags/output.mjs | 1 - .../should-convert-simple-text/output.mjs | 1 - .../output.mjs | 12 +- .../output.mjs | 12 +- .../output.mjs | 36 +- .../should-escape-xhtml-jsxtext/output.mjs | 36 +- .../output.mjs | 4 +- .../output.mjs | 1 - .../output.mjs | 1 - .../output.mjs | 1 - .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 1 - .../should-properly-handle-keys/output.mjs | 1 - .../output.mjs | 4 +- .../should-quote-jsx-attributes/output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.mjs | 4 +- .../react-automatic/this-tag-name/output.mjs | 1 - .../react-automatic/weird-symbols/output.mjs | 2 - .../output.mjs | 4 +- .../output.mjs | 4 +- .../output.js | 3 +- .../output.js | 4 +- .../fixtures/react/arrow-functions/output.js | 3 - .../test/fixtures/react/assignment/output.js | 3 +- .../react/avoids-spread-babel-7/output.js | 23 +- .../react/does-not-add-source-self/output.mjs | 3 +- .../output.js | 3 +- .../fixtures/react/duplicate-props/output.js | 15 +- .../fixtures/react/flattens-spread/output.js | 23 +- .../output.js | 7 +- .../react/handle-spread-with-proto/output.js | 9 +- .../output.js | 1 + .../react/honor-custom-jsx-comment/output.js | 1 + .../output.js | 4 - .../react/proto-in-jsx-attribute/output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../should-allow-js-namespacing/output.js | 3 +- .../output.js | 1 + .../should-allow-nested-fragments/output.js | 3 +- .../output.js | 1 + .../output.js | 2 +- .../output.js | 11 +- .../output.js | 11 +- .../output.js | 35 +- .../should-escape-xhtml-jsxtext/output.js | 35 +- .../output.js | 3 +- .../output.js | 4 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../should-quote-jsx-attributes/output.js | 3 +- .../output.js | 3 +- .../fixtures/react/weird-symbols/output.js | 2 +- .../output.js | 3 +- .../output.js | 4 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../issue-12478-automatic/output.js | 1 - .../output.js | 1 - .../runtime/defaults-to-automatic/output.js | 1 - .../runtime/pragma-runtime-classsic/output.js | 1 + .../runtime/runtime-automatic/output.js | 1 - .../transform-to-object-assign/output.js | 1 - .../fixtures/react/cloneElement/output.mjs | 4 +- .../fixtures/react/createElement/output.mjs | 4 +- .../test/fixtures/react/createRef/output.mjs | 4 +- .../misc/arrow-inside-generator/output.js | 2 - .../misc/class-inside-generator/output.js | 4 - .../misc/computed-properties/output.js | 2 - .../misc/no-external-helpers/output.js | 2 - .../test/fixtures/regression/4219/output.js | 1 - .../test/fixtures/regression/6733/output.js | 4 - .../test/fixtures/regression/T7041/output.js | 2 - .../test/fixtures/scope/10193/output.js | 3 - .../test/fixtures/scope/6923/output.js | 2 - .../test/fixtures/scope/8525/output.js | 5 +- .../complex-options-babel-7/output.js | 9 - .../absoluteRuntime/complex-options/output.js | 9 - .../absoluteRuntime/relative/output.js | 2 - .../true-corejs3-proposals/output.js | 9 +- .../true-corejs3-stable/output.js | 9 +- .../true-use-es-modules/output.js | 2 - .../fixtures/absoluteRuntime/true/output.js | 2 - .../import-compiled-modern-runtime/output.js | 3 - .../import-compiled-old-runtime/output.js | 3 - .../import-modern-runtime/output.mjs | 1 - .../import-old-runtime/output.mjs | 1 - .../require-modern-runtime/output.js | 2 - .../require-old-runtime/output.js | 2 - .../useESModules-modern-runtime/output.mjs | 1 - .../useESModules-old-runtime/output.mjs | 1 - .../test/fixtures/regression/12863/output.mjs | 11 - .../aliased-constructors/output.js | 6 - .../runtime-corejs2/catch-all/output.js | 1 - .../fixtures/runtime-corejs2/class/output.js | 2 - .../runtime-corejs2/es6-for-of/output.js | 4 +- .../evaluated-static-methods/output.js | 4 - .../fixtures/runtime-corejs2/full/output.mjs | 3 - .../fixtures/runtime-corejs2/math/output.js | 17 - .../runtime-corejs2/modules-helpers/output.js | 5 - .../runtime-corejs2/modules/output.js | 8 - .../runtime-corejs2/no-helpers/output.js | 4 - .../output.js | 1 - .../output.js | 1 - .../symbol-iterator-in/output.js | 1 - .../runtime-corejs2/symbol-iterator/output.js | 1 - .../aliased-constructors/output.js | 6 - .../built-in-globals-proposals/output.js | 20 - .../built-in-globals/output.js | 17 - .../output.js | 125 ------ .../built-in-instance-methods/output.js | 122 ------ .../output.js | 108 ------ .../built-in-static-methods/output.js | 82 ---- .../runtime-corejs3/catch-all/output.js | 1 - .../fixtures/runtime-corejs3/class/output.js | 2 - .../runtime-corejs3/es6-for-of/output.js | 4 +- .../evaluated-instance-methods/output.js | 11 - .../evaluated-static-methods/output.js | 4 - .../fixtures/runtime-corejs3/full/output.mjs | 3 - .../runtime-corejs3/instance-call/output.js | 5 - .../instance-computed/output.js | 1 - .../runtime-corejs3/instance-get/output.js | 4 - .../instance-inference-optimization/output.js | 4 - .../runtime-corejs3/modules-helpers/output.js | 5 - .../runtime-corejs3/modules-loose/output.js | 9 - .../runtime-corejs3/modules/output.js | 12 - .../runtime-corejs3/no-helpers/output.js | 4 - .../output.js | 1 - .../output.js | 1 - .../symbol-iterator-get-method/output.js | 1 - .../symbol-iterator-get/output.js | 1 - .../symbol-iterator-in/output.js | 1 - .../runtime-corejs3/symbol-iterator/output.js | 1 - .../test/fixtures/runtime/class/output.js | 2 - .../fixtures/runtime/es6-for-of/output.js | 4 +- .../test/fixtures/runtime/full/output.mjs | 3 - .../runtime/modules-helpers/output.js | 5 - .../test/fixtures/runtime/modules/output.js | 4 - .../fixtures/runtime/no-helpers/output.js | 3 - .../output.js | 1 - .../output.js | 1 - .../corejs-useES6Modules/output.mjs | 7 - .../fixtures/use-options/corejs/output.mjs | 7 - .../useESModules-cjs-auto/output.js | 8 - .../use-options/useESModules-cjs/output.js | 8 - .../useESModules-mjs-auto/output.mjs | 7 - .../use-options/useESModules-mjs/output.mjs | 7 - .../shorthand-comments/output.js | 1 - .../call-context/flow-type-cast/output.js | 1 - .../parenthesized-expressions/output.js | 1 - .../call-context/ts-type-cast/output.js | 1 - .../test/fixtures/regression/11400/output.js | 1 - .../test/fixtures/regression/6647/output.js | 1 - .../test/fixtures/regression/T6761/output.js | 4 - .../fixtures/regression/issue-8907/output.js | 2 - .../fixtures/spread/arguments-array/output.js | 2 - .../spread/arguments-concat/output.js | 2 - .../test/fixtures/spread/arguments/output.js | 2 - .../spread/array-symbol-unsupported/output.js | 6 +- .../output.js | 1 - .../output.js | 1 - .../output.js | 2 - .../output.js | 2 - .../output.js | 1 - .../output.js | 1 - .../test/fixtures/spread/known-rest/output.js | 1 - .../super-classes-plugin-after/output.js | 3 - .../super-classes-plugin-before/output.js | 3 - .../spread/type-reference-flow/output.js | 2 - .../spread/type-reference-ts/output.js | 2 - .../strict-mode/leading-comments/output.js | 1 + .../tag/output.js | 1 - .../tag/output.js | 1 - .../template-revision/output.js | 2 - .../fixtures/default/cache-revision/output.js | 4 - .../fixtures/default/simple-tag/output.js | 1 - .../output.js | 1 - .../tag-with-unicode-escapes/output.js | 1 - .../test/fixtures/default/tag/output.js | 1 - .../default/template-revision/output.js | 2 - .../loose/mutableTemplateObject/output.js | 1 - .../test/fixtures/symbols/shadow/output.js | 1 - .../output.mjs | 2 - .../output.mjs | 1 - .../class/abstract-class-decorated/output.mjs | 2 - .../decorated-declare-properties/output.js | 2 - .../test/fixtures/class/methods/output.js | 3 - .../test/fixtures/class/override/output.js | 1 - .../parameter-properties-late-super/output.js | 2 - .../output.js | 4 - .../output.mjs | 1 - .../parameter-properties-with-super/output.js | 1 - .../class/parameter-properties/output.js | 1 - .../output.js | 3 - .../class/private-method-override/output.js | 1 - .../fixtures/declarations/erased/output.mjs | 1 - .../declarations/nested-namespace/output.mjs | 1 - .../fixtures/enum/boolean-value/output.js | 1 - .../test/fixtures/enum/const/output.js | 1 - .../fixtures/enum/constant-folding/output.js | 1 - .../test/fixtures/enum/export/output.mjs | 2 - .../test/fixtures/enum/inferred/output.js | 1 - .../fixtures/enum/inner-references/output.js | 1 - .../fixtures/enum/mix-references/output.js | 7 - .../enum/non-foldable-constant/output.js | 1 - .../test/fixtures/enum/non-scoped/output.js | 2 - .../fixtures/enum/outer-references/output.js | 3 - .../test/fixtures/enum/scoped/output.js | 1 - .../enum/string-value-template/output.js | 1 - .../test/fixtures/enum/string-value/output.js | 1 - .../enum/string-values-computed/output.js | 1 - .../exports/declare-namespace/output.mjs | 1 - .../exports/declare-shadowed/output.mjs | 3 - .../exports/declared-types/output.mjs | 9 +- .../exports/export-const-enums/output.mjs | 2 - .../type-only-export-specifier-1/output.mjs | 1 - .../function/overloads-exports/output.mjs | 1 - .../fixtures/function/parameters/output.js | 1 - .../function/this-parameter/output.js | 9 +- .../imports/elision-locations/output.mjs | 2 - .../test/fixtures/imports/enum-id/output.mjs | 2 - .../fixtures/imports/enum-value/output.mjs | 2 - .../import-type-not-removed/output.mjs | 1 + .../imports/parameter-decorators/output.mjs | 2 - .../test/fixtures/namespace/alias/output.mjs | 2 +- .../fixtures/namespace/canonical/output.mjs | 11 - .../namespace/clobber-class/output.mjs | 1 - .../namespace/clobber-enum/output.mjs | 2 - .../namespace/clobber-export/output.mjs | 2 - .../namespace/clobber-import/output.mjs | 1 - .../namespace/contentious-names/output.mjs | 68 ---- .../output.mjs | 2 - .../fixtures/namespace/declare/output.mjs | 1 - .../test/fixtures/namespace/export/output.mjs | 1 - .../namespace/module-nested-export/output.mjs | 6 - .../namespace/module-nested/output.mjs | 6 - .../fixtures/namespace/multiple/output.mjs | 2 - .../namespace-nested-module/output.mjs | 4 - .../namespace/nested-destructuring/output.mjs | 26 +- .../namespace/nested-shorthand/output.mjs | 7 - .../test/fixtures/namespace/nested/output.mjs | 16 - .../fixtures/namespace/same-name/output.mjs | 10 - .../fixtures/namespace/undeclared/output.mjs | 1 - .../test/fixtures/regression/10338/output.js | 6 +- .../test/fixtures/regression/11061/output.js | 2 - .../non-null-in-optional-chain/output.js | 2 - .../escaped-class-accessor-key/output.js | 1 - .../escaped-class-method-key/output.js | 1 - .../escaped-object-accessor-key/output.js | 1 - .../escaped-object-method-key/output.js | 1 - .../raw-class-accessor-key/output.js | 1 - .../raw-class-method-key/output.js | 1 - .../raw-object-accessor-key/output.js | 1 - .../raw-object-method-key/output.js | 1 - .../tagged-template-transformed/output.js | 1 - .../bugfixes/_esmodules-no-bugfixes/output.js | 4 +- .../fixtures/bugfixes/_esmodules/output.js | 4 +- .../edge-default-params-edge-14/output.js | 2 +- .../output.js | 1 - .../edge-function-name-edge-14/output.js | 1 - .../edge-function-name-edge-15/output.js | 1 - .../output.js | 1 - .../safari-block-scoping-safari-10/output.js | 1 - .../safari-block-scoping-safari-11/output.js | 1 - .../safari-block-scoping-safari-9/output.js | 1 - .../output.js | 2 - .../output.js | 2 - .../output.js | 1 - .../output.js | 1 - .../entry-chrome-66/output.mjs | 4 +- .../entry-chrome-71/output.mjs | 4 +- .../corejs2-babel-7/entry-require/output.js | 17 - .../entry-shippedProposals/output.js | 170 +-------- .../exclude-include/output.mjs | 2 - .../corejs2-babel-7/usage-all/output.mjs | 11 +- .../usage-destructuring-catch/output.mjs | 1 - .../usage-destructuring-for-x/output.mjs | 1 - .../usage-destructuring-params/output.mjs | 1 - .../usage-evaluated-class-methods/output.mjs | 5 +- .../output.mjs | 4 +- .../usage-evaluated-not-confident/output.mjs | 2 - .../usage-for-of-destructure-with/output.mjs | 1 - .../corejs2-babel-7/usage-for-of/output.mjs | 1 - .../output.mjs | 10 +- .../usage-instance-methods/output.mjs | 19 +- .../usage-modules-transform/output.js | 2 - .../usage-native-support/output.mjs | 14 +- .../usage-regenerator-used-async/output.mjs | 6 - .../output.mjs | 4 - .../usage-shippedProposals/output.js | 53 +-- .../usage-source-type-script-query/output.js | 5 - .../usage-source-type-script/output.js | 5 - .../usage-yield-star/output.mjs | 1 - .../corejs2/entry-chrome-66/output.mjs | 4 +- .../corejs2/entry-chrome-71/output.mjs | 4 +- .../fixtures/corejs2/entry-require/output.js | 17 - .../corejs2/entry-shippedProposals/output.js | 170 +-------- .../corejs2/exclude-include/output.mjs | 2 - .../fixtures/corejs2/usage-all/output.mjs | 11 +- .../usage-destructuring-catch/output.mjs | 1 - .../usage-destructuring-for-x/output.mjs | 1 - .../usage-destructuring-params/output.mjs | 1 - .../usage-evaluated-class-methods/output.mjs | 5 +- .../output.mjs | 4 +- .../usage-evaluated-not-confident/output.mjs | 2 - .../usage-for-of-destructure-with/output.mjs | 1 - .../fixtures/corejs2/usage-for-of/output.mjs | 1 - .../output.mjs | 10 +- .../corejs2/usage-instance-methods/output.mjs | 19 +- .../corejs2/usage-native-support/output.mjs | 14 +- .../corejs2/usage-shippedProposals/output.js | 53 +-- .../usage-source-type-script-query/output.js | 5 - .../usage-source-type-script/output.js | 5 - .../corejs2/usage-yield-star/output.mjs | 1 - .../entry-chrome-66/output.mjs | 4 +- .../entry-chrome-71/output.mjs | 4 +- .../entry-require-all/output.js | 119 ------ .../entry-require-babel-polyfill/output.js | 1 - .../entry-require-es-chrome-71/output.js | 9 - .../entry-require-es-proposals/output.js | 115 ------ .../corejs3-babel-7/entry-require/output.js | 37 -- .../entry-specified-imports/output.mjs | 1 - .../exclude-include/output.mjs | 2 - .../corejs3-babel-7/exclude/output.mjs | 1 - .../usage-all-proposals-chrome-71/output.mjs | 12 +- .../usage-all-proposals/output.mjs | 12 +- .../corejs3-babel-7/usage-all/output.mjs | 12 +- .../usage-destructuring-catch/output.mjs | 1 - .../usage-destructuring-for-x/output.mjs | 1 - .../usage-destructuring-iife/output.mjs | 1 - .../usage-destructuring-params/output.mjs | 1 - .../output.mjs | 2 - .../usage-evaluated-class-methods/output.mjs | 5 +- .../output.mjs | 4 +- .../usage-for-of-destructure-with/output.mjs | 1 - .../corejs3-babel-7/usage-for-of/output.mjs | 1 - .../output.mjs | 10 +- .../usage-instance-methods/output.mjs | 19 +- .../usage-modules-transform/output.js | 2 - .../usage-native-support/output.mjs | 14 +- .../output.js | 3 +- .../output.mjs | 1 - .../usage-regenerator-used-async/output.mjs | 6 - .../output.mjs | 4 - .../usage-shippedProposals/output.js | 27 +- .../usage-source-type-script-query/output.js | 5 - .../usage-source-type-script/output.js | 5 - .../usage-yield-star/output.mjs | 1 - .../corejs3/entry-chrome-66/output.mjs | 4 +- .../corejs3/entry-chrome-71/output.mjs | 4 +- .../corejs3/entry-require-all/output.js | 119 ------ .../entry-require-babel-polyfill/output.js | 1 - .../entry-require-es-chrome-71/output.js | 9 - .../entry-require-es-proposals/output.js | 115 ------ .../fixtures/corejs3/entry-require/output.js | 37 -- .../entry-specified-imports/output.mjs | 1 - .../corejs3/exclude-include/output.mjs | 2 - .../usage-all-proposals-chrome-71/output.mjs | 12 +- .../corejs3/usage-all-proposals/output.mjs | 12 +- .../fixtures/corejs3/usage-all/output.mjs | 12 +- .../usage-destructuring-iife/output.mjs | 1 - .../output.mjs | 2 - .../usage-evaluated-class-methods/output.mjs | 5 +- .../output.mjs | 4 +- .../usage-for-of-destructure-with/output.mjs | 1 - .../output.mjs | 10 +- .../corejs3/usage-instance-methods/output.mjs | 19 +- .../corejs3/usage-native-support/output.mjs | 14 +- .../output.js | 3 +- .../output.mjs | 1 - .../corejs3/usage-shippedProposals/output.js | 12 +- .../usage-source-type-script-query/output.js | 5 - .../usage-source-type-script/output.js | 5 - .../corejs3/usage-yield-star/output.mjs | 1 - .../auto-esm-not-supported/output.js | 2 - .../methods-loose-preset-not-loose/output.js | 3 - .../preset-loose-no-plugins/output.js | 3 - .../preset-not-loose-no-plugins/output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../properties-loose-preset-loose/output.js | 3 - .../output.js | 3 - .../output.js | 3 - .../test/fixtures/modules/auto-cjs/output.js | 1 - .../fixtures/modules/auto-unknown/output.js | 1 - .../modules/modules-amd-loose/output.js | 1 - .../class-features-node-12-babel-7/output.js | 5 - .../class-features-node-12/output.js | 5 - .../plugins-integration/issue-11278/output.js | 3 +- .../plugins-integration/issue-7527/output.js | 4 - .../plugins-integration/issue-9935/output.js | 6 +- .../spread-super-firefox-40/output.js | 3 - .../esmodules-async-functions/output.mjs | 1 - .../safari-tagged-template-literals/output.js | 1 - .../safari-tp-browsers/output.js | 1 - .../shippedProposals/output.js | 20 +- .../preset-options-babel-7/spec/output.js | 2 - .../useBuiltIns-false/output.mjs | 18 +- .../safari-tagged-template-literals/output.js | 7 +- .../safari-tp-browsers/output.js | 1 - .../preset-options/shippedProposals/output.js | 1 - .../fixtures/preset-options/spec/output.js | 1 - .../useBuiltIns-false/output.mjs | 16 +- .../sanity/block-scoping-for-of/output.js | 8 +- .../new-class-features-chrome-90/output.js | 1 - .../new-class-features-firefox-70/output.js | 3 - packages/babel-preset-env/test/regressions.js | 1 - .../output.js | 5 +- .../development-runtime-automatic/output.js | 5 +- .../development-windows/output.js | 4 +- .../preset-options/development/output.js | 4 +- .../empty-options-babel-7/output.js | 3 +- .../preset-options/empty-options/output.js | 4 +- .../runtime-automatic/output.js | 4 +- .../runtime-classic-pragma-no-frag/output.js | 1 + .../preset-options/runtime-classic/output.js | 3 +- .../test/fixtures/regression/11294/output.mjs | 1 - .../output.mjs | 6 +- .../fixtures/flow-compat/ts-valid/output.js | 2 - .../fixtures/flow-compat/tsx-valid/output.js | 2 - .../fixtures/jsx-compat/js-valid/output.js | 3 +- .../fixtures/jsx-compat/tsx-valid/output.js | 3 +- .../helpers/esm/possibleConstructorReturn.js | 1 - .../helpers/iterableToArray.js | 4 - .../helpers/possibleConstructorReturn.js | 4 - .../helpers/temporalRef.js | 3 - .../babel-runtime-corejs2/helpers/toArray.js | 5 - .../babel-runtime-corejs2/helpers/typeof.js | 3 - .../helpers/esm/possibleConstructorReturn.js | 1 - .../helpers/possibleConstructorReturn.js | 4 - .../helpers/esm/possibleConstructorReturn.js | 1 - .../babel-runtime/helpers/iterableToArray.js | 1 - .../helpers/possibleConstructorReturn.js | 4 - packages/babel-runtime/helpers/temporalRef.js | 3 - packages/babel-runtime/helpers/toArray.js | 5 - packages/babel-runtime/helpers/typeof.js | 1 - .../fixtures/comments/attachment/output.js | 15 +- .../arguments-source-maps/options.json | 3 +- .../arguments-source-maps/output.js | 1 - .../source-mappings.json | 8 - .../conversion/this-source-maps/options.json | 3 +- .../conversion/this-source-maps/output.js | 1 - .../this-source-maps/source-mappings.json | 8 - .../output.js | 1 + .../output.mjs | 4 +- .../fixtures/rename/catch-clause/output.js | 1 - .../rename/decorator-expression/output.js | 3 - .../function-body-declaration/output.js | 5 +- .../rename/method-computed-key-1/output.js | 1 - .../rename/method-computed-key-2/output.js | 2 - .../rename/method-computed-key-3/output.js | 1 - .../rename/method-computed-key-4/output.js | 2 - .../rename/method-computed-key-5/output.js | 1 - .../rename/method-computed-key-6/output.js | 2 - .../rename/method-computed-key-7/output.js | 2 - .../rename/method-computed-key-8/output.js | 3 - .../rename/parameter-default-1/output.js | 1 - .../rename/parameter-default-10/output.js | 1 - .../rename/parameter-default-2/output.js | 1 - .../rename/parameter-default-3/output.js | 1 - .../rename/parameter-default-4/output.js | 1 - .../rename/parameter-default-5/output.js | 1 - .../rename/parameter-default-6/output.js | 1 - .../rename/parameter-default-7/output.js | 1 - .../rename/parameter-default-8/output.js | 1 - .../rename/parameter-default-9/output.js | 1 - .../rename/parameter-redeclaration/output.js | 2 - .../property-rename-with-export/output.mjs | 1 - .../test/fixtures/rename/re-export/output.mjs | 2 +- packages/babel-traverse/test/modification.js | 10 +- packages/babel-traverse/test/scope.js | 4 - yarn.lock | 1 - 2572 files changed, 2528 insertions(+), 13066 deletions(-) delete mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json delete mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json delete mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-mappings.json create mode 100644 packages/babel-generator/test/fixtures/comments/newlines/input.js create mode 100644 packages/babel-generator/test/fixtures/comments/newlines/output.js delete mode 100644 packages/babel-plugin-transform-destructuring/test/fixtures/sourcemap/declaration-loc/source-mappings.json delete mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/misc/reference-source-map/source-mappings.json create mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/options.json delete mode 100644 packages/babel-plugin-transform-modules-commonjs/test/fixtures/strict/import/source-mappings.json delete mode 100644 packages/babel-traverse/test/fixtures/conversion/arguments-source-maps/source-mappings.json delete mode 100644 packages/babel-traverse/test/fixtures/conversion/this-source-maps/source-mappings.json diff --git a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt index d75b52e29f44..0c43dda166bf 100644 --- a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt +++ b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt @@ -1,6 +1,5 @@ (function (global) { var babelHelpers = global.babelHelpers = {}; - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -10,7 +9,6 @@ Object.defineProperty(target, descriptor.key, descriptor); } } - function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); @@ -19,6 +17,5 @@ }); return Constructor; } - babelHelpers.createClass = _createClass; })(typeof global === "undefined" ? self : global); diff --git a/packages/babel-cli/test/fixtures/babel/filename default comments/out-files/script2.js b/packages/babel-cli/test/fixtures/babel/filename default comments/out-files/script2.js index 944f80d6dd46..a9835a969d04 100644 --- a/packages/babel-cli/test/fixtures/babel/filename default comments/out-files/script2.js +++ b/packages/babel-cli/test/fixtures/babel/filename default comments/out-files/script2.js @@ -3,6 +3,9 @@ /* Test comment */ + arr.map(function (x) { return x * MULTIPLIER; -}); // END OF FILE +}); + +// END OF FILE \ No newline at end of file diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js index baa5463236ad..b57b9e9ece3a 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js @@ -2,7 +2,9 @@ (function () { return 42; -}); // some comments +}); + +// some comments "use strict"; arr.map(function (x) { diff --git a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map index 92ee347fe7c0..7ecd5f9a573c 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map +++ b/packages/babel-cli/test/fixtures/babel/filenames --out-file --source-maps/out-files/script3.js.map @@ -1 +1 @@ -{"version":3,"file":"script3.js","names":["arr","map","x","MULTIPLIER"],"sources":["script.js","script2.js"],"sourcesContent":["(() => 42)\n\n// some comments","arr.map(x => x * MULTIPLIER);"],"mappings":";;AAAA,CAAC;EAAA,OAAM,EAAE;AAAA,GAAC,CAEV;;;ACFAA,GAAG,CAACC,GAAG,CAAC,UAAAC,CAAC;EAAA,OAAIA,CAAC,GAAGC,UAAU;AAAA,EAAC"} \ No newline at end of file +{"version":3,"file":"script3.js","names":["arr","map","x","MULTIPLIER"],"sources":["script.js","script2.js"],"sourcesContent":["(() => 42)\n\n// some comments","arr.map(x => x * MULTIPLIER);"],"mappings":";;AAAA,CAAC;EAAA,OAAM,EAAE;AAAA;;AAET;;;ACFAA,GAAG,CAACC,GAAG,CAAC,UAAAC,CAAC;EAAA,OAAIA,CAAC,GAAGC,UAAU;AAAA,EAAC"} \ No newline at end of file diff --git a/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js b/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js index d830585672ce..5cdb02af4d79 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js +++ b/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js @@ -2,8 +2,10 @@ (function () { return 42; -}); // some comments -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsic2NyaXB0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKSA9PiA0MilcblxuLy8gc29tZSBjb21tZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxDQUFDO0VBQUEsT0FBTSxFQUFFO0FBQUEsR0FBQyxDQUVWIn0= +}); + +// some comments +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsic2NyaXB0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKSA9PiA0MilcblxuLy8gc29tZSBjb21tZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxDQUFDO0VBQUEsT0FBTSxFQUFFO0FBQUE7O0FBRVQifQ== "use strict"; arr.map(function (x) { diff --git a/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js.map b/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js.map index 3a8f49a36f66..a6ece43c10ff 100644 --- a/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js.map +++ b/packages/babel-cli/test/fixtures/babel/filenames-sourcemap-config-both/out-files/script3.js.map @@ -1 +1 @@ -{"version":3,"file":"script3.js","names":["arr","map","x","MULTIPLIER"],"sources":["script.js","script2.js"],"sourcesContent":["(() => 42)\n\n// some comments","arr.map(x => x * MULTIPLIER);"],"mappings":";;AAAA,CAAC;EAAA,OAAM,EAAE;AAAA,GAAC,CAEV;;;;ACFAA,GAAG,CAACC,GAAG,CAAC,UAAAC,CAAC;EAAA,OAAIA,CAAC,GAAGC,UAAU;AAAA,EAAC"} \ No newline at end of file +{"version":3,"file":"script3.js","names":["arr","map","x","MULTIPLIER"],"sources":["script.js","script2.js"],"sourcesContent":["(() => 42)\n\n// some comments","arr.map(x => x * MULTIPLIER);"],"mappings":";;AAAA,CAAC;EAAA,OAAM,EAAE;AAAA;;AAET;;;;ACFAA,GAAG,CAACC,GAAG,CAAC,UAAAC,CAAC;EAAA,OAAIA,CAAC,GAAGC,UAAU;AAAA,EAAC"} \ No newline at end of file diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 8528e39a204c..dd974edeb5dd 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -625,7 +625,6 @@ describe("api", function () { ' throw new TypeError("Cannot call a class as a function");', " }", "}", - "", "let Foo = function Foo() {", " _classCallCheck(this, Foo);", "};", @@ -636,7 +635,7 @@ describe("api", function () { expect( originalPositionFor(consumer, { - line: 7, + line: 6, column: 4, }), ).toEqual({ @@ -710,7 +709,7 @@ describe("api", function () { ], }).then(function (result) { expect(result.code).toBe( - "/*before*/\nstart;\n\n/*after*/\nclass Foo {}\n\n/*before*/\nend;\n\n/*after*/", + "/*before*/\nstart;\n/*after*/\nclass Foo {}\n/*before*/\nend;\n/*after*/", ); }); }); diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1130/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/output.js index 415b39a812db..98980bfac743 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1130/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/output.js @@ -1,7 +1,6 @@ function A() { var a; } - function B() { var a; } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js index 44031949c78d..8e1c4b00564c 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js @@ -2,19 +2,14 @@ var Foo = /*#__PURE__*/function (_Bar) { "use strict"; babelHelpers.inherits(Foo, _Bar); - var _super = babelHelpers.createSuper(Foo); - function Foo(options) { babelHelpers.classCallCheck(this, Foo); var parentOptions = {}; - parentOptions.init = function () { this; }; - return _super.call(this, parentOptions); } - return babelHelpers.createClass(Foo); }(Bar); diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1169/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/output.js index 910053ac4d12..b17dd6848797 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1169/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/output.js @@ -1,12 +1,10 @@ function foo() { var input = ['a', 'b', 'c']; var output = {}; - for (var _i = 0, _input = input; _i < _input.length; _i++) { var c = _input[_i]; var name = c; output[name] = name; } - return output; } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1199/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/output.js index 7d278a3a8cbf..17e31293b44a 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1199/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/output.js @@ -1,7 +1,5 @@ const bug = 1; - function foo() {} - function bar() { var bug; bug = 2; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-2364/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-2364/output.js index c1079c01cbbf..ed21d7382e33 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-2364/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-2364/output.js @@ -1,7 +1,6 @@ function wrapper(fn) { return function () { var _arguments = arguments; - var _loop = function () { var val = fn(..._arguments); return { @@ -10,10 +9,8 @@ function wrapper(fn) { }) }; }; - while (someCondition) { var _ret = _loop(); - if (typeof _ret === "object") return _ret.v; } }; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-2765/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-2765/output.js index 8bcda9018e61..5b1e732e210e 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-2765/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-2765/output.js @@ -1,32 +1,26 @@ function f() { var _this = this; - let g = /*#__PURE__*/function () { var _ref = babelHelpers.asyncToGenerator(function* () { _this; }); - return function g() { return _ref.apply(this, arguments); }; }(); } - class Class { m() { var _this2 = this; - return babelHelpers.asyncToGenerator(function* () { var c = /*#__PURE__*/function () { var _ref2 = babelHelpers.asyncToGenerator(function* (b) { _this2; }); - return function c(_x) { return _ref2.apply(this, arguments); }; }(); })(); } - } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-2892/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-2892/output.js index fb14f76cc0c0..95cf1ea90be7 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-2892/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-2892/output.js @@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; - var Foo = /*#__PURE__*/function () { function Foo() { babelHelpers.classCallCheck(this, Foo); } - babelHelpers.createClass(Foo, [{ key: "bar", value: function () { @@ -20,7 +18,6 @@ var Foo = /*#__PURE__*/function () { switch (_context.prev = _context.next) { case 0: baz = 0; - case 1: case "end": return _context.stop(); @@ -28,27 +25,21 @@ var Foo = /*#__PURE__*/function () { } }, _callee); })); - function bar() { return _bar.apply(this, arguments); } - return bar; }() }]); return Foo; }(); - exports["default"] = Foo; - function foo() { return _foo.apply(this, arguments); } - function _foo() { _foo = babelHelpers.asyncToGenerator( /*#__PURE__*/babelHelpers.regeneratorRuntime().mark(function _callee3() { var bar, _bar2; - return babelHelpers.regeneratorRuntime().wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { @@ -61,7 +52,6 @@ function _foo() { switch (_context2.prev = _context2.next) { case 0: baz = {}; - case 1: case "end": return _context2.stop(); @@ -71,11 +61,9 @@ function _foo() { })); return _bar2.apply(this, arguments); }; - bar = function _bar3() { return _bar2.apply(this, arguments); }; - case 2: case "end": return _context3.stop(); diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json index d68815a31ec8..e385ec6bb8ed 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json @@ -1,3 +1,4 @@ { - "plugins": ["transform-arrow-functions", "transform-function-name"] + "plugins": ["transform-arrow-functions", "transform-function-name"], + "sourceMap": true } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json deleted file mode 100644 index a1d1d31e4a0c..000000000000 --- a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json +++ /dev/null @@ -1,10 +0,0 @@ -[{ - "original": { - "line": 1, - "column": 14 - }, - "generated": { - "line": 2, - "column": 10 - } -}] diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json index 5d03380e6f36..cdb1dea8e931 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json @@ -1,3 +1,4 @@ { - "plugins": ["transform-classes", "transform-block-scoping"] + "plugins": ["transform-classes", "transform-block-scoping"], + "sourceMap": true } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/output.js b/packages/babel-core/test/fixtures/transformation/source-maps/class/output.js index 8f75c22d4d81..f133bd6baa62 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/output.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/output.js @@ -4,7 +4,6 @@ var Test = /*#__PURE__*/function () { function Test() { babelHelpers.classCallCheck(this, Test); } - babelHelpers.createClass(Test, [{ key: "bar", get: function () { @@ -13,6 +12,5 @@ var Test = /*#__PURE__*/function () { }]); return Test; }(); - var test = new Test(); test.bar; diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json deleted file mode 100644 index c00fd6e9bcf5..000000000000 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json +++ /dev/null @@ -1,10 +0,0 @@ -[{ - "original": { - "line": 3, - "column": 10 - }, - "generated": { - "line": 11, - "column": 15 - } -}] \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/comment-inside-string/output.js b/packages/babel-core/test/fixtures/transformation/source-maps/comment-inside-string/output.js index 9188ec5abc3b..375e735ff2db 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/comment-inside-string/output.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/comment-inside-string/output.js @@ -1,5 +1,6 @@ // https://github.com/babel/babel/issues/9790 -const comment = `//# sourceMappingURL=${path.basename(sourceMapFilename)}`; // https://github.com/babel/babel/issues/9956 +const comment = `//# sourceMappingURL=${path.basename(sourceMapFilename)}`; +// https://github.com/babel/babel/issues/9956 this.shadowRoot.innerHTML = ``; diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json index 81e5ce12436d..0875db7e2b86 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/options.json @@ -1,3 +1,4 @@ { - "plugins": ["transform-modules-commonjs"] + "plugins": ["transform-modules-commonjs"], + "sourceMap": true } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/output.js b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/output.js index 5abbe8e6bc44..104079e3405f 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/output.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/output.js @@ -91,13 +91,11 @@ exports.default = void 0; // var _default = { name: 'HelloWorld', - data() { return { msg: 'Welcome to Your Vue.js App' }; } - }; // // // @@ -116,5 +114,4 @@ var _default = { // // // - exports.default = _default; diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-mappings.json deleted file mode 100644 index f41b80a82318..000000000000 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-complex/source-mappings.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "generated": { - "line": 92, - "column": 15 - }, - "original": { - "line": 87, - "column": 0 - } - }, - { - "generated": { - "line": 93, - "column": 2 - }, - "original": { - "line": 88, - "column": 0 - } - }, - { - "generated": { - "line": 95, - "column": 9 - }, - "original": { - "line": 89, - "column": 0 - } - }, - { - "generated": { - "line": 96, - "column": 4 - }, - "original": { - "line": 90, - "column": 0 - } - }, - { - "generated": { - "line": 97, - "column": 6 - }, - "original": { - "line": 91, - "column": 0 - } - }, - { - "generated": { - "line": 98, - "column": 4 - }, - "original": { - "line": 92, - "column": 0 - } - }, - { - "generated": { - "line": 99, - "column": 2 - }, - "original": { - "line": 93, - "column": 0 - } - } -] diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-multiple-output-sources/output.js b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-multiple-output-sources/output.js index 4d0b018046c9..8c62e1f98b61 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-multiple-output-sources/output.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/input-source-map-multiple-output-sources/output.js @@ -1,5 +1,4 @@ "bar"; - function foo(bar) { throw new Error('Intentional.'); } diff --git a/packages/babel-generator/src/buffer.ts b/packages/babel-generator/src/buffer.ts index 219a814092c4..9e5acb44821c 100644 --- a/packages/babel-generator/src/buffer.ts +++ b/packages/babel-generator/src/buffer.ts @@ -303,6 +303,25 @@ export default class Buffer { return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last; } + /** + * This will only detect at most 1 newline after a call to `flush()`, + * but this has not been found so far, and an accurate count can be achieved if needed later. + */ + getNewlineCount(): number { + const queueCursor = this._queueCursor; + let count = 0; + if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0; + for (let i = queueCursor - 1; i >= 0; i--) { + if (this._queue[i].char !== charcodes.lineFeed) { + break; + } + count++; + } + return count === queueCursor && this._last === charcodes.lineFeed + ? count + 1 + : count; + } + /** * check if current _last + queue ends with newline, return the character before newline * @@ -419,15 +438,16 @@ export default class Buffer { getCurrentColumn(): number { const queue = this._queue; + const queueCursor = this._queueCursor; let lastIndex = -1; let len = 0; - for (let i = 0; i < this._queueCursor; i++) { + for (let i = 0; i < queueCursor; i++) { const item = queue[i]; if (item.char === charcodes.lineFeed) { - lastIndex = i; - len += item.repeat; + lastIndex = len; } + len += item.repeat; } return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex; diff --git a/packages/babel-generator/src/generators/base.ts b/packages/babel-generator/src/generators/base.ts index 7bf482ca908a..951d23584341 100644 --- a/packages/babel-generator/src/generators/base.ts +++ b/packages/babel-generator/src/generators/base.ts @@ -1,6 +1,5 @@ import type Printer from "../printer"; import type * as t from "@babel/types"; -import * as charCodes from "charcodes"; export function File(this: Printer, node: t.File) { if (node.program) { @@ -15,8 +14,16 @@ export function File(this: Printer, node: t.File) { export function Program(this: Printer, node: t.Program) { this.printInnerComments(node, false); - this.printSequence(node.directives, node); - if (node.directives && node.directives.length) this.newline(); + const directivesLen = node.directives?.length; + if (directivesLen) { + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + trailingCommentsLineOffset: newline, + }); + if (!node.directives[directivesLen - 1].trailingComments?.length) { + this.newline(newline); + } + } this.printSequence(node.body, node); } @@ -25,21 +32,22 @@ export function BlockStatement(this: Printer, node: t.BlockStatement) { this.token("{"); this.printInnerComments(node); - const hasDirectives = node.directives?.length; - - if (node.body.length || hasDirectives) { - this.newline(); - - this.printSequence(node.directives, node, { indent: true }); - if (hasDirectives) this.newline(); - - this.printSequence(node.body, node, { indent: true }); - this.removeTrailingNewline(); - - if (!this.endsWith(charCodes.lineFeed)) this.newline(); + const directivesLen = node.directives?.length; + if (directivesLen) { + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + indent: true, + trailingCommentsLineOffset: newline, + }); + if (!node.directives[directivesLen - 1].trailingComments?.length) { + this.newline(newline); + } } + this.printSequence(node.body, node, { indent: true }); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); } @@ -81,7 +89,8 @@ export function InterpreterDirective( this: Printer, node: t.InterpreterDirective, ) { - this.token(`#!${node.value}\n`, true); + this.token(`#!${node.value}`); + this.newline(1, true); } export function Placeholder(this: Printer, node: t.Placeholder) { diff --git a/packages/babel-generator/src/generators/flow.ts b/packages/babel-generator/src/generators/flow.ts index 7d037bbf321a..563d158d5327 100644 --- a/packages/babel-generator/src/generators/flow.ts +++ b/packages/babel-generator/src/generators/flow.ts @@ -596,6 +596,8 @@ export function ObjectTypeAnnotation( ]; if (props.length) { + this.newline(); + this.space(); this.printJoin(props, node, { diff --git a/packages/babel-generator/src/generators/statements.ts b/packages/babel-generator/src/generators/statements.ts index 64d9c777a316..da67affc209b 100644 --- a/packages/babel-generator/src/generators/statements.ts +++ b/packages/babel-generator/src/generators/statements.ts @@ -248,24 +248,6 @@ export function DebuggerStatement(this: Printer) { this.semicolon(); } -function variableDeclarationIndent(this: Printer) { - // "let " or "var " indentation. - this.token(","); - this.newline(); - if (this.endsWith(charCodes.lineFeed)) { - for (let i = 0; i < 4; i++) this.space(true); - } -} - -function constDeclarationIndent(this: Printer) { - // "const " indentation. - this.token(","); - this.newline(); - if (this.endsWith(charCodes.lineFeed)) { - for (let i = 0; i < 6; i++) this.space(true); - } -} - export function VariableDeclaration( this: Printer, node: t.VariableDeclaration, @@ -303,17 +285,15 @@ export function VariableDeclaration( // bar = "foo"; // - let separator; - if (hasInits) { - separator = - node.kind === "const" - ? constDeclarationIndent - : variableDeclarationIndent; - } - - // - - this.printList(node.declarations, node, { separator }); + this.printList(node.declarations, node, { + separator: hasInits + ? function (this: Printer) { + this.token(","); + this.newline(); + } + : undefined, + indent: node.declarations.length > 1 ? true : false, + }); if (isFor(parent)) { // don't give semicolons to these nodes since they'll be inserted in the parent generator diff --git a/packages/babel-generator/src/printer.ts b/packages/babel-generator/src/printer.ts index c7fff0844ce6..70cf22cf6721 100644 --- a/packages/babel-generator/src/printer.ts +++ b/packages/babel-generator/src/printer.ts @@ -17,7 +17,20 @@ const ZERO_DECIMAL_INTEGER = /\.0+$/; const NON_DECIMAL_LITERAL = /^0[box]/; const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/; -const { needsParens, needsWhitespaceAfter, needsWhitespaceBefore } = n; +const { needsParens } = n; + +const enum COMMENT_TYPE { + LEADING, + INNER, + TRAILING, +} + +const enum COMMENT_SKIP_NEWLINE { + DEFAULT, + SKIP_ALL, + SKIP_LEADING, + SKIP_TRAILING, +} export type Format = { shouldPrintComment: (comment: string) => boolean; @@ -49,11 +62,13 @@ export type Format = { interface AddNewlinesOptions { addNewlines(leading: boolean, node: t.Node): number; + nextNodeStartLine: number; } interface PrintSequenceOptions extends Partial { statement?: boolean; indent?: boolean; + trailingCommentsLineOffset?: number; } interface PrintListOptions { @@ -90,6 +105,7 @@ class Printer { _printedComments = new Set(); _endsWithInteger = false; _endsWithWord = false; + _lastCommentLine = 0; generate(ast: t.Node) { this.print(ast); @@ -239,31 +255,31 @@ class Printer { /** * Add a newline (or many newlines), maintaining formatting. + * This function checks the number of newlines in the queue and subtracts them. + * It currently has some limitations. + * @see {Buffer#getNewlineCount} */ + newline(i: number = 1, force?: boolean): void { + if (i <= 0) return; - newline(i: number = 1): void { - if (this.format.retainLines || this.format.compact) return; + if (!force) { + if (this.format.retainLines || this.format.compact) return; - if (this.format.concise) { - this.space(); - return; + if (this.format.concise) { + this.space(); + return; + } } - const charBeforeNewline = this.endsWithCharAndNewline(); - // never allow more than two lines - if (charBeforeNewline === charCodes.lineFeed) return; + if (i > 2) i = 2; // Max two lines - if ( - charBeforeNewline === charCodes.leftCurlyBrace || - charBeforeNewline === charCodes.colon - ) { - i--; - } - if (i <= 0) return; + i -= this._buf.getNewlineCount(); for (let j = 0; j < i; j++) { this._newline(); } + + return; } endsWith(char: number): boolean { @@ -372,6 +388,17 @@ class Printer { } } + _shouldIndent(firstChar: number) { + // we've got a newline before us so prepend on the indentation + if ( + this._indent && + firstChar !== charCodes.lineFeed && + this.endsWith(charCodes.lineFeed) + ) { + return true; + } + } + _maybeAddParenChar(char: number): void { // see startTerminatorless() instance method const parenPushNewlineState = this._parenPushNewlineState; @@ -539,7 +566,14 @@ class Printer { } } - print(node: t.Node | null, parent?: t.Node, noLineTerminator?: boolean) { + print( + node: t.Node | null, + parent?: t.Node, + noLineTerminator?: boolean, + // trailingCommentsLineOffset also used to check if called from printJoin + // it will be ignored if `noLineTerminator||this._noLineTerminator` + trailingCommentsLineOffset?: number, + ) { if (!node) return; const nodeType = node.type; @@ -577,7 +611,7 @@ class Printer { this._insideAux = node.loc == undefined; this._maybeAddAuxComment(this._insideAux && !oldInAux); - let shouldPrintParens: boolean; + let shouldPrintParens = false; if ( format.retainFunctionParens && nodeType === "FunctionExpression" && @@ -590,6 +624,8 @@ class Printer { } if (shouldPrintParens) this.token("("); + this._lastCommentLine = 0; + this._printLeadingComments(node); const loc = nodeType === "Program" || nodeType === "File" ? null : node.loc; @@ -601,7 +637,7 @@ class Printer { this._printTrailingComments(node); this._noLineTerminator = false; } else { - this._printTrailingComments(node); + this._printTrailingComments(node, trailingCommentsLineOffset); } if (shouldPrintParens) this.token(")"); @@ -624,10 +660,13 @@ class Printer { const comment = this.format.auxiliaryCommentBefore; if (comment) { - this._printComment({ - type: "CommentBlock", - value: comment, - }); + this._printComment( + { + type: "CommentBlock", + value: comment, + }, + COMMENT_SKIP_NEWLINE.DEFAULT, + ); } } @@ -637,10 +676,13 @@ class Printer { const comment = this.format.auxiliaryCommentAfter; if (comment) { - this._printComment({ - type: "CommentBlock", - value: comment, - }); + this._printComment( + { + type: "CommentBlock", + value: comment, + }, + COMMENT_SKIP_NEWLINE.DEFAULT, + ); } } @@ -676,26 +718,34 @@ class Printer { const newlineOpts: AddNewlinesOptions = { addNewlines: opts.addNewlines, + nextNodeStartLine: 0, }; + const separator = opts.separator ? opts.separator.bind(this) : null; + const len = nodes.length; for (let i = 0; i < len; i++) { const node = nodes[i]; if (!node) continue; - if (opts.statement) this._printNewline(true, node, parent, newlineOpts); + if (opts.statement) this._printNewline(i === 0, newlineOpts); - this.print(node, parent); + this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0); - if (opts.iterator) { - opts.iterator(node, i); - } + opts.iterator?.(node, i); - if (opts.separator && i < len - 1) { - opts.separator.call(this); - } + if (i < len - 1) separator?.(); + + if (opts.statement) { + if (i + 1 === len) { + this.newline(1); + } else { + const nextNode = nodes[i + 1]; + newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0; - if (opts.statement) this._printNewline(false, node, parent, newlineOpts); + this._printNewline(true, newlineOpts); + } + } } if (opts.indent) this.dedent(); @@ -718,22 +768,22 @@ class Printer { this.print(node, parent); } - _printTrailingComments(node: t.Node) { - this._printComments(this._getComments(false, node)); + _printTrailingComments(node: t.Node, lineOffset?: number) { + const comments = this._getComments(false, node); + if (!comments?.length) return; + this._printComments(COMMENT_TYPE.TRAILING, comments, node, lineOffset); } _printLeadingComments(node: t.Node) { - this._printComments( - this._getComments(true, node), - // Don't add leading/trailing new lines to #__PURE__ annotations - true, - ); + const comments = this._getComments(true, node); + if (!comments?.length) return; + this._printComments(COMMENT_TYPE.LEADING, comments, node); } printInnerComments(node: t.Node, indent = true) { if (!node.innerComments?.length) return; if (indent) this.indent(); - this._printComments(node.innerComments); + this._printComments(COMMENT_TYPE.INNER, node.innerComments, node); if (indent) this.dedent(); } @@ -754,12 +804,7 @@ class Printer { return this.printJoin(items, parent, opts); } - _printNewline( - leading: boolean, - node: t.Node, - parent: t.Node, - opts: AddNewlinesOptions, - ) { + _printNewline(newLine: boolean, opts: AddNewlinesOptions) { // Fast path since 'this.newline' does nothing when not tracking lines. if (this.format.retainLines || this.format.compact) return; @@ -770,17 +815,36 @@ class Printer { return; } - let lines = 0; + if (!newLine) { + return; + } + + const startLine = opts.nextNodeStartLine; + const lastCommentLine = this._lastCommentLine; + if (startLine > 0 && lastCommentLine > 0) { + const offset = startLine - lastCommentLine; + if (offset >= 0) { + this.newline(offset || 1); + return; + } + } + // don't add newlines at the beginning of the file if (this._buf.hasContent()) { - if (!leading) lines++; // always include at least a single line after - if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; + // Here is the logic of the original line wrapping according to the node layout, we are not using it now. + // We currently add at most one newline to each node in the list, ignoring `opts.addNewlines`. - const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter; - if (needs(node, parent)) lines++; - } + // let lines = 0; + // if (!leading) lines++; // always include at least a single line after + // if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; + + // const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter; + // if (needs(node, parent)) lines++; - this.newline(Math.min(2, lines)); + // this.newline(Math.min(2, lines)); + + this.newline(1); + } } _getComments(leading: boolean, node: t.Node) { @@ -791,7 +855,7 @@ class Printer { ); } - _printComment(comment: t.Comment, skipNewLines?: boolean) { + _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) { // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property, // where they can't manually mutate the AST node comment lists. if (comment.ignore) return; @@ -807,9 +871,17 @@ class Printer { // Add a newline before and after a block comment, unless explicitly // disallowed const printNewLines = - isBlockComment && !skipNewLines && !this._noLineTerminator; + isBlockComment && + skipNewLines !== COMMENT_SKIP_NEWLINE.SKIP_ALL && + !this._noLineTerminator; - if (printNewLines && this._buf.hasContent()) this.newline(1); + if ( + printNewLines && + this._buf.hasContent() && + skipNewLines !== COMMENT_SKIP_NEWLINE.SKIP_LEADING + ) { + this.newline(1); + } const lastCharCode = this.getLastChar(); if ( @@ -820,7 +892,6 @@ class Printer { } let val; - let maybeNewline = false; if (isBlockComment) { val = `/*${comment.value}*/`; if (this.format.indent.adjustMultilineComment) { @@ -830,17 +901,18 @@ class Printer { val = val.replace(newlineRegex, "\n"); } - const indentSize = Math.max( - this._getIndent(), - this.format.retainLines ? 0 : this._buf.getCurrentColumn(), - ); - val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); + let indentSize = this.format.retainLines + ? 0 + : this._buf.getCurrentColumn(); + + if (this._shouldIndent(charCodes.slash) || this.format.retainLines) { + indentSize += this._getIndent(); + } - maybeNewline = true; + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); } } else if (!this._noLineTerminator) { - val = `//${comment.value}\n`; - maybeNewline = true; + val = `//${comment.value}`; } else { val = `/*${comment.value}*/`; } @@ -849,30 +921,116 @@ class Printer { if (this.endsWith(charCodes.slash)) this._space(); this.source("start", comment.loc); - this._append(val, maybeNewline); + this._append(val, isBlockComment); - if (printNewLines) this.newline(1); + if (!isBlockComment && !this._noLineTerminator) { + this.newline(1, true); + } + + if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.SKIP_TRAILING) { + this.newline(1); + } } _printComments( - comments?: readonly t.Comment[], - inlinePureAnnotation?: boolean, + type: COMMENT_TYPE, + comments: readonly t.Comment[], + node: t.Node, + lineOffset: number = 0, ) { - if (!comments?.length) return; + { + const nodeLoc = node.loc; + const len = comments.length; + let hasLoc = !!nodeLoc; + const nodeStartLine = hasLoc ? nodeLoc.start.line : 0; + const nodeEndLine = hasLoc ? nodeLoc.end.line : 0; + let lastLine = 0; + let leadingCommentNewline = 0; + + for (let i = 0; i < len; i++) { + const comment = comments[i]; + + if (hasLoc && "loc" in comment && !this._printedComments.has(comment)) { + const commentStartLine = comment.loc.start.line; + const commentEndLine = comment.loc.end.line; + if (type === COMMENT_TYPE.LEADING) { + let offset = 0; + if (i === 0) { + // Because currently we cannot handle blank lines before leading comments, + // we always wrap before and after multi-line comments. + if ( + this._buf.hasContent() && + (comment.type === "CommentLine" || + commentStartLine != commentEndLine) + ) { + offset = leadingCommentNewline = 1; + } + } else { + offset = commentStartLine - lastLine; + } + lastLine = commentEndLine; + + this.newline(offset); + this._printComment(comment, COMMENT_SKIP_NEWLINE.SKIP_ALL); + + if (i + 1 === len) { + this.newline( + Math.max(nodeStartLine - lastLine, leadingCommentNewline), + ); + lastLine = nodeStartLine; + } + } else if (type === COMMENT_TYPE.INNER) { + const offset = + commentStartLine - (i === 0 ? nodeStartLine : lastLine); + lastLine = commentEndLine; + + this.newline(offset); + this._printComment(comment, COMMENT_SKIP_NEWLINE.SKIP_ALL); + + if (i + 1 === len) { + this.newline(Math.min(1, nodeEndLine - lastLine)); // TODO: Improve here when inner comments processing is stronger + lastLine = nodeEndLine; + } + } else { + const offset = + commentStartLine - + (i === 0 ? nodeEndLine - lineOffset : lastLine); + lastLine = commentEndLine; + + this.newline(offset); + this._printComment(comment, COMMENT_SKIP_NEWLINE.SKIP_ALL); + } + } else { + hasLoc = false; + + if (len === 1) { + this._printComment(comment, COMMENT_SKIP_NEWLINE.SKIP_ALL); + } else if ( + type === COMMENT_TYPE.INNER && + !(node.type === "ObjectExpression" && node.properties.length > 1) && + node.type !== "ClassBody" + ) { + // class X { + // /*:: a: number*/ + // /*:: b: ?string*/ + // } + + this._printComment( + comment, + i === 0 + ? COMMENT_SKIP_NEWLINE.SKIP_LEADING + : i === len - 1 + ? COMMENT_SKIP_NEWLINE.SKIP_TRAILING + : COMMENT_SKIP_NEWLINE.DEFAULT, + ); + } else { + this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT); + } + } + } - if ( - inlinePureAnnotation && - comments.length === 1 && - PURE_ANNOTATION_RE.test(comments[0].value) - ) { - this._printComment( - comments[0], - // Keep newlines if the comment marks a standalone call - this._buf.hasContent() && !this.endsWith(charCodes.lineFeed), - ); - } else { - for (const comment of comments) { - this._printComment(comment); + if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) { + this._lastCommentLine = lastLine; } } } diff --git a/packages/babel-generator/test/arrow-functions.js b/packages/babel-generator/test/arrow-functions.js index 42d17fdc0025..ec9cdc3c4b2b 100644 --- a/packages/babel-generator/test/arrow-functions.js +++ b/packages/babel-generator/test/arrow-functions.js @@ -28,23 +28,18 @@ describe("parameter parentheses", () => { const output = generate(ast, { auxiliaryCommentBefore: "BEFORE" }).code; expect(output).toMatchInlineSnapshot(` "() => {}; - ( /*BEFORE*/ a) => {}; - ( /*BEFORE*/ a, /*BEFORE*/ b) => {}; - async () => {}; - async ( /*BEFORE*/ a) => {}; - async ( /*BEFORE*/ a, @@ -58,23 +53,18 @@ describe("parameter parentheses", () => { const output = generate(ast, { auxiliaryCommentAfter: "AFTER" }).code; expect(output).toMatchInlineSnapshot(` "() => {}; - (a /*AFTER*/ ) => {}; - (a /*AFTER*/ , b /*AFTER*/ ) => {}; - async () => {}; - async (a /*AFTER*/ ) => {}; - async (a /*AFTER*/ , b @@ -88,15 +78,10 @@ describe("parameter parentheses", () => { const output = generate(ast).code; expect(output).toMatchInlineSnapshot(` "() => {}; - a => {}; - (a, b) => {}; - async () => {}; - async a => {}; - async (a, b) => {};" `); }); @@ -106,15 +91,10 @@ describe("parameter parentheses", () => { const output = generate(ast).code; expect(output).toMatchInlineSnapshot(` "() => {}; - a => {}; - (a, b) => {}; - async () => {}; - async a => {}; - async (a, b) => {};" `); }); diff --git a/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/output.js b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/output.js index b2a374caae06..ea37070d534c 100644 --- a/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/output.js +++ b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/output.js @@ -1,6 +1,5 @@ function foo() { bar(); - if (foo) { bar(); } diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/output.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/output.js index b2a374caae06..ea37070d534c 100644 --- a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/output.js +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/output.js @@ -1,6 +1,5 @@ function foo() { bar(); - if (foo) { bar(); } diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/output.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/output.js index b2a374caae06..ea37070d534c 100644 --- a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/output.js +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/output.js @@ -1,6 +1,5 @@ function foo() { bar(); - if (foo) { bar(); } diff --git a/packages/babel-generator/test/fixtures/auto-string/jsx/output.js b/packages/babel-generator/test/fixtures/auto-string/jsx/output.js index f29a06c003c6..d59d26919bad 100644 --- a/packages/babel-generator/test/fixtures/auto-string/jsx/output.js +++ b/packages/babel-generator/test/fixtures/auto-string/jsx/output.js @@ -5,5 +5,4 @@ React.createClass({ render() { return ; } - }); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/output.js b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/output.js index 29f1735b8a5d..6b25f89e2e53 100644 --- a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/output.js +++ b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/output.js @@ -2,5 +2,6 @@ function test() { /* * this is comment */ + var i = 20; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/async-arrow-single-param-with-comments/output.js b/packages/babel-generator/test/fixtures/comments/async-arrow-single-param-with-comments/output.js index e952f5d6f0ef..addc834ee0ed 100644 --- a/packages/babel-generator/test/fixtures/comments/async-arrow-single-param-with-comments/output.js +++ b/packages/babel-generator/test/fixtures/comments/async-arrow-single-param-with-comments/output.js @@ -1,13 +1,3 @@ -async ( -/** @type {any} */ -arg) => {}; - -async (arg -/* trailing */ -) => {}; - -async ( -/** @type {any} */ -arg -/* trailing */ -) => {}; \ No newline at end of file +async ( /** @type {any} */arg) => {}; +async (arg /* trailing */) => {}; +async ( /** @type {any} */arg /* trailing */) => {}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/comment-only-with-space/output.js b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/output.js index 355757ad180d..a012a70682d2 100644 --- a/packages/babel-generator/test/fixtures/comments/comment-only-with-space/output.js +++ b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/output.js @@ -1,3 +1,4 @@ + // from #23 /**/ diff --git a/packages/babel-generator/test/fixtures/comments/comment-only/output.js b/packages/babel-generator/test/fixtures/comments/comment-only/output.js index 355757ad180d..0560460f82ca 100644 --- a/packages/babel-generator/test/fixtures/comments/comment-only/output.js +++ b/packages/babel-generator/test/fixtures/comments/comment-only/output.js @@ -1,6 +1,4 @@ // from #23 - /**/ - /* */ \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/input.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/input.js index 0c0c0272a580..90f6d68a1ba4 100644 --- a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/input.js +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/input.js @@ -6,5 +6,8 @@ var test = { [/* * Inside bracket init */ - "b"]:"2" + "b"]:"2", + [/** + * Multi-line + */"c"]:"3", }, ok = 42; diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/output.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/output.js index 7d61aafdbc0e..ad40bba45ae9 100644 --- a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/output.js +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/output.js @@ -1,12 +1,17 @@ var test = { - /** - * Before bracket init - */ - ["a"]: "1", - [ - /* - * Inside bracket init - */ - "b"]: "2" -}, - ok = 42; \ No newline at end of file + /** + * Before bracket init + */ + ["a"]: "1", + [ + /* + * Inside bracket init + */ + "b"]: "2", + [ + /** + * Multi-line + */ + "c"]: "3" + }, + ok = 42; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments/output.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments/output.js index b0458bffb524..3eaa205ad6f0 100644 --- a/packages/babel-generator/test/fixtures/comments/computed-property-comments/output.js +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments/output.js @@ -11,12 +11,13 @@ var test = { ["c" /* * After bracket key - */ - ]: "3", + */]: "3", // Before bracket, line comment ["d"]: "4", - [// Inside bracket, line comment + [ + // Inside bracket, line comment "e"]: "5", - ["f" // After bracket, line comment + ["f" + // After bracket, line comment ]: "6" }; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js b/packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js index b78500e8017f..4788666f9a94 100644 --- a/packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js +++ b/packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js @@ -1,10 +1,9 @@ // One (1); -/* Two */ +/* Two */ (2); -( // Three -3); ( -/* Four */ -4); \ No newline at end of file +// Three +3); +( /* Four */4); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/output.js index 7498613eaa86..db20654d464b 100644 --- a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/output.js @@ -3,9 +3,7 @@ !{ get 42() {} // , - foo: 42 }; - (function () {} // ); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/if-block-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/output.js index 5b9355b6ed11..efe502601fea 100644 --- a/packages/babel-generator/test/fixtures/comments/if-block-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/output.js @@ -1,4 +1,5 @@ -if (cond) // Leading to if-block +if (cond) + // Leading to if-block { print("hello"); } // Trailing to if-block \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/output.js index 4982b7d9326c..fc298a57b3bb 100644 --- a/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/output.js @@ -1,2 +1,3 @@ -if (cond) // Leading to EmptyStatement +if (cond) + // Leading to EmptyStatement ; // Trailing to EmptyStatement \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/if-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/if-line-comment/output.js index 8bf9f319fb94..81f3c0a4183e 100644 --- a/packages/babel-generator/test/fixtures/comments/if-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/if-line-comment/output.js @@ -2,6 +2,6 @@ function test() { // Leading if statement if (cond) { print("hello"); - } // Trailing if-block statement - + } + // Trailing if-block statement } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/module-expression-inner-comment/output.js b/packages/babel-generator/test/fixtures/comments/module-expression-inner-comment/output.js index a232445de6be..2580ab90d79b 100644 --- a/packages/babel-generator/test/fixtures/comments/module-expression-inner-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/module-expression-inner-comment/output.js @@ -1,3 +1 @@ -module /* 1 */ { - /* 2 */ -}; \ No newline at end of file +module /* 1 */ {/* 2 */}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/newlines/input.js b/packages/babel-generator/test/fixtures/comments/newlines/input.js new file mode 100644 index 000000000000..f2d4cf0b94ea --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/newlines/input.js @@ -0,0 +1,99 @@ +a; + +// my comment +b; + +c; +// my comment + +d; + + +/** + * Hello + * @param {*} params + */ +function fn(params) { + +} + +/** + * Hello + * @param {*} params + */ + +function fn2(params) { + +} + +x; // my comment +x; + +x; // my comment + +x; + +x; /* */ +x; + +x; /* */ + +x; + +x; /* my comment1 */ +x; /* my comment2 */ + +x; // my comment3 +x; // my comment4 + +x; // my comment5 + +// my comment6 +// my comment7 + +/* my comment8 */ + +/* my comment9 */ + + +/** */ +var a=1; + +function name(params) { + //a + //b + + //c + + /** */ ///aaa + + /** */ /** */ +} + +function name2(params) { + /**123 */ +} + +function name3(params) { + "strict";/**123 *//**/a();b(); +} + +function name4(params) { + "strict"; + + /**123 */ + /**/ + a(); + b(); +} + +a();/** *//**/b();c(); +/** */a();b();c(); +class X { + /*:: a: number*/ + /*:: b: ?string*/ +} +label2: for (const a of [1, 2, 3]) { + break; /*Block comment written + in multiple lines */label2; +} diff --git a/packages/babel-generator/test/fixtures/comments/newlines/output.js b/packages/babel-generator/test/fixtures/comments/newlines/output.js new file mode 100644 index 000000000000..1f8f223b83bb --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/newlines/output.js @@ -0,0 +1,92 @@ +a; + +// my comment +b; +c; +// my comment + +d; + +/** + * Hello + * @param {*} params + */ +function fn(params) {} + +/** + * Hello + * @param {*} params + */ + +function fn2(params) {} +x; // my comment +x; +x; // my comment + +x; +x; /* */ +x; +x; /* */ + +x; +x; /* my comment1 */ +x; /* my comment2 */ + +x; // my comment3 +x; // my comment4 + +x; // my comment5 + +// my comment6 +// my comment7 + +/* my comment8 */ + +/* my comment9 */ + +/** */ +var a = 1; +function name(params) { + //a + //b + + //c + + /** */ ///aaa + + /** */ /** */ +} +function name2(params) { + /**123 */ +} +function name3(params) { + "strict"; + + /**123 */ /**/ + a(); + b(); +} +function name4(params) { + "strict"; + + /**123 */ + /**/ + a(); + b(); +} +a(); /** */ /**/ +b(); +c(); +/** */ +a(); +b(); +c(); +class X { + /*:: a: number*/ + /*:: b: ?string*/ +} +label2: for (const a of [1, 2, 3]) { + break; /*Block comment written + in multiple lines */ + label2; +} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/object_comments/output.js b/packages/babel-generator/test/fixtures/comments/object_comments/output.js index b87ebb82a99b..1a65285e33c1 100644 --- a/packages/babel-generator/test/fixtures/comments/object_comments/output.js +++ b/packages/babel-generator/test/fixtures/comments/object_comments/output.js @@ -3,7 +3,6 @@ var test = { * Test 2 */ a: "1", - /* * Test 1 */ diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/output.js index e7be0de1dca2..b21d7d5f5ebf 100644 --- a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/output.js @@ -19,7 +19,10 @@ // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -function test() {} // Copyright (C) 2012 Yusuke Suzuki + +function test() {} + +// Copyright (C) 2012 Yusuke Suzuki // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/output.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/output.js index eba73f985291..231e7a553e09 100644 --- a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/output.js @@ -21,7 +21,9 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + function test() {} + /* Copyright (C) 2012 Yusuke Suzuki diff --git a/packages/babel-generator/test/fixtures/comments/simple-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/simple-line-comment/output.js index f9c7d1a9d874..743b2814f4b8 100644 --- a/packages/babel-generator/test/fixtures/comments/simple-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/simple-line-comment/output.js @@ -1,2 +1,3 @@ // Leading -var i = 20; // Trailing \ No newline at end of file +var i = 20; +// Trailing \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/simple-multi-comment/output.js b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/output.js index 0c2c82751766..3fc380a40446 100644 --- a/packages/babel-generator/test/fixtures/comments/simple-multi-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/output.js @@ -8,6 +8,7 @@ function test() { * Leading comment 2 * */ + var i = 20; /* * Trailing comment diff --git a/packages/babel-generator/test/fixtures/comments/try-block-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/output.js index e5a5c95b720e..c9b0601fbe25 100644 --- a/packages/babel-generator/test/fixtures/comments/try-block-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/output.js @@ -1,9 +1,7 @@ try {} // finally {} - try {} catch (e) {} // finally {} - { try {} catch (e) {} // finally {} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/output.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/output.js index 3f7a0ccffa55..add1fe35497b 100644 --- a/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/output.js @@ -1,8 +1,9 @@ function test() { - var // Leading to VariableDeclarator - // Leading to VariableDeclarator - i = 20, - // Leading to VariableDeclarator - // Leading to VariableDeclarator - j = 20; + var + // Leading to VariableDeclarator + // Leading to VariableDeclarator + i = 20, + // Leading to VariableDeclarator + // Leading to VariableDeclarator + j = 20; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/output.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/output.js index 6fd160503b8a..9df5de692288 100644 --- a/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/output.js @@ -1,14 +1,13 @@ function test() { var - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - i = 20, - - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - j = 20; + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + i = 20, + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + j = 20; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/output.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/output.js index b4884e775742..9347d91a23d5 100644 --- a/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/output.js +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/output.js @@ -1,20 +1,19 @@ { - var t = 20; - /* - * This is trailing comment - */ + var t = 20; /* + * This is trailing comment + */ } + { - var tt = 20; - /* - * This is trailing comment - */ + var tt = 20; /* + * This is trailing comment + */ } + { { - var t = 20; - /* - * This is trailing comment - */ + var t = 20; /* + * This is trailing comment + */ } } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/decorators/accessor-with-retainlines/output.js b/packages/babel-generator/test/fixtures/decorators/accessor-with-retainlines/output.js index 95f37461cd8d..c97fe830da73 100644 --- a/packages/babel-generator/test/fixtures/decorators/accessor-with-retainlines/output.js +++ b/packages/babel-generator/test/fixtures/decorators/accessor-with-retainlines/output.js @@ -1,8 +1,6 @@ class C { @dec get a() {} - @dec set a(v) {} - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/decorators/async-method-with-retainlines/output.js b/packages/babel-generator/test/fixtures/decorators/async-method-with-retainlines/output.js index e6bc0b905ee6..7bed5cb999fd 100644 --- a/packages/babel-generator/test/fixtures/decorators/async-method-with-retainlines/output.js +++ b/packages/babel-generator/test/fixtures/decorators/async-method-with-retainlines/output.js @@ -1,8 +1,6 @@ class C { @dec async a() {} - @dec async *a(v) {} - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression-createParenthesizedExpression/output.js b/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression-createParenthesizedExpression/output.js index 05b8e9379125..52904724295a 100644 --- a/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression-createParenthesizedExpression/output.js +++ b/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression-createParenthesizedExpression/output.js @@ -1,6 +1,5 @@ class C extends class {} { #x; - constructor() { class ShouldPreserveParens { @(decs[0]) @@ -12,19 +11,16 @@ class C extends class {} { @(new DecFactory()) p; } - class ShouldNotAddParens { @decs @decs.one @decs.two() p; } - class ShouldAddParens { @((decs[three])()) p; } - class WillPreserveParens { @(decs) @(decs.one) @@ -32,5 +28,4 @@ class C extends class {} { p; } } - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression/output.js b/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression/output.js index 2c2780aee874..dc7cb80ec211 100644 --- a/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression/output.js +++ b/packages/babel-generator/test/fixtures/decorators/decorator-parenthesized-expression/output.js @@ -1,6 +1,5 @@ class C extends class {} { #x; - constructor() { class ShouldPreserveParens { @(decs[0]) @@ -12,19 +11,16 @@ class C extends class {} { @(new DecFactory()) p; } - class ShouldNotAddParens { @decs @decs.one @decs.two() p; } - class ShouldAddParens { @(decs[three]()) p; } - class ShouldRemoveParens { @decs @decs.one @@ -32,5 +28,4 @@ class C extends class {} { p; } } - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/async-generator/output.js b/packages/babel-generator/test/fixtures/edgecase/async-generator/output.js index f66336927cc1..79b8075b7210 100644 --- a/packages/babel-generator/test/fixtures/edgecase/async-generator/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/async-generator/output.js @@ -1,30 +1,18 @@ function a() {} - function* b() {} - async function c() {} - async function* d() {} - var e = function () {}; - var f = function* () {}; - var g = async function () {}; - var h = async function* () {}; - class A { a() {} - *b() {} - async c() {} - async *d() {} - - e = () => {}; // f = () =>* {}; - - g = async () => {}; // h = async () =>* {}; - + e = () => {}; + // f = () =>* {}; + g = async () => {}; + // h = async () =>* {}; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/for-async-of/output.js b/packages/babel-generator/test/fixtures/edgecase/for-async-of/output.js index 99c5ce9e1754..2aa0146d8caa 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-async-of/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-async-of/output.js @@ -1,9 +1,5 @@ for ((async) of []); - for ((async) of async) async; - for ((async) of []); - for (async.x of []); - for (async in []); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/for-await-async-of/output.js b/packages/babel-generator/test/fixtures/edgecase/for-await-async-of/output.js index 10a77c0134fb..a847a2361999 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-await-async-of/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-await-async-of/output.js @@ -1,11 +1,7 @@ async function f() { for await ((async) of []); - for await ((async) of async) async; - for await ((async) of []); - for await (async.x of []); - for await ((async) of []); } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/output.js b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/output.js index feda9f2353a7..d55e687667af 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/output.js @@ -5,13 +5,8 @@ //for (var i = 10 + (10 in []) in []); //for (var i = 10 + 10 in [] in []); for (var i = (1 in []);;); - for ((1 in []);;); - for (1 * (1 in []);;); - for (1 * (1 + 1 in []);;); - for (1 * (1 + 1 in []);;); - for (1 * (1 + (1 in []));;); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/for-loop-in/output.js b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/output.js index 47ac98285a55..87f44f9c1cbe 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-loop-in/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/output.js @@ -1,5 +1,4 @@ for ((a in b) ? a : b; i;); - for (function () { for (;;); } && (a in b);;); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/edgecase/let-identifier/output.js b/packages/babel-generator/test/fixtures/edgecase/let-identifier/output.js index 62d41eff3059..49bcd41ff24a 100644 --- a/packages/babel-generator/test/fixtures/edgecase/let-identifier/output.js +++ b/packages/babel-generator/test/fixtures/edgecase/let-identifier/output.js @@ -3,44 +3,29 @@ let; (let)[x]; (let)[x]; a[let[x]]; -/* ForStatement */ +/* ForStatement */ for (let;;); - for ((let)[x];;); - for ((let)[x];;); - for (a[let[x]];;); -/* ForInStatement */ - +/* ForInStatement */ for (let in {}); - for ((let)[x] in {}); - for ((let)[x] in {}); - for (a[let[x]] in {}); -/* ForOfStatement { await: false } */ - +/* ForOfStatement { await: false } */ for ((let) of []); - for ((let) of []); - for ((let)[x] of []); - for (a[let] of []); -/* ForOfStatement { await: true } */ - +/* ForOfStatement { await: true } */ async () => { for await ((let) of []); - for await ((let) of []); - for await ((let)[x] of []); - for await (a[let] of []); }; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/arrow-functions/output.js b/packages/babel-generator/test/fixtures/flow/arrow-functions/output.js index d132971e4bcf..8f32e99220cc 100644 --- a/packages/babel-generator/test/fixtures/flow/arrow-functions/output.js +++ b/packages/babel-generator/test/fixtures/flow/arrow-functions/output.js @@ -1,15 +1,8 @@ const bar1 = (x: number): string => {}; - const bar2 = (x?) => {}; - const bar3 = (x?: string) => {}; - const bar4 = x => {}; - const bar5 = (x): string => {}; - const bar6 = (x: number) => {}; - const bar7 = (x) => {}; - -const bar8 = (x: T): ((T) => T[]) => y => [x, y]; +const bar8 = (x: T): ((T) => T[]) => y => [x, y]; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js b/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js index 66dd195d22e1..fa2d8128b237 100644 --- a/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js +++ b/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js @@ -1,7 +1,5 @@ class C1<+T, -U> {} - function f<+T, -U>() {} - type T<+T, -U> = {}; type T2 = { +p: T @@ -39,11 +37,9 @@ declare class I { declare class I { -[k: K]: V } - class C2 { +p: T = e; } - class C3 { -p: T = e; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/implements/output.js b/packages/babel-generator/test/fixtures/flow/implements/output.js index b1bd305e650a..94881cde4c40 100644 --- a/packages/babel-generator/test/fixtures/flow/implements/output.js +++ b/packages/babel-generator/test/fixtures/flow/implements/output.js @@ -1,7 +1,5 @@ class A1 implements B {} - class A2 implements B, C {} - declare class A3 implements B {} declare class A4 mixins B implements C {} declare class A5 implements B, C {} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/output.js b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/output.js index ef7fce8a5087..12928227cae8 100644 --- a/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/output.js +++ b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/output.js @@ -8,11 +8,7 @@ interface Dictionary { length: number, [index: string]: string, } - class Foo1 implements Bar {} - class Foo2 extends Bar implements Bat, Man {} - class Foo3 extends class Bar implements Bat {} {} - class Foo4 extends class Bar implements Bat {} implements Man {} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/object-literal-types/output.js b/packages/babel-generator/test/fixtures/flow/object-literal-types/output.js index 2a3769b1abd5..1f14e27f3246 100644 --- a/packages/babel-generator/test/fixtures/flow/object-literal-types/output.js +++ b/packages/babel-generator/test/fixtures/flow/object-literal-types/output.js @@ -1,18 +1,22 @@ type U = {}; type V = {}; -type T1 = { ...U +type T1 = { + ...U }; -type T2 = { ...U, +type T2 = { + ...U, ...V, }; type T3 = { p: V, ...U, }; -type T4 = { ...U, +type T4 = { + ...U, p: V, }; -type T5 = { ...{} | { +type T5 = { + ...{} | { p: V } }; @@ -46,4 +50,4 @@ type T13 = { foo: number, bar: string, ... -}; +}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/predicates/output.js b/packages/babel-generator/test/fixtures/flow/predicates/output.js index f78e494bce29..f264f57a24c7 100644 --- a/packages/babel-generator/test/fixtures/flow/predicates/output.js +++ b/packages/babel-generator/test/fixtures/flow/predicates/output.js @@ -1,17 +1,12 @@ declare function foo(x: mixed): boolean %checks(x !== null); declare function my_filter>(v: Array, cb: P): Array<$Refine>; declare function f2(x: mixed): string %checks(Array.isArray(x)); - function foo(x: mixed): %checks { return typeof x === "string"; } - function is_string(x): boolean %checks { return typeof x === "string"; } - var f = (x: mixed): %checks => typeof x === "string"; - const foo2 = (x: mixed): boolean %checks => typeof x === "string"; - (x): %checks => x !== null; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/string-literal-types/output.js b/packages/babel-generator/test/fixtures/flow/string-literal-types/output.js index 523469a5c34f..4dcbc6108e8d 100644 --- a/packages/babel-generator/test/fixtures/flow/string-literal-types/output.js +++ b/packages/babel-generator/test/fixtures/flow/string-literal-types/output.js @@ -1,3 +1,2 @@ function createElement1(tagName: "div"): HTMLDivElement {} - function createElement2(tagName: 'div'): HTMLDivElement {} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/this-param/output.js b/packages/babel-generator/test/fixtures/flow/this-param/output.js index 6f10af88264b..52c782a7e189 100644 --- a/packages/babel-generator/test/fixtures/flow/this-param/output.js +++ b/packages/babel-generator/test/fixtures/flow/this-param/output.js @@ -1,13 +1,8 @@ function one(this: number) {} - function two(this: number, a) {} - function three(this: number, ...a) {} - function four(this: number, a, b, ...c) {} - function five(this: T) {} - type six = (this: number) => void; type seven = (this: number, a: number) => void; type eight = (this: number, ...a: any) => void; @@ -28,29 +23,17 @@ declare class Fifteen { m3(this: string, ...a: any): void, m4(this: T): void, } - class Sixteen { m1(this: number) {} - m2(this: number, a) {} - m3(this: number, ...a) {} - m4(this: number, a, b, ...c) {} - m5(this: T) {} - } - let seventeen = { m1(this: number) {}, - m2(this: number, a) {}, - m3(this: number, ...a) {}, - m4(this: number, a, b, ...c) {}, - m5(this: T) {} - }; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/this-types/output.js b/packages/babel-generator/test/fixtures/flow/this-types/output.js index e9f5c2c53988..ea79331c848f 100644 --- a/packages/babel-generator/test/fixtures/flow/this-types/output.js +++ b/packages/babel-generator/test/fixtures/flow/this-types/output.js @@ -2,5 +2,4 @@ class Foo { bar(): this { return this; } - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/output.js b/packages/babel-generator/test/fixtures/flow/type-annotations/output.js index 71548b99c5ab..a2fd9d08b5d9 100644 --- a/packages/babel-generator/test/fixtures/flow/type-annotations/output.js +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/output.js @@ -1,87 +1,53 @@ function foo1(numVal: any) {} - function foo2(numVal: number) {} - function foo3(numVal: number, strVal: string) {} - function foo4(numVal: number, untypedVal) {} - function foo5(untypedVal, numVal: number) {} - function foo6(nullableNum: ?number) {} - function foo7(callback: () => void) {} - function foo8(callback: () => number) {} - function foo9(callback: (_: boolean) => number) {} - function foo10(callback: (_1: boolean, _2: string) => number) {} - function foo11(callback: (_1: boolean, ...foo: Array) => number) {} - function foo12(): number {} - function foo13(): () => void {} - function foo14(): (_: boolean) => number {} - function foo15(): (_?: boolean) => number {} - function foo16(): {} {} - function foo17() {} - function foo18() {} - function foo19() {} - a1 = function () {}; - a2 = { set fooProp(value: number) {} - }; a3 = { set fooProp(value: number): void {} - }; a4 = { get fooProp(): number {} - }; a5 = { id(x: T): T {} - }; a6 = { *id(x: T): T {} - }; a7 = { async id(x: T): T {} - }; a8 = { 123(x: T): T {} - }; - class Foo1 { set fooProp(value: number) {} - } - class Foo2 { set fooProp(value: number): void {} - } - class Foo3 { get fooProp(): number {} - } - var numVal1: number; var numVal2: empty; var numVal3: mixed; @@ -137,49 +103,34 @@ var a13: { var a14: Array = [1, 2, 3]; a13 = class Foo {}; a14 = class Foo extends Bar {}; - class Foo4 {} - class Foo5 extends Bar {} - class Foo6 extends mixin(Bar) {} - class Foo7 { bar(): number { return 42; } - } - class Foo8 { "bar"() {} - } - function foo20(requiredParam, optParam?) {} - class Foo9 { prop1: string; prop2: number; } - class Foo10 { static prop1: string; prop2: number; } - class Foo11 { #prop1: string; prop2: number; } - var x1: number | string = 4; - class Array { concat(items: number | string) {} - } - var x2: () => number | (() => string) = fn; var x3: typeof Y = Y; var x4: typeof Y | number = Y; @@ -198,21 +149,15 @@ var { x6: "hello" }; var [x7]: Array = ["hello"]; - function foo21({ x }: { x: string }) {} - function foo22([x]: Array) {} - function foo23(...rest: Array) {} - (function (...rest: Array) {}); - (...rest: Array) => rest; - var a15: Map>; var a16: Map>; var a17: number[]; @@ -288,10 +233,7 @@ var a33: {| var a34: {| id(x: T): T |}; - function foo27(numVal: number = 2) {} - function foo28(numVal?: number = 2) {} - export type * from "foo"; const foo29: symbol = Symbol(); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/flow/type-parameters/output.js b/packages/babel-generator/test/fixtures/flow/type-parameters/output.js index 768f82b1feaf..7b35c2f7f5c9 100644 --- a/packages/babel-generator/test/fixtures/flow/type-parameters/output.js +++ b/packages/babel-generator/test/fixtures/flow/type-parameters/output.js @@ -3,23 +3,14 @@ type A2 = T; type A3 = T; type A4 = T; type A5 = T; - class A6 {} - class A7 {} - class A8 {} - class A9 {} - (class A10 {}); - (class A11 {}); - (class A12 {}); - (class A13 {}); - declare class A14 {} declare class A15 {} declare class A16 {} diff --git a/packages/babel-generator/test/fixtures/flow/typeapp-call/output.js b/packages/babel-generator/test/fixtures/flow/typeapp-call/output.js index 6db174c9ad20..d1ab1f56efc8 100644 --- a/packages/babel-generator/test/fixtures/flow/typeapp-call/output.js +++ b/packages/babel-generator/test/fixtures/flow/typeapp-call/output.js @@ -5,11 +5,8 @@ new C(); f(e); o[e](); f(x)(y); - async () => {}; - async (): T => {}; - new C(e); f < T > [e]; new C(); diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/output.js index f9712059e262..3b7a28fbd9ca 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/output.js @@ -1,15 +1,10 @@ e => { print("hello world"); }; - (e1, e2, e3) => { print("hello world"); }; - e => e; - (e1, e2, e3) => e; - e => {}; - e => 20 + 20; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/output.js index d7707cf2d87c..ca8a15c58ef6 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/output.js @@ -1,47 +1,26 @@ class Test {} - class Derived extends Super {} - class StaticMethods { static n1() {} - static get get1() {} - static set set1(value) {} - static *gen1() {} - } - class Methods { n2() {} - get get2() {} - set set2(value) {} - *gen1() {} - } - class ComputedStaticMethods { static [n1]() {} - static get [get1]() {} - static set [set1](value) {} - static *[gen1]() {} - } - class ComputedMethods { [n2]() {} - get [get2]() {} - set [set2](value) {} - *[gen1]() {} - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/output.js index 0424ccf67f20..0eb9f5002948 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/output.js @@ -1,49 +1,27 @@ (class Test {}); - (class Derived extends Super {}); - (class StaticMethods { static n1() {} - static get get1() {} - static set set1(value) {} - static *gen1() {} - }); - (class Methods { n2() {} - get get2() {} - set set2(value) {} - *gen1() {} - }); - (class ComputedStaticMethods { static [n1]() {} - static get [get1]() {} - static set [set1](value) {} - static *[gen1]() {} - }); - (class ComputedMethods { [n2]() {} - get [get2]() {} - set [set2](value) {} - *[gen1]() {} - }); - (class {}); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/output.js index 7411f526f3e5..a1f475dbc8ce 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/output.js @@ -1,16 +1,12 @@ var object1 = { get [Symbol.create]() {}, - set [set()](value) {} - }; var object2 = { *[generator()]() {} - }; var object3 = { *[generator()]() {} - }; var object4 = { [Symbol.xxx]: "hello", diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/output.js index 4df711115488..20e3a212dbf6 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/output.js @@ -1,9 +1,5 @@ function a(p = 20) {} - function b(p, q = 30) {} - function c(p, q = 30, ...r) {} - (p = 20) => {}; - (p = 20, ...q) => {}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/output.js index 65da4d30e45d..c2332832d82d 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/output.js @@ -1,13 +1,10 @@ function t1({ responseText: responseText }) {} - function t2({ responseText }) {} - function t3([a, b]) {} - var [i1, j1, k1] = array; var { i2, diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/output.js index 2e6a54af6867..0afd2b2e6fb0 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/output.js @@ -1,5 +1,4 @@ function test() { for (var i of array) {} - for (let i of array) {} } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js index 69b3df1e5492..781134650c14 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-break/output.js @@ -1,5 +1,4 @@ import foo from "foo"; - foo: { break foo; -} +} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/output.js index 070fa55a1f3d..9bcaf362f39c 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/output.js @@ -1,6 +1,4 @@ var [a1, b1, ...rest1] = array; const [a2, b2, ...rest2] = array; - function a([a1, b1, ...rest1]) {} - ([a1, b1, ...rest1]) => {}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/templates-indentation/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-indentation/output.js index 070c6ca4e0ce..b36d173bcb83 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/templates-indentation/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-indentation/output.js @@ -3,7 +3,6 @@ function multilineTemplate() { ${'the energy motron'} ${'...or whatever'}`; } - { const foo = `spam and eggs!`; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/output.js b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/output.js index ef5eff9ebc11..68ab52b6da9a 100644 --- a/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/output.js +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/output.js @@ -1,6 +1,6 @@ function* foo() { var a = yield wat(), - b = 2; + b = 2; var c = yield a = b; yield a, yield b; yield a = b; diff --git a/packages/babel-generator/test/fixtures/jsx/comments/output.js b/packages/babel-generator/test/fixtures/jsx/comments/output.js index 96506461ea34..b5b99cd551fc 100644 --- a/packages/babel-generator/test/fixtures/jsx/comments/output.js +++ b/packages/babel-generator/test/fixtures/jsx/comments/output.js @@ -3,15 +3,11 @@ class Demo extends React.Component { super(props); this.state = {}; } - render() { return
- { - /*
I am a jsx comment!!
*/ - } + {/*
I am a jsx comment!!
*/}
; } - } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/misc/placeholders/output.js b/packages/babel-generator/test/fixtures/misc/placeholders/output.js index 82ad54ecc61e..9c605cb0ceb3 100644 --- a/packages/babel-generator/test/fixtures/misc/placeholders/output.js +++ b/packages/babel-generator/test/fixtures/misc/placeholders/output.js @@ -1,8 +1,5 @@ var %%a%% = %%b%%; %%c%%; - class %%d%% {} - class A %%e%% - function %%f%%(...%%g%%) %%h%% \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/output.js b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/output.js index 2a969b86aa00..f23c0d00ace2 100644 --- a/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/output.js @@ -2,11 +2,8 @@ var foo = arr.map(v => ({ x: v.bar, y: v.bar * 2 })); - var fn = () => ({}).key; - var fn2 = () => ({}); - var fn3 = () => ({ a } = {}); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js index 9dd55c5ad596..bf33d2ca48fc 100644 --- a/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/async-arrow-function/output.js @@ -1,8 +1,8 @@ -const x = async ( // some comment +const x = async ( +// some comment a) => { return foo(await a); }; - function foo(a) { return a; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/await-expression/output.js b/packages/babel-generator/test/fixtures/parentheses/await-expression/output.js index e864e993947d..82ed647a34a7 100644 --- a/packages/babel-generator/test/fixtures/parentheses/await-expression/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/output.js @@ -8,7 +8,6 @@ async function foo() { await await 1; await (a || b); } - async function a(b) { (await xhr({ url: "views/test.html" diff --git a/packages/babel-generator/test/fixtures/parentheses/break-statement/output.js b/packages/babel-generator/test/fixtures/parentheses/break-statement/output.js index feb3df1d70c7..9a4d69150761 100644 --- a/packages/babel-generator/test/fixtures/parentheses/break-statement/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/break-statement/output.js @@ -1,17 +1,12 @@ label1: for (const a of [1, 2, 3]) { break /*Block comment written in single line */label1; } - label2: for (const a of [1, 2, 3]) { - break; - /*Block comment written - in multiple lines */ - + break; /*Block comment written + in multiple lines */ label2; } - label2: for (const a of [1, 2, 3]) { break; //foo - label2; } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/class-extends/output.js b/packages/babel-generator/test/fixtures/parentheses/class-extends/output.js index 11b2ee978828..6af6ca993187 100644 --- a/packages/babel-generator/test/fixtures/parentheses/class-extends/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/class-extends/output.js @@ -1,35 +1,20 @@ class A1 extends (() => {}) {} - class A2 extends (B = C) {} - class A3 extends (B || C) {} - class A4 extends (B + C) {} - class A5 extends B() {} - class A6 extends class {} {} - class A7 extends (B ? C : D) {} - class A8 extends new B() {} - class A9 extends (B, C) {} - class A10 extends {} {} - class A11 extends B.C {} - class A12 extends function () {} {} - class A13 extends (void B) {} - class A14 extends (++B) {} - async function f1() { class A15 extends (await C) {} } - function* f2() { class A16 extends (yield 1) {} -} +} \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/identifier-lhs/output.js b/packages/babel-generator/test/fixtures/parentheses/identifier-lhs/output.js index 164de06f999a..5673f394e9a8 100644 --- a/packages/babel-generator/test/fixtures/parentheses/identifier-lhs/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/identifier-lhs/output.js @@ -1,13 +1,7 @@ var f, g, h; - (f) = function () {}; - (f) = class {}; - g = function () {}; - g = class {}; - h = function noParen() {}; - h = class noParen {}; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/sequence-expressions/output.js b/packages/babel-generator/test/fixtures/parentheses/sequence-expressions/output.js index fb44cc02d81b..4d1b68487ec4 100644 --- a/packages/babel-generator/test/fixtures/parentheses/sequence-expressions/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/sequence-expressions/output.js @@ -1,14 +1,9 @@ function foo() { return a, b; } - if (a, b, c) d(); throw a, b, c; - switch (a, b, c) {} - for (a in b, c); - while (a, b, c); - !function () {}(), a(); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/output.js b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/output.js index bc4371fbdf61..a406da8acc7a 100644 --- a/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/tagged-template-expression/output.js @@ -1,7 +1,6 @@ (() => {})``; (function () {})``; (a ? b : c)``; - function* fn() { (yield)`foo`; (yield f)`foo`; diff --git a/packages/babel-generator/test/fixtures/parentheses/terminator-break/output.js b/packages/babel-generator/test/fixtures/parentheses/terminator-break/output.js index 7ec6459a0d85..ecf5bf6338fc 100644 --- a/packages/babel-generator/test/fixtures/parentheses/terminator-break/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/terminator-break/output.js @@ -1,11 +1,12 @@ function foo1() { - return (// foobar + return ( + // foobar "bar" ); } - function foo2() { - return (// foobar + return ( + // foobar "bar" ); } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js b/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js index fbf1bce8e507..f6821d12e13f 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js @@ -7,14 +7,12 @@ function* foo() { yield 1 ? 2 : 3; yield yield 1; } - function* a(b) { (yield xhr({ url: "views/test.html" })).data; (yield replay())?.data; } - (async function* () { await (yield 1); }); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/regression/comment-before-parentheses-return-arg/output.js b/packages/babel-generator/test/fixtures/regression/comment-before-parentheses-return-arg/output.js index 24a35efbd7b6..c209aa70959c 100644 --- a/packages/babel-generator/test/fixtures/regression/comment-before-parentheses-return-arg/output.js +++ b/packages/babel-generator/test/fixtures/regression/comment-before-parentheses-return-arg/output.js @@ -1,13 +1,7 @@ function assertElement(assertFn, shouldBeElement, opt_message) { - return ( - /** @type {!Ele ment} */ + return (/** @type {!Ele ment} */ assertType_(assertFn, shouldBeElement, isElement(shouldBeElement), 'Element expected', opt_message) ); } - -const slot = -/** @type {!HTMLSlotElement} */ -e.target; -assertElement( -/** @type {Element} */ -el); \ No newline at end of file +const slot = /** @type {!HTMLSlotElement} */e.target; +assertElement( /** @type {Element} */el); \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/regression/comments-with-_noLineTerminator/output.js b/packages/babel-generator/test/fixtures/regression/comments-with-_noLineTerminator/output.js index 8a370e8fae05..93606e9ec252 100644 --- a/packages/babel-generator/test/fixtures/regression/comments-with-_noLineTerminator/output.js +++ b/packages/babel-generator/test/fixtures/regression/comments-with-_noLineTerminator/output.js @@ -6,5 +6,4 @@ const test = (): { foo: "bar" }; }; - export default test; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/output.js b/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/output.js index 8ce10b0ba345..4761f0f97a2c 100644 --- a/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/output.js +++ b/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/output.js @@ -1,13 +1,11 @@ class Foo { static {} } - class A1 { static { foo; } } - class A2 { static { foo; diff --git a/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/source-map.json b/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/source-map.json index c5131632aeed..eea76718e703 100644 --- a/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/source-map.json +++ b/packages/babel-generator/test/fixtures/sourcemaps/ClassBody-StaticBlock/source-map.json @@ -13,5 +13,5 @@ "sourcesContent": [ "class Foo {\n static {}\n}\n\nclass A1 {\n static{\n foo;\n }\n}\n\nclass A2 {\n static {\n foo;bar;\n }\n}" ], - "mappings": "AAAA,MAAMA,GAAG,CAAC;EACR;AACF;;AAEA,MAAMC,EAAE,CAAC;EACP;IACEC,GAAG;EACL;AACF;;AAEA,MAAMC,EAAE,CAAC;EACP;IACED,GAAG;IAACE,GAAG;EACT;AACF" + "mappings": "AAAA,MAAMA,GAAG,CAAC;EACR;AACF;AAEA,MAAMC,EAAE,CAAC;EACP;IACEC,GAAG;EACL;AACF;AAEA,MAAMC,EAAE,CAAC;EACP;IACED,GAAG;IAACE,GAAG;EACT;AACF" } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/output.js b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/output.js index 9fdbf2c3f072..068e07af5029 100644 --- a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/output.js +++ b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/output.js @@ -1,4 +1,5 @@ // From packages\babel-cli\src\babel\watcher.ts + import { createRequire } from "module"; import path from "path"; import type { WatchOptions, FSWatcher } from "chokidar"; @@ -31,11 +32,9 @@ export function enable({ } export function startWatcher() { hasStarted = true; - for (const dep of watchQueue) { watcher.add(dep); } - watchQueue.clear(); watcher.on("ready", () => { console.log("The watcher is ready."); @@ -45,13 +44,13 @@ export function watch(filename: string): void { if (!isWatchMode) { throw new Error("Internal Babel error: .watch called when not in watch mode."); } - if (!hasStarted) { watchQueue.add(path.resolve(filename)); } else { watcher.add(path.resolve(filename)); } } + /** * Call @param callback whenever a dependency (source file)/ * external dependency (non-source file) changes. @@ -59,12 +58,10 @@ export function watch(filename: string): void { * Handles mapping external dependencies to their corresponding * dependencies. */ - export function onFilesChange(callback: (filenames: string[], event: string, cause: string) => void): void { if (!isWatchMode) { throw new Error("Internal Babel error: .onFilesChange called when not in watch mode."); } - watcher.on("all", (event, filename) => { if (event !== "change" && event !== "add") return; const absoluteFile = path.resolve(filename); @@ -72,12 +69,12 @@ export function onFilesChange(callback: (filenames: string[], event: string, cau }); } export function updateExternalDependencies(filename: string, dependencies: Set) { - if (!isWatchMode) return; // Use absolute paths + if (!isWatchMode) return; + // Use absolute paths const absFilename = path.resolve(filename); const absDependencies = new Set(Array.from(dependencies, dep => path.resolve(dep))); const deps = fileToDeps.get(absFilename); - if (deps) { for (const dep of deps) { if (!absDependencies.has(dep)) { @@ -85,33 +82,25 @@ export function updateExternalDependencies(filename: string, dependencies: Set); deps.delete(filename); - if (deps.size === 0) { depToFiles.delete(dep); - if (!hasStarted) { watchQueue.delete(dep); } else { @@ -119,21 +108,16 @@ function removeFileDependency(filename: string, dep: string) { } } } - function unwatchFile(filename: string) { const deps = fileToDeps.get(filename); if (!deps) return; - for (const dep of deps) { removeFileDependency(filename, dep); } - fileToDeps.delete(filename); } - function requireChokidar(): any { const require = createRequire(import.meta.url); - try { return process.env.BABEL_8_BREAKING ? require("chokidar") : parseInt(process.versions.node) >= 8 ? require("chokidar") : require("@nicolo-ribaudo/chokidar-2"); } catch (err) { diff --git a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/source-map.json b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/source-map.json index 541ebd4329e8..7b69685247d6 100644 --- a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/source-map.json +++ b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file1/source-map.json @@ -74,5 +74,5 @@ "sourcesContent": [ "// From packages\\babel-cli\\src\\babel\\watcher.ts\n\nimport { createRequire } from \"module\";\nimport path from \"path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map>();\nconst depToFiles = new Map>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep) as Set;\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return process.env.BABEL_8_BREAKING\n ? require(\"chokidar\")\n : parseInt(process.versions.node) >= 8\n ? require(\"chokidar\")\n : require(\"@nicolo-ribaudo/chokidar-2\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}" ], - "mappings": "AAAA;AAEA,SAASA,aAAa,QAAQ,QAAQ;AACtC,OAAOC,IAAI,MAAM,MAAM;AACvB,cAAcC,YAAY,EAAEC,SAAS,QAAQ,UAAU;AAEvD,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAC,MAAM,EAAEC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AACjD,MAAMC,UAAU,GAAG,IAAIF,GAAG,CAAC,MAAM,EAAEC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AAEjD,IAAIE,WAAW,GAAG,KAAK;AACvB,IAAIC,OAAO,EAAEN,SAAS;AACtB,MAAMO,UAAU,GAAG,IAAIJ,GAAG,CAAC,MAAM,CAAC,EAAE;AACpC,IAAIK,UAAU,GAAG,KAAK;AAEtB,OAAO,SAASC,MAAM,CAAC;EAAEC;AAA4C,CAA5B,EAAE;EAAEA,cAAc,EAAE,OAAO;AAAC,CAAC,EAAE;EACtEL,WAAW,GAAG,IAAI;EAElB,MAAM;IAAEL;EAAU,CAAC,GAAGW,eAAe,EAAE;EAEvC,MAAMC,OAAO,EAAEb,YAAY,GAAG;IAC5Bc,eAAe,EAAE,CAACH,cAAc;IAChCI,UAAU,EAAE,IAAI;IAChBC,aAAa,EAAE,IAAI;IACnBC,gBAAgB,EAAE;MAChBC,kBAAkB,EAAE,EAAE;MACtBC,YAAY,EAAE;IAChB;EACF,CAAC;EACDZ,OAAO,GAAG,IAAIN,SAAS,CAACY,OAAO,CAAC;EAEhCN,OAAO,CAACa,EAAE,CAAC,QAAQ,EAAEC,WAAW,CAAC;AACnC;AAEA,OAAO,SAASC,YAAY,GAAG;EAC7Bb,UAAU,GAAG,IAAI;;EAEjB,KAAK,MAAMc,GAAG,IAAIf,UAAU,EAAE;IAC5BD,OAAO,CAACiB,GAAG,CAACD,GAAG,CAAC;EAClB;;EACAf,UAAU,CAACiB,KAAK,EAAE;EAElBlB,OAAO,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;IACxBM,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;EACtC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,KAAK,CAACC,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;EAC5C,IAAI,CAACvB,WAAW,EAAE;IAChB,MAAM,IAAIwB,KAAK,CACb,6DAA6D,CAC9D;EACH;;EAEA,IAAI,CAACrB,UAAU,EAAE;IACfD,UAAU,CAACgB,GAAG,CAACzB,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC,CAAC;EACxC,CAAC,MAAM;IACLtB,OAAO,CAACiB,GAAG,CAACzB,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC,CAAC;EACrC;AACF;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASG,aAAa,CAC3BC,QAAQ,EAAE,CAACC,SAAS,EAAE,MAAM,EAAE,EAAEC,KAAK,EAAE,MAAM,EAAEC,KAAK,EAAE,MAAM,KAAK,IAAI,CACtE,EAAE,IAAI,CAAC;EACN,IAAI,CAAC9B,WAAW,EAAE;IAChB,MAAM,IAAIwB,KAAK,CACb,qEAAqE,CACtE;EACH;;EAEAvB,OAAO,CAACa,EAAE,CAAC,KAAK,EAAE,CAACe,KAAK,EAAEN,QAAQ,KAAK;IACrC,IAAIM,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,KAAK,EAAE;IAE3C,MAAME,YAAY,GAAGtC,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC;IAC3CI,QAAQ,CACN,CAACI,YAAY,EAAE,IAAIhC,UAAU,CAACiC,GAAG,CAACD,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EACvDF,KAAK,EACLE,YAAY,CACb;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,SAASE,0BAA0B,CACxCV,QAAQ,EAAE,MAAM,EAChBW,YAAY,EAAEpC,GAAG,CAAC,MAAM,CAAC,EACzB;EACA,IAAI,CAACE,WAAW,EAAE,OAAO,CAEzB;;EACA,MAAMmC,WAAW,GAAG1C,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC;EAC1C,MAAMa,eAAe,GAAG,IAAItC,GAAG,CAC7BuC,KAAK,CAACC,IAAI,CAACJ,YAAY,EAAEjB,GAAG,IAAIxB,IAAI,CAACgC,OAAO,CAACR,GAAG,CAAC,CAAC,CACnD;EAED,MAAMsB,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACG,WAAW,CAAC;;EACxC,IAAII,IAAI,EAAE;IACR,KAAK,MAAMtB,GAAG,IAAIsB,IAAI,EAAE;MACtB,IAAI,CAACH,eAAe,CAACI,GAAG,CAACvB,GAAG,CAAC,EAAE;QAC7BwB,oBAAoB,CAACN,WAAW,EAAElB,GAAG,CAAC;MACxC;IACF;EACF;;EACA,KAAK,MAAMA,GAAG,IAAImB,eAAe,EAAE;IACjC,IAAIG,IAAI,GAAGxC,UAAU,CAACiC,GAAG,CAACf,GAAG,CAAC;;IAC9B,IAAI,CAACsB,IAAI,EAAE;MACTxC,UAAU,CAAC2C,GAAG,CAACzB,GAAG,EAAGsB,IAAI,GAAG,IAAIzC,GAAG,EAAE,CAAE;;MAEvC,IAAI,CAACK,UAAU,EAAE;QACfD,UAAU,CAACgB,GAAG,CAACD,GAAG,CAAC;MACrB,CAAC,MAAM;QACLhB,OAAO,CAACiB,GAAG,CAACD,GAAG,CAAC;MAClB;IACF;;IAEAsB,IAAI,CAACrB,GAAG,CAACiB,WAAW,CAAC;EACvB;;EAEAvC,UAAU,CAAC8C,GAAG,CAACP,WAAW,EAAEC,eAAe,CAAC;AAC9C;;AAEA,SAASK,oBAAoB,CAAClB,QAAQ,EAAE,MAAM,EAAEN,GAAG,EAAE,MAAM,EAAE;EAC3D,MAAMsB,IAAI,IAAGxC,UAAU,CAACiC,GAAG,CAACf,GAAG,CAAC,IAAInB,GAAG,CAAC,MAAM,CAAC;EAC/CyC,IAAI,CAACI,MAAM,CAACpB,QAAQ,CAAC;;EAErB,IAAIgB,IAAI,CAACK,IAAI,KAAK,CAAC,EAAE;IACnB7C,UAAU,CAAC4C,MAAM,CAAC1B,GAAG,CAAC;;IAEtB,IAAI,CAACd,UAAU,EAAE;MACfD,UAAU,CAACyC,MAAM,CAAC1B,GAAG,CAAC;IACxB,CAAC,MAAM;MACLhB,OAAO,CAAC4C,OAAO,CAAC5B,GAAG,CAAC;IACtB;EACF;AACF;;AAEA,SAASF,WAAW,CAACQ,QAAQ,EAAE,MAAM,EAAE;EACrC,MAAMgB,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACT,QAAQ,CAAC;EACrC,IAAI,CAACgB,IAAI,EAAE;;EAEX,KAAK,MAAMtB,GAAG,IAAIsB,IAAI,EAAE;IACtBE,oBAAoB,CAAClB,QAAQ,EAAEN,GAAG,CAAC;EACrC;;EACArB,UAAU,CAAC+C,MAAM,CAACpB,QAAQ,CAAC;AAC7B;;AAEA,SAASjB,eAAe,EAAE,EAAE,GAAG,CAAC;EAC9B,MAAMwC,OAAO,GAAGtD,aAAa,CAACuD,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;;EAE9C,IAAI;IACF,OAAOC,OAAO,CAACC,GAAG,CAACC,gBAAgB,GAC/BN,OAAO,CAAC,UAAU,CAAC,GACnBO,QAAQ,CAACH,OAAO,CAACI,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,GACpCT,OAAO,CAAC,UAAU,CAAC,GACnBA,OAAO,CAAC,4BAA4B,CAAC;EAC3C,CAAC,CAAC,OAAOU,GAAG,EAAE;IACZpC,OAAO,CAACqC,KAAK,CACX,yEAAyE,GACvE,6DAA6D,CAChE;IACD,MAAMD,GAAG;EACX;AACF" + "mappings": "AAAA;;AAEA,SAASA,aAAa,QAAQ,QAAQ;AACtC,OAAOC,IAAI,MAAM,MAAM;AACvB,cAAcC,YAAY,EAAEC,SAAS,QAAQ,UAAU;AAEvD,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAC,MAAM,EAAEC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AACjD,MAAMC,UAAU,GAAG,IAAIF,GAAG,CAAC,MAAM,EAAEC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;AAEjD,IAAIE,WAAW,GAAG,KAAK;AACvB,IAAIC,OAAO,EAAEN,SAAS;AACtB,MAAMO,UAAU,GAAG,IAAIJ,GAAG,CAAC,MAAM,CAAC,EAAE;AACpC,IAAIK,UAAU,GAAG,KAAK;AAEtB,OAAO,SAASC,MAAM,CAAC;EAAEC;AAA4C,CAA5B,EAAE;EAAEA,cAAc,EAAE,OAAO;AAAC,CAAC,EAAE;EACtEL,WAAW,GAAG,IAAI;EAElB,MAAM;IAAEL;EAAU,CAAC,GAAGW,eAAe,EAAE;EAEvC,MAAMC,OAAO,EAAEb,YAAY,GAAG;IAC5Bc,eAAe,EAAE,CAACH,cAAc;IAChCI,UAAU,EAAE,IAAI;IAChBC,aAAa,EAAE,IAAI;IACnBC,gBAAgB,EAAE;MAChBC,kBAAkB,EAAE,EAAE;MACtBC,YAAY,EAAE;IAChB;EACF,CAAC;EACDZ,OAAO,GAAG,IAAIN,SAAS,CAACY,OAAO,CAAC;EAEhCN,OAAO,CAACa,EAAE,CAAC,QAAQ,EAAEC,WAAW,CAAC;AACnC;AAEA,OAAO,SAASC,YAAY,GAAG;EAC7Bb,UAAU,GAAG,IAAI;EAEjB,KAAK,MAAMc,GAAG,IAAIf,UAAU,EAAE;IAC5BD,OAAO,CAACiB,GAAG,CAACD,GAAG,CAAC;EAClB;EACAf,UAAU,CAACiB,KAAK,EAAE;EAElBlB,OAAO,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;IACxBM,OAAO,CAACC,GAAG,CAAC,uBAAuB,CAAC;EACtC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,KAAK,CAACC,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;EAC5C,IAAI,CAACvB,WAAW,EAAE;IAChB,MAAM,IAAIwB,KAAK,CACb,6DAA6D,CAC9D;EACH;EAEA,IAAI,CAACrB,UAAU,EAAE;IACfD,UAAU,CAACgB,GAAG,CAACzB,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC,CAAC;EACxC,CAAC,MAAM;IACLtB,OAAO,CAACiB,GAAG,CAACzB,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC,CAAC;EACrC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,aAAa,CAC3BC,QAAQ,EAAE,CAACC,SAAS,EAAE,MAAM,EAAE,EAAEC,KAAK,EAAE,MAAM,EAAEC,KAAK,EAAE,MAAM,KAAK,IAAI,CACtE,EAAE,IAAI,CAAC;EACN,IAAI,CAAC9B,WAAW,EAAE;IAChB,MAAM,IAAIwB,KAAK,CACb,qEAAqE,CACtE;EACH;EAEAvB,OAAO,CAACa,EAAE,CAAC,KAAK,EAAE,CAACe,KAAK,EAAEN,QAAQ,KAAK;IACrC,IAAIM,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,KAAK,EAAE;IAE3C,MAAME,YAAY,GAAGtC,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC;IAC3CI,QAAQ,CACN,CAACI,YAAY,EAAE,IAAIhC,UAAU,CAACiC,GAAG,CAACD,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EACvDF,KAAK,EACLE,YAAY,CACb;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,SAASE,0BAA0B,CACxCV,QAAQ,EAAE,MAAM,EAChBW,YAAY,EAAEpC,GAAG,CAAC,MAAM,CAAC,EACzB;EACA,IAAI,CAACE,WAAW,EAAE;;EAElB;EACA,MAAMmC,WAAW,GAAG1C,IAAI,CAACgC,OAAO,CAACF,QAAQ,CAAC;EAC1C,MAAMa,eAAe,GAAG,IAAItC,GAAG,CAC7BuC,KAAK,CAACC,IAAI,CAACJ,YAAY,EAAEjB,GAAG,IAAIxB,IAAI,CAACgC,OAAO,CAACR,GAAG,CAAC,CAAC,CACnD;EAED,MAAMsB,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACG,WAAW,CAAC;EACxC,IAAII,IAAI,EAAE;IACR,KAAK,MAAMtB,GAAG,IAAIsB,IAAI,EAAE;MACtB,IAAI,CAACH,eAAe,CAACI,GAAG,CAACvB,GAAG,CAAC,EAAE;QAC7BwB,oBAAoB,CAACN,WAAW,EAAElB,GAAG,CAAC;MACxC;IACF;EACF;EACA,KAAK,MAAMA,GAAG,IAAImB,eAAe,EAAE;IACjC,IAAIG,IAAI,GAAGxC,UAAU,CAACiC,GAAG,CAACf,GAAG,CAAC;IAC9B,IAAI,CAACsB,IAAI,EAAE;MACTxC,UAAU,CAAC2C,GAAG,CAACzB,GAAG,EAAGsB,IAAI,GAAG,IAAIzC,GAAG,EAAE,CAAE;MAEvC,IAAI,CAACK,UAAU,EAAE;QACfD,UAAU,CAACgB,GAAG,CAACD,GAAG,CAAC;MACrB,CAAC,MAAM;QACLhB,OAAO,CAACiB,GAAG,CAACD,GAAG,CAAC;MAClB;IACF;IAEAsB,IAAI,CAACrB,GAAG,CAACiB,WAAW,CAAC;EACvB;EAEAvC,UAAU,CAAC8C,GAAG,CAACP,WAAW,EAAEC,eAAe,CAAC;AAC9C;AAEA,SAASK,oBAAoB,CAAClB,QAAQ,EAAE,MAAM,EAAEN,GAAG,EAAE,MAAM,EAAE;EAC3D,MAAMsB,IAAI,IAAGxC,UAAU,CAACiC,GAAG,CAACf,GAAG,CAAC,IAAInB,GAAG,CAAC,MAAM,CAAC;EAC/CyC,IAAI,CAACI,MAAM,CAACpB,QAAQ,CAAC;EAErB,IAAIgB,IAAI,CAACK,IAAI,KAAK,CAAC,EAAE;IACnB7C,UAAU,CAAC4C,MAAM,CAAC1B,GAAG,CAAC;IAEtB,IAAI,CAACd,UAAU,EAAE;MACfD,UAAU,CAACyC,MAAM,CAAC1B,GAAG,CAAC;IACxB,CAAC,MAAM;MACLhB,OAAO,CAAC4C,OAAO,CAAC5B,GAAG,CAAC;IACtB;EACF;AACF;AAEA,SAASF,WAAW,CAACQ,QAAQ,EAAE,MAAM,EAAE;EACrC,MAAMgB,IAAI,GAAG3C,UAAU,CAACoC,GAAG,CAACT,QAAQ,CAAC;EACrC,IAAI,CAACgB,IAAI,EAAE;EAEX,KAAK,MAAMtB,GAAG,IAAIsB,IAAI,EAAE;IACtBE,oBAAoB,CAAClB,QAAQ,EAAEN,GAAG,CAAC;EACrC;EACArB,UAAU,CAAC+C,MAAM,CAACpB,QAAQ,CAAC;AAC7B;AAEA,SAASjB,eAAe,EAAE,EAAE,GAAG,CAAC;EAC9B,MAAMwC,OAAO,GAAGtD,aAAa,CAACuD,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;EAE9C,IAAI;IACF,OAAOC,OAAO,CAACC,GAAG,CAACC,gBAAgB,GAC/BN,OAAO,CAAC,UAAU,CAAC,GACnBO,QAAQ,CAACH,OAAO,CAACI,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,GACpCT,OAAO,CAAC,UAAU,CAAC,GACnBA,OAAO,CAAC,4BAA4B,CAAC;EAC3C,CAAC,CAAC,OAAOU,GAAG,EAAE;IACZpC,OAAO,CAACqC,KAAK,CACX,yEAAyE,GACvE,6DAA6D,CAChE;IACD,MAAMD,GAAG;EACX;AACF" } \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js index 92d500f7e95d..af068a1f65b6 100644 --- a/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js +++ b/packages/babel-generator/test/fixtures/sourcemaps/real-world-babel-file2/output.js @@ -1,4 +1,5 @@ // From packages\babel-generator\src\printer.ts + import Buffer from "./buffer"; import type { Loc } from "./buffer"; import * as n from "./node"; @@ -38,12 +39,10 @@ export type Format = { * For use with the Hack-style pipe operator. * Changes what token is used for pipe bodies’ topic references. */ - topicToken?: PipelineOperatorPluginOptions["topicToken"]; /** * @deprecated Removed in Babel 8 */ - decoratorsBeforeExport?: boolean; }; interface AddNewlinesOptions { @@ -61,7 +60,6 @@ interface PrintListOptions { type PrintJoinOptions = PrintListOptions & PrintSequenceOptions & { iterator?: (node: t.Node, index: number) => void; }; - class Printer { constructor(format: Format, map: SourceMap) { this.format = format; @@ -69,7 +67,6 @@ class Printer { this._indentChar = format.indent.style.charCodeAt(0); this._indentRepeat = format.indent.style.length; } - declare format: Format; inForStatementInitCounter: number = 0; declare _buf: Buffer; @@ -86,261 +83,218 @@ class Printer { _printedComments = new Set(); _endsWithInteger = false; _endsWithWord = false; - generate(ast: t.Node) { this.print(ast); - this._maybeAddAuxComment(); - return this._buf.get(); } + /** * Increment indent size. */ - indent(): void { if (this.format.compact || this.format.concise) return; this._indent++; } + /** * Decrement indent size. */ - dedent(): void { if (this.format.compact || this.format.concise) return; this._indent--; } + /** * Add a semicolon to the buffer. */ - semicolon(force: boolean = false): void { this._maybeAddAuxComment(); - if (force) { this._appendChar(charCodes.semicolon); } else { this._queue(charCodes.semicolon); } } + /** * Add a right brace to the buffer. */ - rightBrace(): void { if (this.format.minified) { this._buf.removeLastSemicolon(); } - this.token("}"); } + /** * Add a space to the buffer unless it is compact. */ - space(force: boolean = false): void { if (this.format.compact) return; - if (force) { this._space(); } else if (this._buf.hasContent()) { const lastCp = this.getLastChar(); - if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) { this._space(); } } } + /** * Writes a token that can't be safely parsed without taking whitespace into account. */ - word(str: string): void { // prevent concatenating words and creating // comment out of division and regex if (this._endsWithWord || str.charCodeAt(0) === charCodes.slash && this.endsWith(charCodes.slash)) { this._space(); } - this._maybeAddAuxComment(); - this._append(str, false); - this._endsWithWord = true; } + /** * Writes a number token so that we can validate if it is an integer. */ - number(str: string): void { - this.word(str); // Integer tokens need special handling because they cannot have '.'s inserted - // immediately after them. + this.word(str); + // Integer tokens need special handling because they cannot have '.'s inserted + // immediately after them. this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== charCodes.dot; } + /** * Writes a simple token. */ - token(str: string, maybeNewline = false): void { // space is mandatory to avoid outputting