From b089e8b51935a74e914721eea08c51f09be9feea Mon Sep 17 00:00:00 2001 From: Dunqing <29533304+Dunqing@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:18:14 +0000 Subject: [PATCH] chore(tasks/transform-conformance): support `override` to replace `takeover` mode (#7771) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR does the following things. 1. Move the override output of the `snapshots` folder to the `overrides` folder. 2. Support `override` mode to replace `takeover` mode 3. The `update_fixtures.js` no longer uses `overrides`'s `output.js` to replace Babel's `output.js`. ### How does `override` mode work? When running each test, it checks whether an output file for that test exists in the ⁠`overrides` directory. If it does, the output file will be used to compare with the transformed code. --- .typos.toml | 2 +- .../assignment-expression/output.js | 0 .../object-rest/catch-clause/output.js | 0 .../object-rest/duplicate-decl-bug/output.js | 0 .../fixtures/object-rest/export/output.mjs | 0 .../object-rest/for-x-array-pattern/output.js | 0 .../for-x-completion-record/output.js | 0 .../test/fixtures/object-rest/for-x/output.js | 0 .../object-rest/impure-computed/output.js | 0 .../fixtures/object-rest/nested-2/output.js | 0 .../object-rest/nested-array-2/output.js | 0 .../object-rest/nested-array/output.js | 0 .../object-rest/nested-computed-key/output.js | 0 .../nested-default-value/output.js | 0 .../nested-literal-property/output.js | 0 .../object-rest/nested-order/output.js | 0 .../fixtures/object-rest/nested/output.js | 0 .../object-rest/non-string-computed/output.js | 0 .../object-rest/null-destructuring/output.js | 0 .../object-rest/object-ref-computed/output.js | 0 .../output.js | 0 .../fixtures/object-rest/parameters/output.js | 0 .../fixtures/object-rest/symbol/output.js | 0 .../output.js | 0 .../output.js | 0 .../output.js | 0 .../variable-destructuring/output.js | 0 .../object-rest/with-array-rest/output.js | 0 .../object-spread/assignment/output.js | 0 .../object-spread/expression/output.js | 0 .../object-spread/side-effect/output.js | 0 .../variable-declaration/output.js | 0 .../fixtures/regression/gh-4904/output.js | 0 .../fixtures/regression/gh-5151/output.js | 0 .../fixtures/regression/gh-7304/output.js} | 0 .../fixtures/regression/gh-7388/output.js | 0 .../assignment/output.js | 0 .../cast-to-boolean/output.js | 0 .../in-function-params/output.js | 0 .../memoize/output.js | 0 .../optional-eval-call/output.js | 0 .../super-method-call/output.js | 0 .../function-call/output.js | 0 .../assumption-pureGetters/memoize/output.js | 0 .../super-method-call/output.js | 0 .../fixtures/general/assignment/output.js | 0 .../general/cast-to-boolean/output.js | 0 .../fixtures/general/containers/output.js | 0 .../delete-in-function-params/output.js | 0 .../test/fixtures/general/delete/output.js | 0 .../general/function-call-loose/output.js | 0 .../general/function-call-spread/output.js | 0 .../fixtures/general/function-call/output.js | 0 .../in-function-params-loose/output.js | 0 .../general/in-function-params/output.js | 0 .../general/in-method-key-loose/output.js | 0 .../fixtures/general/in-method-key/output.js | 0 .../general/in-var-destructuring/output.js | 0 .../fixtures/general/member-access/output.js | 0 .../fixtures/general/memoize-loose/output.js | 0 .../test/fixtures/general/memoize/output.js | 0 .../optional-eval-call-loose/output.js | 0 .../general/optional-eval-call/output.js | 0 .../output.js | 0 .../parenthesized-member-call-loose/output.js | 0 .../parenthesized-member-call/output.js | 0 .../general/super-method-call-loose/output.js | 0 .../general/super-method-call/output.js | 0 .../test/fixtures/general/unary/output.js | 0 .../fixtures/loose/cast-to-boolean/output.js | 0 .../output.js | 0 .../output.js | 0 .../regression/10959-transform-ts/output.js | 0 .../test/fixtures/regression/15887/output.js | 0 .../test/fixtures/regression/7642/output.js | 0 .../ts-as-call-context-in-if/output.js | 0 .../ts-as-call-context/output.js | 0 .../ts-as-function-call-loose/output.js | 0 .../ts-as-in-conditional/output.js | 0 .../ts-as-member-expression/output.js | 0 .../output.js | 0 .../fixtures/regression/gh-8323/output.js | 2 - .../snapshots/babel.snap.md | 638 +++++++++++++++++- tasks/transform_conformance/src/constants.rs | 3 - tasks/transform_conformance/src/lib.rs | 4 + tasks/transform_conformance/src/test_case.rs | 76 +-- .../transform_conformance/update_fixtures.js | 77 +-- 87 files changed, 707 insertions(+), 95 deletions(-) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/assignment-expression/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/duplicate-decl-bug/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/export/output.mjs (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/impure-computed/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array-2/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-computed-key/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-default-value/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-literal-property/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-order/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/non-string-computed/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/null-destructuring/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/object-ref-computed/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/symbol/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-allLiterals-true-no-hoisting/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-false/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-true/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/variable-destructuring/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/with-array-rest/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/expression/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/side-effect/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/variable-declaration/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-4904/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-5151/output.js (100%) rename tasks/transform_conformance/{snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.mjs => overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.js} (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7388/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/assignment/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/cast-to-boolean/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/in-function-params/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/memoize/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/optional-eval-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/super-method-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/function-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/memoize/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/super-method-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/assignment/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/cast-to-boolean/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/containers/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/delete-in-function-params/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/delete/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-spread/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/in-var-destructuring/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-expression-containers/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/general/unary/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/loose/cast-to-boolean/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/regression/15887/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/regression/7642/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context-in-if/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-in-conditional/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js (100%) rename tasks/transform_conformance/{snapshots => overrides}/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js (100%) delete mode 100644 tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-8323/output.js diff --git a/.typos.toml b/.typos.toml index 8f2883d57c548..64c9b75e1f8d3 100644 --- a/.typos.toml +++ b/.typos.toml @@ -23,7 +23,7 @@ extend-exclude = [ "tasks/prettier_conformance/prettier", "tasks/prettier_conformance/snapshots", "tasks/transform_conformance/tests/**/output.js", - "tasks/transform_conformance/snapshots", + "tasks/transform_conformance/overrides", "npm/oxc-wasm/oxc_wasm.js", ] diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/assignment-expression/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/assignment-expression/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/assignment-expression/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/assignment-expression/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/duplicate-decl-bug/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/duplicate-decl-bug/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/duplicate-decl-bug/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/duplicate-decl-bug/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/export/output.mjs b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/export/output.mjs similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/export/output.mjs rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/export/output.mjs diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/impure-computed/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/impure-computed/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/impure-computed/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/impure-computed/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array-2/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array-2/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array-2/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array-2/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-array/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-computed-key/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-computed-key/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-computed-key/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-computed-key/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-default-value/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-default-value/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-default-value/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-default-value/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-literal-property/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-literal-property/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-literal-property/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-literal-property/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-order/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-order/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-order/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-order/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/non-string-computed/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/non-string-computed/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/non-string-computed/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/non-string-computed/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/null-destructuring/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/null-destructuring/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/null-destructuring/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/null-destructuring/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/object-ref-computed/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/object-ref-computed/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/object-ref-computed/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/object-ref-computed/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/parameters/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/symbol/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/symbol/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/symbol/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/symbol/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-allLiterals-true-no-hoisting/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-allLiterals-true-no-hoisting/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-allLiterals-true-no-hoisting/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-allLiterals-true-no-hoisting/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-false/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-false/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-false/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-false/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-true/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-true/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-true/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/template-literal-property-allLiterals-true/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/variable-destructuring/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/variable-destructuring/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/variable-destructuring/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/variable-destructuring/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/with-array-rest/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/with-array-rest/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/with-array-rest/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/with-array-rest/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/assignment/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/expression/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/expression/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/expression/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/expression/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/side-effect/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/side-effect/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/side-effect/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/side-effect/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/variable-declaration/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/variable-declaration/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/variable-declaration/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/object-spread/variable-declaration/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-4904/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-4904/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-4904/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-4904/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-5151/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-5151/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-5151/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-5151/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.mjs b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.mjs rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7304/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7388/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7388/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7388/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-7388/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/assignment/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/assignment/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/assignment/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/assignment/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/cast-to-boolean/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/cast-to-boolean/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/cast-to-boolean/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/cast-to-boolean/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/in-function-params/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/in-function-params/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/in-function-params/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/in-function-params/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/memoize/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/memoize/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/memoize/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/memoize/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/optional-eval-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/optional-eval-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/optional-eval-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/optional-eval-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/super-method-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/super-method-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/super-method-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-noDocumentAll/super-method-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/function-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/function-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/function-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/function-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/memoize/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/memoize/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/memoize/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/memoize/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/super-method-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/super-method-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/super-method-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/assumption-pureGetters/super-method-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/assignment/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/assignment/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/assignment/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/assignment/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/cast-to-boolean/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/cast-to-boolean/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/cast-to-boolean/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/cast-to-boolean/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/containers/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/containers/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/containers/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/containers/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/delete-in-function-params/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/delete-in-function-params/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/delete-in-function-params/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/delete-in-function-params/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/delete/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/delete/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/delete/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/delete/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-spread/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-spread/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-spread/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call-spread/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/function-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-function-params/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-method-key/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-var-destructuring/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-var-destructuring/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/in-var-destructuring/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/in-var-destructuring/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/member-access/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/memoize/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/optional-eval-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-expression-containers/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-expression-containers/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-expression-containers/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-expression-containers/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/parenthesized-member-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/super-method-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/unary/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/unary/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/general/unary/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/general/unary/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/loose/cast-to-boolean/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/loose/cast-to-boolean/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/loose/cast-to-boolean/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/loose/cast-to-boolean/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-optional-chaining/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts-and-optional-chaining/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/10959-transform-ts/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/15887/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/15887/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/15887/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/15887/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/7642/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/7642/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/regression/7642/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/regression/7642/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context-in-if/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context-in-if/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context-in-if/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context-in-if/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-call-context/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-function-call-loose/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-in-conditional/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-in-conditional/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-in-conditional/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-in-conditional/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-as-member-expression/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js b/tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js similarity index 100% rename from tasks/transform_conformance/snapshots/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js rename to tasks/transform_conformance/overrides/babel-plugin-transform-optional-chaining/test/fixtures/transparent-expr-wrappers/ts-parenthesized-expression-member-call/output.js diff --git a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-8323/output.js b/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-8323/output.js deleted file mode 100644 index 500d1bfe5ac8b..0000000000000 --- a/tasks/transform_conformance/snapshots/babel-plugin-transform-object-rest-spread/test/fixtures/regression/gh-8323/output.js +++ /dev/null @@ -1,2 +0,0 @@ - - x Option `loose` is not implemented for object-rest-spread. diff --git a/tasks/transform_conformance/snapshots/babel.snap.md b/tasks/transform_conformance/snapshots/babel.snap.md index 879dd0754aa1e..0b2777a627811 100644 --- a/tasks/transform_conformance/snapshots/babel.snap.md +++ b/tasks/transform_conformance/snapshots/babel.snap.md @@ -1,6 +1,6 @@ commit: 54a8389f -Passed: 503/846 +Passed: 562/927 # All Passed: * babel-plugin-transform-class-static-block @@ -785,6 +785,642 @@ x Output mismatch x Output mismatch +# babel-plugin-transform-optional-chaining (31/45) +* assumption-noDocumentAll/assignment/input.js +Symbol reference IDs mismatch for "_obj$a": +after transform: SymbolId(5): [ReferenceId(9), ReferenceId(10), ReferenceId(11)] +rebuilt : SymbolId(0): [ReferenceId(3), ReferenceId(5)] +Symbol reference IDs mismatch for "_obj$b": +after transform: SymbolId(6): [ReferenceId(14), ReferenceId(15), ReferenceId(16)] +rebuilt : SymbolId(1): [ReferenceId(7), ReferenceId(9)] +Symbol reference IDs mismatch for "_obj$a2": +after transform: SymbolId(7): [ReferenceId(19), ReferenceId(20), ReferenceId(21)] +rebuilt : SymbolId(2): [ReferenceId(12), ReferenceId(14)] +Symbol reference IDs mismatch for "obj": +after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(4), ReferenceId(5), ReferenceId(6), ReferenceId(7), ReferenceId(8), ReferenceId(12), ReferenceId(13), ReferenceId(17), ReferenceId(18)] +rebuilt : SymbolId(3): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(4), ReferenceId(6), ReferenceId(8), ReferenceId(11), ReferenceId(13)] + +* assumption-noDocumentAll/cast-to-boolean/input.js +Bindings mismatch: +after transform: ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +rebuilt : ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent2", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +Bindings mismatch: +after transform: ScopeId(26): ["_o$a$b$c$non_existent2"] +rebuilt : ScopeId(26): [] +Symbol scope ID mismatch for "_o$a$b$c$non_existent2": +after transform: SymbolId(31): ScopeId(26) +rebuilt : SymbolId(33): ScopeId(25) + +* assumption-noDocumentAll/in-function-params/input.js +Scope children mismatch: +after transform: ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(5)] +rebuilt : ScopeId(0): [ScopeId(1), ScopeId(3), ScopeId(5), ScopeId(7), ScopeId(9)] +Bindings mismatch: +after transform: ScopeId(1): ["_x", "a"] +rebuilt : ScopeId(2): ["_x"] +Scope flags mismatch: +after transform: ScopeId(1): ScopeFlags(Function) +rebuilt : ScopeId(2): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(1): Some(ScopeId(0)) +rebuilt : ScopeId(2): Some(ScopeId(1)) +Bindings mismatch: +after transform: ScopeId(2): ["a", "b"] +rebuilt : ScopeId(4): [] +Scope flags mismatch: +after transform: ScopeId(2): ScopeFlags(Function) +rebuilt : ScopeId(4): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(2): Some(ScopeId(0)) +rebuilt : ScopeId(4): Some(ScopeId(3)) +Bindings mismatch: +after transform: ScopeId(3): ["_a$b", "a", "b"] +rebuilt : ScopeId(6): ["_a$b"] +Scope flags mismatch: +after transform: ScopeId(3): ScopeFlags(Function) +rebuilt : ScopeId(6): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(3): Some(ScopeId(0)) +rebuilt : ScopeId(6): Some(ScopeId(5)) +Bindings mismatch: +after transform: ScopeId(4): ["_a$b2", "a", "b"] +rebuilt : ScopeId(8): ["_a$b2"] +Scope flags mismatch: +after transform: ScopeId(4): ScopeFlags(Function) +rebuilt : ScopeId(8): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(4): Some(ScopeId(0)) +rebuilt : ScopeId(8): Some(ScopeId(7)) +Bindings mismatch: +after transform: ScopeId(5): ["_a$b3", "a", "b"] +rebuilt : ScopeId(10): ["_a$b3"] +Scope flags mismatch: +after transform: ScopeId(5): ScopeFlags(Function) +rebuilt : ScopeId(10): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(5): Some(ScopeId(0)) +rebuilt : ScopeId(10): Some(ScopeId(9)) +Symbol scope ID mismatch for "a": +after transform: SymbolId(1): ScopeId(1) +rebuilt : SymbolId(1): ScopeId(1) +Symbol reference IDs mismatch for "_x": +after transform: SymbolId(14): [ReferenceId(5), ReferenceId(6), ReferenceId(7)] +rebuilt : SymbolId(2): [ReferenceId(0), ReferenceId(2)] +Symbol scope ID mismatch for "a": +after transform: SymbolId(3): ScopeId(2) +rebuilt : SymbolId(4): ScopeId(3) +Symbol reference IDs mismatch for "a": +after transform: SymbolId(3): [ReferenceId(1), ReferenceId(8), ReferenceId(9)] +rebuilt : SymbolId(4): [ReferenceId(3), ReferenceId(4)] +Symbol scope ID mismatch for "b": +after transform: SymbolId(4): ScopeId(2) +rebuilt : SymbolId(5): ScopeId(3) +Symbol scope ID mismatch for "a": +after transform: SymbolId(6): ScopeId(3) +rebuilt : SymbolId(7): ScopeId(5) +Symbol scope ID mismatch for "b": +after transform: SymbolId(7): ScopeId(3) +rebuilt : SymbolId(8): ScopeId(5) +Symbol reference IDs mismatch for "_a$b": +after transform: SymbolId(15): [ReferenceId(10), ReferenceId(11), ReferenceId(12), ReferenceId(13), ReferenceId(14), ReferenceId(15)] +rebuilt : SymbolId(9): [ReferenceId(5), ReferenceId(7), ReferenceId(8), ReferenceId(9)] +Symbol scope ID mismatch for "a": +after transform: SymbolId(9): ScopeId(4) +rebuilt : SymbolId(11): ScopeId(7) +Symbol scope ID mismatch for "b": +after transform: SymbolId(10): ScopeId(4) +rebuilt : SymbolId(12): ScopeId(7) +Symbol reference IDs mismatch for "_a$b2": +after transform: SymbolId(16): [ReferenceId(16), ReferenceId(17), ReferenceId(18), ReferenceId(19), ReferenceId(20), ReferenceId(21)] +rebuilt : SymbolId(13): [ReferenceId(10), ReferenceId(12), ReferenceId(13), ReferenceId(14)] +Symbol scope ID mismatch for "a": +after transform: SymbolId(12): ScopeId(5) +rebuilt : SymbolId(15): ScopeId(9) +Symbol reference IDs mismatch for "a": +after transform: SymbolId(12): [ReferenceId(4), ReferenceId(22), ReferenceId(23)] +rebuilt : SymbolId(15): [ReferenceId(15), ReferenceId(17)] +Symbol scope ID mismatch for "b": +after transform: SymbolId(13): ScopeId(5) +rebuilt : SymbolId(16): ScopeId(9) +Symbol reference IDs mismatch for "_a$b3": +after transform: SymbolId(17): [ReferenceId(24), ReferenceId(25), ReferenceId(26)] +rebuilt : SymbolId(17): [ReferenceId(16), ReferenceId(18)] + +* assumption-noDocumentAll/memoize/input.js +Symbol reference IDs mismatch for "foo": +after transform: SymbolId(1): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(3), ReferenceId(4), ReferenceId(5), ReferenceId(7), ReferenceId(8), ReferenceId(10), ReferenceId(11), ReferenceId(13), ReferenceId(14), ReferenceId(15), ReferenceId(16), ReferenceId(17), ReferenceId(18), ReferenceId(19), ReferenceId(20), ReferenceId(21), ReferenceId(22), ReferenceId(23), ReferenceId(24), ReferenceId(25), ReferenceId(26), ReferenceId(27), ReferenceId(28), ReferenceId(32), ReferenceId(33), ReferenceId(34), ReferenceId(35), ReferenceId(54), ReferenceId(55), ReferenceId(56), ReferenceId(60), ReferenceId(64), ReferenceId(65), ReferenceId(76), ReferenceId(77)] +rebuilt : SymbolId(1): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(4), ReferenceId(6), ReferenceId(7), ReferenceId(8), ReferenceId(9), ReferenceId(10), ReferenceId(12), ReferenceId(16), ReferenceId(19), ReferenceId(23), ReferenceId(26), ReferenceId(30), ReferenceId(32), ReferenceId(33), ReferenceId(34), ReferenceId(36), ReferenceId(38), ReferenceId(39), ReferenceId(41), ReferenceId(43), ReferenceId(44), ReferenceId(46), ReferenceId(48), ReferenceId(50), ReferenceId(55), ReferenceId(56), ReferenceId(58), ReferenceId(63)] +Symbol reference IDs mismatch for "_foo$bar": +after transform: SymbolId(2): [ReferenceId(29), ReferenceId(30), ReferenceId(31)] +rebuilt : SymbolId(2): [ReferenceId(3), ReferenceId(5)] +Symbol reference IDs mismatch for "_foo$get": +after transform: SymbolId(3): [ReferenceId(36), ReferenceId(37), ReferenceId(38)] +rebuilt : SymbolId(3): [ReferenceId(11), ReferenceId(14)] +Symbol reference IDs mismatch for "_foo$bar2": +after transform: SymbolId(4): [ReferenceId(39), ReferenceId(40), ReferenceId(41)] +rebuilt : SymbolId(4): [ReferenceId(15), ReferenceId(17)] +Symbol reference IDs mismatch for "_foo$bar3": +after transform: SymbolId(5): [ReferenceId(42), ReferenceId(43), ReferenceId(44)] +rebuilt : SymbolId(5): [ReferenceId(18), ReferenceId(21)] +Symbol reference IDs mismatch for "_foo$bar$baz": +after transform: SymbolId(6): [ReferenceId(45), ReferenceId(46), ReferenceId(47)] +rebuilt : SymbolId(6): [ReferenceId(22), ReferenceId(24)] +Symbol reference IDs mismatch for "_foo$bar$baz2": +after transform: SymbolId(7): [ReferenceId(48), ReferenceId(49), ReferenceId(50)] +rebuilt : SymbolId(7): [ReferenceId(25), ReferenceId(28)] +Symbol reference IDs mismatch for "_foo$bar4": +after transform: SymbolId(8): [ReferenceId(51), ReferenceId(52), ReferenceId(53)] +rebuilt : SymbolId(8): [ReferenceId(29), ReferenceId(31)] +Symbol reference IDs mismatch for "_foo$bar5": +after transform: SymbolId(9): [ReferenceId(57), ReferenceId(58), ReferenceId(59)] +rebuilt : SymbolId(9): [ReferenceId(35), ReferenceId(37)] +Symbol reference IDs mismatch for "_foo$bar6": +after transform: SymbolId(10): [ReferenceId(61), ReferenceId(62), ReferenceId(63)] +rebuilt : SymbolId(10): [ReferenceId(40), ReferenceId(42)] +Symbol reference IDs mismatch for "_foo$bar7": +after transform: SymbolId(11): [ReferenceId(66), ReferenceId(67), ReferenceId(68)] +rebuilt : SymbolId(11): [ReferenceId(45), ReferenceId(47)] +Symbol reference IDs mismatch for "_foo$bar8": +after transform: SymbolId(12): [ReferenceId(69), ReferenceId(70), ReferenceId(71), ReferenceId(75)] +rebuilt : SymbolId(12): [ReferenceId(49), ReferenceId(52), ReferenceId(54)] +Symbol reference IDs mismatch for "_foo$bar8$baz": +after transform: SymbolId(13): [ReferenceId(72), ReferenceId(73), ReferenceId(74)] +rebuilt : SymbolId(13): [ReferenceId(51), ReferenceId(53)] +Symbol reference IDs mismatch for "_foo$bar9": +after transform: SymbolId(14): [ReferenceId(78), ReferenceId(79), ReferenceId(80), ReferenceId(84)] +rebuilt : SymbolId(14): [ReferenceId(57), ReferenceId(60), ReferenceId(62)] +Symbol reference IDs mismatch for "_foo$bar9$baz": +after transform: SymbolId(15): [ReferenceId(81), ReferenceId(82), ReferenceId(83)] +rebuilt : SymbolId(15): [ReferenceId(59), ReferenceId(61)] + +* assumption-noDocumentAll/optional-eval-call/input.js +Symbol reference IDs mismatch for "_eval": +after transform: SymbolId(1): [ReferenceId(20), ReferenceId(21), ReferenceId(22)] +rebuilt : SymbolId(0): [ReferenceId(10), ReferenceId(12)] +Symbol reference IDs mismatch for "_eval2": +after transform: SymbolId(2): [ReferenceId(23), ReferenceId(24), ReferenceId(25)] +rebuilt : SymbolId(1): [ReferenceId(13), ReferenceId(15)] +Symbol reference IDs mismatch for "_foo$eval": +after transform: SymbolId(3): [ReferenceId(26), ReferenceId(27), ReferenceId(28)] +rebuilt : SymbolId(2): [ReferenceId(16), ReferenceId(18)] +Symbol reference IDs mismatch for "_eval$foo": +after transform: SymbolId(4): [ReferenceId(30), ReferenceId(31), ReferenceId(32)] +rebuilt : SymbolId(3): [ReferenceId(21), ReferenceId(23)] +Unresolved reference IDs mismatch for "eval": +after transform: [ReferenceId(0), ReferenceId(2), ReferenceId(4), ReferenceId(5), ReferenceId(6), ReferenceId(7), ReferenceId(10), ReferenceId(12), ReferenceId(13), ReferenceId(14), ReferenceId(15), ReferenceId(16), ReferenceId(17), ReferenceId(18), ReferenceId(19), ReferenceId(33)] +rebuilt : [ReferenceId(0), ReferenceId(1), ReferenceId(3), ReferenceId(4), ReferenceId(6), ReferenceId(7), ReferenceId(8), ReferenceId(9), ReferenceId(11), ReferenceId(14), ReferenceId(22), ReferenceId(24)] + +* assumption-noDocumentAll/super-method-call/input.js +Symbol reference IDs mismatch for "_super$method": +after transform: SymbolId(2): [ReferenceId(1), ReferenceId(2), ReferenceId(3)] +rebuilt : SymbolId(2): [ReferenceId(1), ReferenceId(2)] + +* general/cast-to-boolean/input.js +Bindings mismatch: +after transform: ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +rebuilt : ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent2", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +Bindings mismatch: +after transform: ScopeId(26): ["_o$a$b$c$non_existent2"] +rebuilt : ScopeId(26): [] +Symbol scope ID mismatch for "_o$a$b$c$non_existent2": +after transform: SymbolId(31): ScopeId(26) +rebuilt : SymbolId(33): ScopeId(25) + +* general/delete-in-function-params/input.js +Scope children mismatch: +after transform: ScopeId(0): [ScopeId(1)] +rebuilt : ScopeId(0): [ScopeId(1)] +Bindings mismatch: +after transform: ScopeId(1): ["_a", "x"] +rebuilt : ScopeId(2): ["_a"] +Scope flags mismatch: +after transform: ScopeId(1): ScopeFlags(Function) +rebuilt : ScopeId(2): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(1): Some(ScopeId(0)) +rebuilt : ScopeId(2): Some(ScopeId(1)) +Symbol scope ID mismatch for "x": +after transform: SymbolId(1): ScopeId(1) +rebuilt : SymbolId(1): ScopeId(1) + +* general/in-function-params/input.js +Scope children mismatch: +after transform: ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(5)] +rebuilt : ScopeId(0): [ScopeId(1), ScopeId(3), ScopeId(5), ScopeId(7), ScopeId(9)] +Bindings mismatch: +after transform: ScopeId(1): ["_x", "a"] +rebuilt : ScopeId(2): ["_x"] +Scope flags mismatch: +after transform: ScopeId(1): ScopeFlags(Function) +rebuilt : ScopeId(2): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(1): Some(ScopeId(0)) +rebuilt : ScopeId(2): Some(ScopeId(1)) +Bindings mismatch: +after transform: ScopeId(2): ["a", "b"] +rebuilt : ScopeId(4): [] +Scope flags mismatch: +after transform: ScopeId(2): ScopeFlags(Function) +rebuilt : ScopeId(4): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(2): Some(ScopeId(0)) +rebuilt : ScopeId(4): Some(ScopeId(3)) +Bindings mismatch: +after transform: ScopeId(3): ["_a$b", "a", "b"] +rebuilt : ScopeId(6): ["_a$b"] +Scope flags mismatch: +after transform: ScopeId(3): ScopeFlags(Function) +rebuilt : ScopeId(6): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(3): Some(ScopeId(0)) +rebuilt : ScopeId(6): Some(ScopeId(5)) +Bindings mismatch: +after transform: ScopeId(4): ["_a$b2", "a", "b"] +rebuilt : ScopeId(8): ["_a$b2"] +Scope flags mismatch: +after transform: ScopeId(4): ScopeFlags(Function) +rebuilt : ScopeId(8): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(4): Some(ScopeId(0)) +rebuilt : ScopeId(8): Some(ScopeId(7)) +Bindings mismatch: +after transform: ScopeId(5): ["_a$b3", "a", "b"] +rebuilt : ScopeId(10): ["_a$b3"] +Scope flags mismatch: +after transform: ScopeId(5): ScopeFlags(Function) +rebuilt : ScopeId(10): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(5): Some(ScopeId(0)) +rebuilt : ScopeId(10): Some(ScopeId(9)) +Symbol scope ID mismatch for "a": +after transform: SymbolId(1): ScopeId(1) +rebuilt : SymbolId(1): ScopeId(1) +Symbol scope ID mismatch for "a": +after transform: SymbolId(3): ScopeId(2) +rebuilt : SymbolId(4): ScopeId(3) +Symbol scope ID mismatch for "b": +after transform: SymbolId(4): ScopeId(2) +rebuilt : SymbolId(5): ScopeId(3) +Symbol scope ID mismatch for "a": +after transform: SymbolId(6): ScopeId(3) +rebuilt : SymbolId(7): ScopeId(5) +Symbol scope ID mismatch for "b": +after transform: SymbolId(7): ScopeId(3) +rebuilt : SymbolId(8): ScopeId(5) +Symbol scope ID mismatch for "a": +after transform: SymbolId(9): ScopeId(4) +rebuilt : SymbolId(11): ScopeId(7) +Symbol scope ID mismatch for "b": +after transform: SymbolId(10): ScopeId(4) +rebuilt : SymbolId(12): ScopeId(7) +Symbol scope ID mismatch for "a": +after transform: SymbolId(12): ScopeId(5) +rebuilt : SymbolId(15): ScopeId(9) +Symbol scope ID mismatch for "b": +after transform: SymbolId(13): ScopeId(5) +rebuilt : SymbolId(16): ScopeId(9) + +* general/in-function-params-loose/input.js +Scope children mismatch: +after transform: ScopeId(0): [ScopeId(1), ScopeId(2), ScopeId(3), ScopeId(4), ScopeId(5)] +rebuilt : ScopeId(0): [ScopeId(1), ScopeId(3), ScopeId(5), ScopeId(7), ScopeId(9)] +Bindings mismatch: +after transform: ScopeId(1): ["_x", "a"] +rebuilt : ScopeId(2): ["_x"] +Scope flags mismatch: +after transform: ScopeId(1): ScopeFlags(Function) +rebuilt : ScopeId(2): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(1): Some(ScopeId(0)) +rebuilt : ScopeId(2): Some(ScopeId(1)) +Bindings mismatch: +after transform: ScopeId(2): ["a", "b"] +rebuilt : ScopeId(4): [] +Scope flags mismatch: +after transform: ScopeId(2): ScopeFlags(Function) +rebuilt : ScopeId(4): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(2): Some(ScopeId(0)) +rebuilt : ScopeId(4): Some(ScopeId(3)) +Bindings mismatch: +after transform: ScopeId(3): ["_a$b", "a", "b"] +rebuilt : ScopeId(6): ["_a$b"] +Scope flags mismatch: +after transform: ScopeId(3): ScopeFlags(Function) +rebuilt : ScopeId(6): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(3): Some(ScopeId(0)) +rebuilt : ScopeId(6): Some(ScopeId(5)) +Bindings mismatch: +after transform: ScopeId(4): ["_a$b2", "a", "b"] +rebuilt : ScopeId(8): ["_a$b2"] +Scope flags mismatch: +after transform: ScopeId(4): ScopeFlags(Function) +rebuilt : ScopeId(8): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(4): Some(ScopeId(0)) +rebuilt : ScopeId(8): Some(ScopeId(7)) +Bindings mismatch: +after transform: ScopeId(5): ["_a$b3", "a", "b"] +rebuilt : ScopeId(10): ["_a$b3"] +Scope flags mismatch: +after transform: ScopeId(5): ScopeFlags(Function) +rebuilt : ScopeId(10): ScopeFlags(Function | Arrow) +Scope parent mismatch: +after transform: ScopeId(5): Some(ScopeId(0)) +rebuilt : ScopeId(10): Some(ScopeId(9)) +Symbol scope ID mismatch for "a": +after transform: SymbolId(1): ScopeId(1) +rebuilt : SymbolId(1): ScopeId(1) +Symbol scope ID mismatch for "a": +after transform: SymbolId(3): ScopeId(2) +rebuilt : SymbolId(4): ScopeId(3) +Symbol scope ID mismatch for "b": +after transform: SymbolId(4): ScopeId(2) +rebuilt : SymbolId(5): ScopeId(3) +Symbol scope ID mismatch for "a": +after transform: SymbolId(6): ScopeId(3) +rebuilt : SymbolId(7): ScopeId(5) +Symbol scope ID mismatch for "b": +after transform: SymbolId(7): ScopeId(3) +rebuilt : SymbolId(8): ScopeId(5) +Symbol scope ID mismatch for "a": +after transform: SymbolId(9): ScopeId(4) +rebuilt : SymbolId(11): ScopeId(7) +Symbol scope ID mismatch for "b": +after transform: SymbolId(10): ScopeId(4) +rebuilt : SymbolId(12): ScopeId(7) +Symbol scope ID mismatch for "a": +after transform: SymbolId(12): ScopeId(5) +rebuilt : SymbolId(15): ScopeId(9) +Symbol scope ID mismatch for "b": +after transform: SymbolId(13): ScopeId(5) +rebuilt : SymbolId(16): ScopeId(9) + +* loose/cast-to-boolean/input.js +Bindings mismatch: +after transform: ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +rebuilt : ScopeId(25): ["_o$a$b$c$non_existent", "_o$a$b$c$non_existent2", "_o$a$b$c$non_existent3", "_o$a$b10", "_o$a$b6", "_o$a$b7", "_o$a$b8", "_o$a$b9", "o"] +Bindings mismatch: +after transform: ScopeId(26): ["_o$a$b$c$non_existent2"] +rebuilt : ScopeId(26): [] +Symbol scope ID mismatch for "_o$a$b$c$non_existent2": +after transform: SymbolId(31): ScopeId(26) +rebuilt : SymbolId(33): ScopeId(25) + +* transparent-expr-wrappers/ts-as-function-call-loose/input.ts +Unresolved references mismatch: +after transform: ["A", "B", "foo"] +rebuilt : ["foo"] + +* transparent-expr-wrappers/ts-as-member-expression/input.ts +Unresolved references mismatch: +after transform: ["ExampleType", "ExampleType2", "a"] +rebuilt : ["a"] + +* transparent-expr-wrappers/ts-parenthesized-expression-member-call/input.ts +Unresolved references mismatch: +after transform: ["ExampleType", "o"] +rebuilt : ["o"] + + +# babel-plugin-transform-object-rest-spread (28/36) +* object-rest/for-x/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_excluded", "_excluded2", "_excluded3", "_ref", "a", "b"] +rebuilt : ScopeId(0): ["_excluded", "_excluded2", "_excluded3", "_ref", "_ref2", "_ref3", "a"] +Bindings mismatch: +after transform: ScopeId(2): [] +rebuilt : ScopeId(2): ["a", "b"] +Bindings mismatch: +after transform: ScopeId(3): ["_ref2"] +rebuilt : ScopeId(3): [] +Bindings mismatch: +after transform: ScopeId(4): ["_ref3"] +rebuilt : ScopeId(4): [] +Bindings mismatch: +after transform: ScopeId(5): [] +rebuilt : ScopeId(5): ["_ref4", "_ref5"] +Bindings mismatch: +after transform: ScopeId(6): ["_ref4"] +rebuilt : ScopeId(6): [] +Bindings mismatch: +after transform: ScopeId(7): ["_ref5"] +rebuilt : ScopeId(7): [] +Symbol flags mismatch for "a": +after transform: SymbolId(0): SymbolFlags(BlockScopedVariable) +rebuilt : SymbolId(8): SymbolFlags(FunctionScopedVariable) +Symbol span mismatch for "a": +after transform: SymbolId(0): Span { start: 27, end: 28 } +rebuilt : SymbolId(8): Span { start: 86, end: 87 } +Symbol scope ID mismatch for "a": +after transform: SymbolId(0): ScopeId(2) +rebuilt : SymbolId(8): ScopeId(0) +Symbol redeclarations mismatch for "a": +after transform: SymbolId(0): [Span { start: 86, end: 87 }, Span { start: 189, end: 190 }, Span { start: 274, end: 275 }] +rebuilt : SymbolId(8): [Span { start: 189, end: 190 }, Span { start: 274, end: 275 }] +Symbol reference IDs mismatch for "b": +after transform: SymbolId(1): [ReferenceId(1), ReferenceId(3)] +rebuilt : SymbolId(5): [] +Symbol scope ID mismatch for "_ref2": +after transform: SymbolId(4): ScopeId(3) +rebuilt : SymbolId(6): ScopeId(0) +Symbol scope ID mismatch for "_ref3": +after transform: SymbolId(5): ScopeId(4) +rebuilt : SymbolId(7): ScopeId(0) +Symbol scope ID mismatch for "_ref4": +after transform: SymbolId(7): ScopeId(6) +rebuilt : SymbolId(9): ScopeId(5) +Symbol scope ID mismatch for "_ref5": +after transform: SymbolId(8): ScopeId(7) +rebuilt : SymbolId(10): ScopeId(5) +Reference symbol mismatch for "b": +after transform: SymbolId(1) "b" +rebuilt : +Reference symbol mismatch for "b": +after transform: SymbolId(1) "b" +rebuilt : +Unresolved references mismatch: +after transform: ["babelHelpers"] +rebuilt : ["b", "babelHelpers"] + +* object-rest/for-x-array-pattern/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_excluded", "_excluded2", "_excluded3", "a"] +rebuilt : ScopeId(0): ["_excluded", "_excluded2", "_excluded3", "_ref2", "_ref3", "_ref4", "a"] +Bindings mismatch: +after transform: ScopeId(3): ["_ref2"] +rebuilt : ScopeId(3): [] +Bindings mismatch: +after transform: ScopeId(4): ["_ref3", "_ref4"] +rebuilt : ScopeId(4): [] +Bindings mismatch: +after transform: ScopeId(5): [] +rebuilt : ScopeId(5): ["_ref5", "_ref6", "_ref7"] +Bindings mismatch: +after transform: ScopeId(6): ["_ref5"] +rebuilt : ScopeId(6): [] +Bindings mismatch: +after transform: ScopeId(7): ["_ref6", "_ref7"] +rebuilt : ScopeId(7): [] +Symbol scope ID mismatch for "_ref2": +after transform: SymbolId(5): ScopeId(3) +rebuilt : SymbolId(6): ScopeId(0) +Symbol scope ID mismatch for "_ref3": +after transform: SymbolId(6): ScopeId(4) +rebuilt : SymbolId(7): ScopeId(0) +Symbol scope ID mismatch for "_ref4": +after transform: SymbolId(7): ScopeId(4) +rebuilt : SymbolId(8): ScopeId(0) +Symbol scope ID mismatch for "_ref5": +after transform: SymbolId(9): ScopeId(6) +rebuilt : SymbolId(10): ScopeId(5) +Symbol scope ID mismatch for "_ref6": +after transform: SymbolId(10): ScopeId(7) +rebuilt : SymbolId(11): ScopeId(5) +Symbol scope ID mismatch for "_ref7": +after transform: SymbolId(11): ScopeId(7) +rebuilt : SymbolId(12): ScopeId(5) + +* object-rest/for-x-completion-record/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_excluded"] +rebuilt : ScopeId(0): ["_excluded", "_ref", "_ref2"] +Bindings mismatch: +after transform: ScopeId(1): ["_ref"] +rebuilt : ScopeId(1): [] +Bindings mismatch: +after transform: ScopeId(2): ["_ref2"] +rebuilt : ScopeId(2): [] +Symbol scope ID mismatch for "_ref": +after transform: SymbolId(0): ScopeId(1) +rebuilt : SymbolId(1): ScopeId(0) +Symbol scope ID mismatch for "_ref2": +after transform: SymbolId(1): ScopeId(2) +rebuilt : SymbolId(2): ScopeId(0) + +* object-rest/nested-computed-key/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_ref3", "a", "c"] +rebuilt : ScopeId(0): ["a", "c"] +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Unresolved references mismatch: +after transform: ["babelHelpers", "d"] +rebuilt : ["_ref3", "babelHelpers", "d"] + +* object-rest/nested-default-value/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_ref3", "a", "c"] +rebuilt : ScopeId(0): ["a", "c"] +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Unresolved references mismatch: +after transform: ["babelHelpers", "d"] +rebuilt : ["_ref3", "babelHelpers", "d"] + +* object-rest/parameters-object-rest-used-in-default/input.js +Symbol reference IDs mismatch for "R": +after transform: SymbolId(0): [ReferenceId(0)] +rebuilt : SymbolId(3): [] +Symbol reference IDs mismatch for "Y": +after transform: SymbolId(2): [ReferenceId(1)] +rebuilt : SymbolId(6): [] +Symbol reference IDs mismatch for "R": +after transform: SymbolId(6): [ReferenceId(2)] +rebuilt : SymbolId(10): [] +Symbol reference IDs mismatch for "R": +after transform: SymbolId(7): [ReferenceId(3)] +rebuilt : SymbolId(16): [] +Symbol reference IDs mismatch for "R": +after transform: SymbolId(13): [ReferenceId(6)] +rebuilt : SymbolId(20): [] +Symbol reference IDs mismatch for "R": +after transform: SymbolId(15): [ReferenceId(7)] +rebuilt : SymbolId(23): [] +Reference symbol mismatch for "R": +after transform: SymbolId(0) "R" +rebuilt : +Reference symbol mismatch for "Y": +after transform: SymbolId(2) "Y" +rebuilt : +Reference symbol mismatch for "R": +after transform: SymbolId(6) "R" +rebuilt : +Reference symbol mismatch for "R": +after transform: SymbolId(7) "R" +rebuilt : +Reference symbol mismatch for "R": +after transform: SymbolId(13) "R" +rebuilt : +Reference symbol mismatch for "R": +after transform: SymbolId(15) "R" +rebuilt : +Unresolved references mismatch: +after transform: ["b", "babelHelpers", "f", "q"] +rebuilt : ["R", "Y", "b", "babelHelpers", "f", "q"] + +* object-rest/symbol/input.js +Bindings mismatch: +after transform: ScopeId(0): ["_Symbol$for", "_Symbol$for2", "_Symbol$for3", "_ref", "_ref2", "_ref3", "foo", "rest"] +rebuilt : ScopeId(0): ["_Symbol$for", "_Symbol$for2", "_ref", "_ref2", "foo", "rest"] +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_Symbol$for3": +after transform: SymbolId(7) "_Symbol$for3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Reference symbol mismatch for "_Symbol$for3": +after transform: SymbolId(7) "_Symbol$for3" +rebuilt : +Reference symbol mismatch for "_ref3": +after transform: SymbolId(6) "_ref3" +rebuilt : +Unresolved references mismatch: +after transform: ["Symbol", "babelHelpers"] +rebuilt : ["Symbol", "_Symbol$for3", "_ref3", "babelHelpers"] +Unresolved reference IDs mismatch for "Symbol": +after transform: [ReferenceId(0), ReferenceId(1), ReferenceId(4)] +rebuilt : [ReferenceId(0), ReferenceId(7)] + +* regression/gh-8323/input.js + + x Option `loose` is not implemented for object-rest-spread. + + + # babel-plugin-transform-async-to-generator (10/28) * assumption-ignoreFunctionLength-true/basic/input.mjs diff --git a/tasks/transform_conformance/src/constants.rs b/tasks/transform_conformance/src/constants.rs index 4423ddb4fbdae..effeab3409625 100644 --- a/tasks/transform_conformance/src/constants.rs +++ b/tasks/transform_conformance/src/constants.rs @@ -105,6 +105,3 @@ pub const SKIP_TESTS: &[&str] = &[ "babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose", "babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/regression/gh-8323" ]; - -pub const SNAPSHOT_TESTS: &[&str] = - &["babel-plugin-transform-object-rest-spread", "babel-plugin-transform-optional-chaining"]; diff --git a/tasks/transform_conformance/src/lib.rs b/tasks/transform_conformance/src/lib.rs index bf97d8a939d1b..fa61029ab9a46 100644 --- a/tasks/transform_conformance/src/lib.rs +++ b/tasks/transform_conformance/src/lib.rs @@ -51,6 +51,10 @@ fn snap_root() -> PathBuf { conformance_root().join("snapshots") } +fn override_root() -> PathBuf { + conformance_root().join("overrides") +} + fn oxc_test_root() -> PathBuf { conformance_root().join("tests") } diff --git a/tasks/transform_conformance/src/test_case.rs b/tasks/transform_conformance/src/test_case.rs index f88d230e1192a..eddb970b56268 100644 --- a/tasks/transform_conformance/src/test_case.rs +++ b/tasks/transform_conformance/src/test_case.rs @@ -16,9 +16,9 @@ use oxc::{ use oxc_tasks_common::{normalize_path, print_diff_in_terminal, project_root}; use crate::{ - constants::{PLUGINS_NOT_SUPPORTED_YET, SKIP_TESTS, SNAPSHOT_TESTS}, + constants::{PLUGINS_NOT_SUPPORTED_YET, SKIP_TESTS}, driver::Driver, - fixture_root, oxc_test_root, packages_root, snap_root, TestRunnerOptions, + fixture_root, override_root, oxc_test_root, packages_root, TestRunnerOptions, }; #[derive(Debug)] @@ -35,12 +35,19 @@ pub struct TestCase { pub enum TestCaseKind { Conformance, Exec, - Snapshot, } impl TestCase { pub fn new(cwd: &Path, path: &Path) -> Option { - let mut options = BabelOptions::from_test_path(path.parent().unwrap()); + let mut options_directory_path = path.parent().unwrap().to_path_buf(); + // Try to find the override options.json + if let Some(path) = Self::convert_to_override_path(options_directory_path.as_path()) { + if path.join("options.json").exists() { + options_directory_path = path; + } + } + + let mut options = BabelOptions::from_test_path(options_directory_path.as_path()); options.cwd.replace(cwd.to_path_buf()); let transform_options = TransformOptions::try_from(&options); let path = path.to_path_buf(); @@ -59,14 +66,7 @@ impl TestCase { else if path.file_stem().is_some_and(|name| name == "input" || name == "input.d") && path.extension().is_some_and(|ext| VALID_EXTENSIONS.contains(&ext.to_str().unwrap())) { - if path - .strip_prefix(packages_root()) - .is_ok_and(|p| SNAPSHOT_TESTS.iter().any(|t| p.to_string_lossy().starts_with(t))) - { - TestCaseKind::Snapshot - } else { - TestCaseKind::Conformance - } + TestCaseKind::Conformance } else { return None; }; @@ -96,6 +96,28 @@ impl TestCase { source_type } + fn convert_to_override_path(path: &Path) -> Option { + path.strip_prefix(packages_root()).ok().map(|p| override_root().join(p)) + } + + fn get_output_path(&self) -> Option { + let babel_output_path = + self.path.parent().unwrap().read_dir().unwrap().find_map(|entry| { + let path = entry.ok()?.path(); + let file_stem = path.file_stem()?; + (file_stem == "output").then_some(path) + })?; + + // Try to find the override output path + if let Some(output_path) = Self::convert_to_override_path(&babel_output_path) { + if output_path.exists() { + return Some(output_path); + } + } + + Some(babel_output_path) + } + pub fn skip_test_case(&self) -> bool { let options = &self.options; @@ -203,17 +225,12 @@ impl TestCase { self.test_exec(filtered); } } - TestCaseKind::Snapshot => self.test_snapshot(filtered), } } /// Test conformance by comparing the parsed babel code and transformed code. fn test_conformance(&mut self, filtered: bool) { - let output_path = self.path.parent().unwrap().read_dir().unwrap().find_map(|entry| { - let path = entry.ok()?.path(); - let file_stem = path.file_stem()?; - (file_stem == "output").then_some(path) - }); + let output_path = self.get_output_path(); let allocator = Allocator::default(); let input = fs::read_to_string(&self.path).unwrap(); @@ -388,29 +405,6 @@ test("exec", () => {{ }})"# ) } - - fn test_snapshot(&self, filtered: bool) { - let result = match self.transform(HelperLoaderMode::External) { - Ok(code) => code, - Err(error) => error, - }; - let mut path = snap_root().join(self.path.strip_prefix(packages_root()).unwrap()); - path.set_file_name("output"); - let input_extension = self.path.extension().unwrap().to_str().unwrap(); - let extension = - input_extension.chars().map(|c| if c == 't' { 'j' } else { c }).collect::(); - path.set_extension(extension); - if filtered { - println!("Input path: {:?}", &self.path); - println!("Output path: {path:?}"); - println!("Input:\n{}\n", fs::read_to_string(&self.path).unwrap()); - println!("Output:\n{result}\n"); - } - if fs::write(&path, &result).is_err() { - fs::create_dir_all(path.parent().unwrap()).unwrap(); - fs::write(path, &result).unwrap(); - } - } } fn get_babel_error(error: &str) -> String { diff --git a/tasks/transform_conformance/update_fixtures.js b/tasks/transform_conformance/update_fixtures.js index 8b9a61c220acd..9f5b9166152c1 100644 --- a/tasks/transform_conformance/update_fixtures.js +++ b/tasks/transform_conformance/update_fixtures.js @@ -13,8 +13,7 @@ // (or maybe don't - what does this option mean?) import { transformFileAsync } from '@babel/core'; -import assert from 'assert'; -import { copyFile, readdir, readFile, rename, writeFile } from 'fs/promises'; +import { readdir, readFile, rename, writeFile } from 'fs/promises'; import { extname, join as pathJoin } from 'path'; const PACKAGES = [ @@ -28,7 +27,10 @@ const FILTER_OUT_PLUGINS = [ 'transform-destructuring', ]; -const PACKAGES_PATH = pathJoin(import.meta.dirname, '../coverage/babel/packages'); +const PACKAGES_PATH = pathJoin( + import.meta.dirname, + '../coverage/babel/packages', +); const OVERRIDES_PATH = pathJoin(import.meta.dirname, 'overrides'); // Copied from `@babel/helper-transform-fixture-test-runner` @@ -52,7 +54,12 @@ async function updateDir(dirPath, options, hasChangedOptions) { const dirFiles = []; const filenames = { options: null, input: null, output: null, exec: null }; - const overrides = { options: false, input: false, output: false, exec: false }; + const overrides = { + options: false, + input: false, + output: false, + exec: false, + }; // Find files in dir for (const file of files) { @@ -66,44 +73,6 @@ async function updateDir(dirPath, options, hasChangedOptions) { } } - // Find override files - const overridesDirPath = pathJoin(`${OVERRIDES_PATH}${dirPath.slice(PACKAGES_PATH.length)}`); - let overrideFiles; - try { - overrideFiles = await readdir(overridesDirPath, { withFileTypes: true }); - } catch (err) { - if (err?.code !== 'ENOENT') throw err; - } - - if (overrideFiles) { - for (const file of overrideFiles) { - if (file.isDirectory()) continue; - - const filename = file.name; - // `reason.txt` files are to document why override is used - if (filename === 'reason.txt') continue; - - const ext = extname(filename), - type = filename.slice(0, -ext.length), - path = pathJoin(overridesDirPath, filename); - - assert(Object.hasOwn(overrides, type), `Unexpected override file: ${path}`); - - const originalPath = pathJoin(dirPath, filename); - if (filenames[type]) { - const originalFilename = filenames[type]; - assert(originalFilename === filename, `Unmatched override file: ${path} (original: ${originalFilename})`); - await backupFile(originalPath); - } - - filenames[type] = filename; - overrides[type] = true; - if (type === 'options') hasChangedOptions = true; - - await copyFile(path, originalPath); - } - } - // Update options, save to file, and merge options with parent if (filenames.options) { const path = pathJoin(dirPath, filenames.options); @@ -117,7 +86,11 @@ async function updateDir(dirPath, options, hasChangedOptions) { } // Run Babel with updated options/input - if (filenames.output && (hasChangedOptions || overrides.input) && !overrides.output) { + if ( + filenames.output && + (hasChangedOptions || overrides.input) && + !overrides.output + ) { const inputPath = pathJoin(dirPath, filenames.input), outputPath = pathJoin(dirPath, filenames.output); await backupFile(outputPath); @@ -165,7 +138,12 @@ function updateOptions(options) { * @returns {undefined} */ async function transform(inputPath, outputPath, options) { - options = { ...options, configFile: false, babelrc: false, cwd: import.meta.dirname }; + options = { + ...options, + configFile: false, + babelrc: false, + cwd: import.meta.dirname, + }; delete options.SKIP_babel7plugins_babel8core; delete options.minNodeVersion; @@ -179,9 +157,11 @@ async function transform(inputPath, outputPath, options) { return plugin; } - if (options.presets) options.presets = options.presets.map(preset => prefixName(preset, 'preset')); + if (options.presets) { + options.presets = options.presets.map((preset) => prefixName(preset, 'preset')); + } - options.plugins = (options.plugins || []).map(plugin => prefixName(plugin, 'plugin')); + options.plugins = (options.plugins || []).map((plugin) => prefixName(plugin, 'plugin')); let addExternalHelpersPlugin = true; if (Object.hasOwn(options, 'externalHelpers')) { @@ -190,7 +170,10 @@ async function transform(inputPath, outputPath, options) { } if (addExternalHelpersPlugin) { - options.plugins.push(['@babel/plugin-external-helpers', { helperVersion: EXTERNAL_HELPERS_VERSION }]); + options.plugins.push([ + '@babel/plugin-external-helpers', + { helperVersion: EXTERNAL_HELPERS_VERSION }, + ]); } const { code } = await transformFileAsync(inputPath, options);