From 0727d1f0f97c1e5c80cc3cda0fd4ee44ed4b65dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Apr 2022 20:13:21 +0900 Subject: [PATCH] Build(deps): Bump meriyah from 4.2.0 to 4.2.1 (#12567) * Build(deps): Bump meriyah from 4.2.0 to 4.2.1 Bumps [meriyah](https://github.com/meriyah/meriyah) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/meriyah/meriyah/releases) - [Changelog](https://github.com/meriyah/meriyah/blob/master/CHANGELOG.md) - [Commits](https://github.com/meriyah/meriyah/compare/v4.2.0...v4.2.1) --- updated-dependencies: - dependency-name: meriyah dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Add test for https://github.com/meriyah/meriyah/commit/6de707a0efb3053767deaa36b1ed6979b0d3f873 * Test https://github.com/meriyah/meriyah/commit/37c63613771e5bc6e23b7da2d92e992c60dafc5a * Test https://github.com/meriyah/meriyah/commit/d757c6b20ae4f6f4e55a77179726db36cf2bd50b * Add changelog Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: fisker Cheung --- changelog_unreleased/javascript/12567.md | 23 +++++ package.json | 2 +- .../classes/__snapshots__/jsfmt.spec.js.snap | 22 +++++ tests/format/js/classes/super.js | 5 ++ .../js/regex/__snapshots__/jsfmt.spec.js.snap | 16 ++++ tests/format/js/regex/multiple-flags.js | 2 + .../__snapshots__/jsfmt.spec.js.snap | 16 ++++ .../js/top-level-await/in-expression.js | 3 + .../jsx/jsx/__snapshots__/jsfmt.spec.js.snap | 88 +++++++++++++++++++ tests/format/jsx/jsx/regex.js | 4 + yarn.lock | 8 +- 11 files changed, 184 insertions(+), 5 deletions(-) create mode 100644 changelog_unreleased/javascript/12567.md create mode 100644 tests/format/js/classes/super.js create mode 100644 tests/format/js/regex/multiple-flags.js create mode 100644 tests/format/js/top-level-await/in-expression.js create mode 100644 tests/format/jsx/jsx/regex.js diff --git a/changelog_unreleased/javascript/12567.md b/changelog_unreleased/javascript/12567.md new file mode 100644 index 000000000000..4e3b7a8d9a56 --- /dev/null +++ b/changelog_unreleased/javascript/12567.md @@ -0,0 +1,23 @@ +#### Update `meriyah` to fix several bugs (#12567 by @fisker, fixes in [`meriyah`](https://github.com/meriyah/meriyah/) by @3cp) + +Fixes bugs when parsing following valid code: + +```js +foo(await bar()); +``` + +```js +const regex = /.*/ms; +``` + +```js +const element =

{/w/.test(s)}

; +``` + +```js +class A extends B { + #privateMethod() { + super.method(); + } +} +``` diff --git a/package.json b/package.json index 5f83ed50b167..82b321a78ca5 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "linguist-languages": "7.15.0", "lodash": "4.17.21", "mem": "9.0.2", - "meriyah": "4.2.0", + "meriyah": "4.2.1", "micromatch": "4.0.5", "minimist": "1.2.6", "n-readlines": "1.0.1", diff --git a/tests/format/js/classes/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/classes/__snapshots__/jsfmt.spec.js.snap index 29a155d74b08..d63c88d192e3 100644 --- a/tests/format/js/classes/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/classes/__snapshots__/jsfmt.spec.js.snap @@ -307,6 +307,28 @@ class B { ================================================================================ `; +exports[`super.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +class A extends B { + #a() { + super.x(); + } +} + +=====================================output===================================== +class A extends B { + #a() { + super.x(); + } +} + +================================================================================ +`; + exports[`ternary.js format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] diff --git a/tests/format/js/classes/super.js b/tests/format/js/classes/super.js new file mode 100644 index 000000000000..03eadf541756 --- /dev/null +++ b/tests/format/js/classes/super.js @@ -0,0 +1,5 @@ +class A extends B { + #a() { + super.x(); + } +} diff --git a/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap index 3413b6890051..aa295e37c9e7 100644 --- a/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap @@ -28,6 +28,22 @@ printWidth: 80 ================================================================================ `; +exports[`multiple-flags.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +/.*/ms; +/.*/my; + +=====================================output===================================== +/.*/ms; +/.*/my; + +================================================================================ +`; + exports[`test.js format 1`] = ` ====================================options===================================== parsers: ["babel", "flow", "typescript"] diff --git a/tests/format/js/regex/multiple-flags.js b/tests/format/js/regex/multiple-flags.js new file mode 100644 index 000000000000..f5a04f859c24 --- /dev/null +++ b/tests/format/js/regex/multiple-flags.js @@ -0,0 +1,2 @@ +/.*/ms; +/.*/my; diff --git a/tests/format/js/top-level-await/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/top-level-await/__snapshots__/jsfmt.spec.js.snap index 04b2cd75cf92..249b632a6672 100644 --- a/tests/format/js/top-level-await/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/top-level-await/__snapshots__/jsfmt.spec.js.snap @@ -13,3 +13,19 @@ await something(); ================================================================================ `; + +exports[`in-expression.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +call( +await something() +) + +=====================================output===================================== +call(await something()); + +================================================================================ +`; diff --git a/tests/format/js/top-level-await/in-expression.js b/tests/format/js/top-level-await/in-expression.js new file mode 100644 index 000000000000..d70f915226c0 --- /dev/null +++ b/tests/format/js/top-level-await/in-expression.js @@ -0,0 +1,3 @@ +call( +await something() +) diff --git a/tests/format/jsx/jsx/__snapshots__/jsfmt.spec.js.snap b/tests/format/jsx/jsx/__snapshots__/jsfmt.spec.js.snap index 15f6b0c45bdb..3c7df47d4033 100644 --- a/tests/format/jsx/jsx/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/jsx/jsx/__snapshots__/jsfmt.spec.js.snap @@ -4968,6 +4968,94 @@ singleQuote: true ================================================================================ `; +exports[`regex.js - {"singleQuote":false,"jsxSingleQuote":false} format 1`] = ` +====================================options===================================== +jsxSingleQuote: false +parsers: ["flow", "babel", "typescript"] +printWidth: 80 +singleQuote: false + | printWidth +=====================================input====================================== +x =
one
,
two
; +x = {} +x = {1/2} +x = {/w/.test(s)} + +=====================================output===================================== +(x =
one
), (
two
); +x = {}; +x = {1 / 2}; +x = {/w/.test(s)}; + +================================================================================ +`; + +exports[`regex.js - {"singleQuote":false,"jsxSingleQuote":true} format 1`] = ` +====================================options===================================== +jsxSingleQuote: true +parsers: ["flow", "babel", "typescript"] +printWidth: 80 +singleQuote: false + | printWidth +=====================================input====================================== +x =
one
,
two
; +x = {} +x = {1/2} +x = {/w/.test(s)} + +=====================================output===================================== +(x =
one
), (
two
); +x = {}; +x = {1 / 2}; +x = {/w/.test(s)}; + +================================================================================ +`; + +exports[`regex.js - {"singleQuote":true,"jsxSingleQuote":false} format 1`] = ` +====================================options===================================== +jsxSingleQuote: false +parsers: ["flow", "babel", "typescript"] +printWidth: 80 +singleQuote: true + | printWidth +=====================================input====================================== +x =
one
,
two
; +x = {} +x = {1/2} +x = {/w/.test(s)} + +=====================================output===================================== +(x =
one
), (
two
); +x = {}; +x = {1 / 2}; +x = {/w/.test(s)}; + +================================================================================ +`; + +exports[`regex.js - {"singleQuote":true,"jsxSingleQuote":true} format 1`] = ` +====================================options===================================== +jsxSingleQuote: true +parsers: ["flow", "babel", "typescript"] +printWidth: 80 +singleQuote: true + | printWidth +=====================================input====================================== +x =
one
,
two
; +x = {} +x = {1/2} +x = {/w/.test(s)} + +=====================================output===================================== +(x =
one
), (
two
); +x = {}; +x = {1 / 2}; +x = {/w/.test(s)}; + +================================================================================ +`; + exports[`return-statement.js - {"singleQuote":false,"jsxSingleQuote":false} format 1`] = ` ====================================options===================================== jsxSingleQuote: false diff --git a/tests/format/jsx/jsx/regex.js b/tests/format/jsx/jsx/regex.js new file mode 100644 index 000000000000..9f92918c6872 --- /dev/null +++ b/tests/format/jsx/jsx/regex.js @@ -0,0 +1,4 @@ +x =
one
,
two
; +x = {} +x = {1/2} +x = {/w/.test(s)} diff --git a/yarn.lock b/yarn.lock index 2f4784593fec..1c04baf4d50f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4943,10 +4943,10 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -meriyah@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/meriyah/-/meriyah-4.2.0.tgz#29d28c37ac7b67f8b9aaa92df0b8ac12469fe98b" - integrity sha512-fCVh5GB9YT53Bq14l00HLYE3i9DywrY0JVZxbk0clXWDuMsUKKwluvC5sY0bMBqHbnIbpIjfSSIsnrzbauA8Yw== +meriyah@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/meriyah/-/meriyah-4.2.1.tgz#2a5c9ac2f4a16673afa31af1266ce491a8973bb4" + integrity sha512-Uv5sWsmjFNC6IszEmHo5bzJLL+kqjQ/VrEj9Agqsqtx7B6dcxHnHLew1ioJD19HNXrxrRZltPi+NVh12I8RLXA== micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5"