From fbaafcb4c7e5649aba4a5517277551fada59f6f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 6 Feb 2022 06:44:13 +0000 Subject: [PATCH 1/7] Build(deps): Bump @babel/parser from 7.16.12 to 7.17.0 Bumps [@babel/parser](https://github.com/babel/babel/tree/HEAD/packages/babel-parser) from 7.16.12 to 7.17.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.17.0/packages/babel-parser) --- updated-dependencies: - dependency-name: "@babel/parser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 4467955cb8dc..bfe8b695dd7a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "dependencies": { "@angular/compiler": "12.2.16", "@babel/code-frame": "7.16.7", - "@babel/parser": "7.16.12", + "@babel/parser": "7.17.0", "@glimmer/syntax": "0.83.1", "@iarna/toml": "2.2.5", "@typescript-eslint/typescript-estree": "5.10.2", diff --git a/yarn.lock b/yarn.lock index 2b9ceda383d1..002654f7c06d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -309,12 +309,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.16.12": - version "7.16.12" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" - integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0", "@babel/parser@^7.7.2": +"@babel/parser@7.17.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0", "@babel/parser@^7.7.2": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== From 244e91f0ddf37a79841fc9bd8cd157d45c287174 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Feb 2022 04:36:14 +0000 Subject: [PATCH 2/7] Build(deps): Bump @babel/parser from 7.16.12 to 7.17.0 Bumps [@babel/parser](https://github.com/babel/babel/tree/HEAD/packages/babel-parser) from 7.16.12 to 7.17.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.17.0/packages/babel-parser) --- updated-dependencies: - dependency-name: "@babel/parser" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 0105075d46df..589c4aa4682b 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "dependencies": { "@angular/compiler": "12.2.16", "@babel/code-frame": "7.16.7", - "@babel/parser": "7.16.12", + "@babel/parser": "7.17.0", "@glimmer/syntax": "0.83.1", "@iarna/toml": "2.2.5", "@typescript-eslint/typescript-estree": "5.10.2", diff --git a/yarn.lock b/yarn.lock index 18227c0a2f74..821b59ea6410 100644 --- a/yarn.lock +++ b/yarn.lock @@ -281,12 +281,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.16.12": - version "7.16.12" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" - integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0": +"@babel/parser@7.17.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== From 343108aa52bcd6eaf881ac92dd09c3d072a0a1be Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 7 Feb 2022 12:53:11 +0800 Subject: [PATCH 3/7] Update snapshot --- .../__snapshots__/debug-print-comments.js.snap | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap b/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap index 45e3f90c1288..260d1cc9dcc6 100644 --- a/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap +++ b/tests/integration/__tests__/__snapshots__/debug-print-comments.js.snap @@ -8,8 +8,8 @@ exports[`prints information for debugging comment attachment with --debug-print- \\"start\\": 0, \\"end\\": 7, \\"loc\\": { - \\"start\\": { \\"line\\": 1, \\"column\\": 0 }, - \\"end\\": { \\"line\\": 1, \\"column\\": 7 } + \\"start\\": { \\"line\\": 1, \\"column\\": 0, \\"index\\": 0 }, + \\"end\\": { \\"line\\": 1, \\"column\\": 7, \\"index\\": 7 } }, \\"placement\\": \\"endOfLine\\", \\"leading\\": true, @@ -22,8 +22,8 @@ exports[`prints information for debugging comment attachment with --debug-print- \\"start\\": 24, \\"end\\": 31, \\"loc\\": { - \\"start\\": { \\"line\\": 2, \\"column\\": 16 }, - \\"end\\": { \\"line\\": 2, \\"column\\": 23 } + \\"start\\": { \\"line\\": 2, \\"column\\": 16, \\"index\\": 24 }, + \\"end\\": { \\"line\\": 2, \\"column\\": 23, \\"index\\": 31 } }, \\"placement\\": \\"remaining\\", \\"leading\\": false, @@ -36,8 +36,8 @@ exports[`prints information for debugging comment attachment with --debug-print- \\"start\\": 34, \\"end\\": 38, \\"loc\\": { - \\"start\\": { \\"line\\": 2, \\"column\\": 26 }, - \\"end\\": { \\"line\\": 2, \\"column\\": 30 } + \\"start\\": { \\"line\\": 2, \\"column\\": 26, \\"index\\": 34 }, + \\"end\\": { \\"line\\": 2, \\"column\\": 30, \\"index\\": 38 } }, \\"placement\\": \\"remaining\\", \\"leading\\": false, From c8184c6962e67fa5bf5c38ef635fe2586ad2581d Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 7 Feb 2022 12:54:18 +0800 Subject: [PATCH 4/7] Update snapshot --- .../integration/__tests__/__snapshots__/debug-print-ast.js.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap b/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap index bb55eecf05ad..6c4c00f94502 100644 --- a/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap +++ b/tests/integration/__tests__/__snapshots__/debug-print-ast.js.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`prints information for debugging AST --debug-print-ast (stdout) 1`] = `"{\\"type\\":\\"File\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18}},\\"range\\":[0,18],\\"errors\\":[],\\"program\\":{\\"type\\":\\"Program\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18}},\\"range\\":[0,18],\\"sourceType\\":\\"module\\",\\"interpreter\\":null,\\"body\\":[{\\"type\\":\\"VariableDeclaration\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18}},\\"range\\":[0,18],\\"declarations\\":[{\\"type\\":\\"VariableDeclarator\\",\\"start\\":6,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6},\\"end\\":{\\"line\\":1,\\"column\\":17}},\\"range\\":[6,17],\\"id\\":{\\"type\\":\\"Identifier\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9},\\"identifierName\\":\\"foo\\"},\\"range\\":[6,9],\\"name\\":\\"foo\\"},\\"init\\":{\\"type\\":\\"StringLiteral\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17}},\\"range\\":[12,17],\\"extra\\":{\\"rawValue\\":\\"foo\\",\\"raw\\":\\"'foo'\\"},\\"value\\":\\"foo\\"}}],\\"kind\\":\\"const\\"}],\\"directives\\":[]},\\"comments\\":[],\\"tokens\\":[{\\"type\\":{\\"label\\":\\"const\\",\\"keyword\\":\\"const\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"const\\",\\"start\\":0,\\"end\\":5,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0},\\"end\\":{\\"line\\":1,\\"column\\":5}}},{\\"type\\":{\\"label\\":\\"name\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9}}},{\\"type\\":{\\"label\\":\\"=\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":true,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"=\\",\\"start\\":10,\\"end\\":11,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":10},\\"end\\":{\\"line\\":1,\\"column\\":11}}},{\\"type\\":{\\"label\\":\\"string\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17}}},{\\"type\\":{\\"label\\":\\";\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":17,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":17},\\"end\\":{\\"line\\":1,\\"column\\":18}}},{\\"type\\":{\\"label\\":\\"eof\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":18,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":18},\\"end\\":{\\"line\\":1,\\"column\\":18}}}]}"`; +exports[`prints information for debugging AST --debug-print-ast (stdout) 1`] = `"{\\"type\\":\\"File\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"errors\\":[],\\"program\\":{\\"type\\":\\"Program\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"sourceType\\":\\"module\\",\\"interpreter\\":null,\\"body\\":[{\\"type\\":\\"VariableDeclaration\\",\\"start\\":0,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}},\\"range\\":[0,18],\\"declarations\\":[{\\"type\\":\\"VariableDeclarator\\",\\"start\\":6,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}},\\"range\\":[6,17],\\"id\\":{\\"type\\":\\"Identifier\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9,\\"index\\":9},\\"identifierName\\":\\"foo\\"},\\"range\\":[6,9],\\"name\\":\\"foo\\"},\\"init\\":{\\"type\\":\\"StringLiteral\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12,\\"index\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}},\\"range\\":[12,17],\\"extra\\":{\\"rawValue\\":\\"foo\\",\\"raw\\":\\"'foo'\\"},\\"value\\":\\"foo\\"}}],\\"kind\\":\\"const\\"}],\\"directives\\":[]},\\"comments\\":[],\\"tokens\\":[{\\"type\\":{\\"label\\":\\"const\\",\\"keyword\\":\\"const\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"const\\",\\"start\\":0,\\"end\\":5,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":0,\\"index\\":0},\\"end\\":{\\"line\\":1,\\"column\\":5,\\"index\\":5}}},{\\"type\\":{\\"label\\":\\"name\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":6,\\"end\\":9,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":6,\\"index\\":6},\\"end\\":{\\"line\\":1,\\"column\\":9,\\"index\\":9}}},{\\"type\\":{\\"label\\":\\"=\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":true,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"=\\",\\"start\\":10,\\"end\\":11,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":10,\\"index\\":10},\\"end\\":{\\"line\\":1,\\"column\\":11,\\"index\\":11}}},{\\"type\\":{\\"label\\":\\"string\\",\\"beforeExpr\\":false,\\"startsExpr\\":true,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"value\\":\\"foo\\",\\"start\\":12,\\"end\\":17,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":12,\\"index\\":12},\\"end\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17}}},{\\"type\\":{\\"label\\":\\";\\",\\"beforeExpr\\":true,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":17,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":17,\\"index\\":17},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}}},{\\"type\\":{\\"label\\":\\"eof\\",\\"beforeExpr\\":false,\\"startsExpr\\":false,\\"rightAssociative\\":false,\\"isLoop\\":false,\\"isAssign\\":false,\\"prefix\\":false,\\"postfix\\":false,\\"binop\\":null,\\"updateContext\\":null},\\"start\\":18,\\"end\\":18,\\"loc\\":{\\"start\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18},\\"end\\":{\\"line\\":1,\\"column\\":18,\\"index\\":18}}}]}"`; exports[`prints information for debugging AST --debug-print-ast (write) 1`] = `Array []`; From 9f1c94daeb237f87e371d23d34b2ba5b60f19fbc Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 7 Feb 2022 13:04:28 +0800 Subject: [PATCH 5/7] Add test for Reinterpret << when parsing TS type arguments babel/babel#14145 --- .../type-arguments-bit-shift-left-like/1.ts | 1 + .../type-arguments-bit-shift-left-like/2.ts | 1 + .../type-arguments-bit-shift-left-like/3.ts | 1 + .../type-arguments-bit-shift-left-like/4.ts | 1 + .../type-arguments-bit-shift-left-like/5.tsx | 1 + .../type-arguments-bit-shift-left-like/6.ts | 1 + .../__snapshots__/jsfmt.spec.js.snap | 107 ++++++++++++++++++ .../jsfmt.spec.js | 3 + 8 files changed, 116 insertions(+) create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/1.ts create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/2.ts create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/3.ts create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/4.ts create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/5.tsx create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/6.ts create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/1.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/1.ts new file mode 100644 index 000000000000..22101bcfd01d --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/1.ts @@ -0,0 +1 @@ +f<<(x) diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/2.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/2.ts new file mode 100644 index 000000000000..94b8ba09b57d --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/2.ts @@ -0,0 +1 @@ +f<(v: T) => void>(); diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/3.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/3.ts new file mode 100644 index 000000000000..8db082343420 --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/3.ts @@ -0,0 +1 @@ +(class extends f<(v: T) => void> {}); diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts new file mode 100644 index 000000000000..7316ad25571d --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts @@ -0,0 +1 @@ +(@f<(v: T) => void>() class {}); diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/5.tsx b/tests/format/typescript/type-arguments-bit-shift-left-like/5.tsx new file mode 100644 index 000000000000..5ad697cb46a8 --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/5.tsx @@ -0,0 +1 @@ +(v: T) => void> /> diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/6.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/6.ts new file mode 100644 index 000000000000..7991a4bbd640 --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/6.ts @@ -0,0 +1 @@ +new f<(v: T) => void>(); diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000000..5108ca955b08 --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,107 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`1.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +f<<(x) + +=====================================output===================================== +f << (x); + +================================================================================ +`; + +exports[`2.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +f<(v: T) => void>(); + +=====================================output===================================== +f<(v: T) => void>(); + +================================================================================ +`; + +exports[`3.ts [babel-ts] format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +(class extends f<(v: T) => void> {}); + +=====================================output===================================== +(class extends f<(v: T) => void> {}); + +================================================================================ +`; + +exports[`3.ts [typescript] format 1`] = ` +"',' expected. (1:17) +> 1 | (class extends f<(v: T) => void> {}); + | ^ + 2 |" +`; + +exports[`4.ts [babel-ts] format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +(@f<(v: T) => void>() class {}); + +=====================================output===================================== +@f<(v: T) => void>() +class {}; + +================================================================================ +`; + +exports[`4.ts [typescript] format 1`] = ` +"Expression expected. (1:2) +> 1 | (@f<(v: T) => void>() class {}); + | ^ + 2 |" +`; + +exports[`5.tsx [babel-ts] format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +(v: T) => void> /> + +=====================================output===================================== +(v: T) => void> />; + +================================================================================ +`; + +exports[`5.tsx [typescript] format 1`] = ` +"Identifier expected. (1:11) +> 1 | (v: T) => void> /> + | ^ + 2 |" +`; + +exports[`6.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +new f<(v: T) => void>(); + +=====================================output===================================== +new f<(v: T) => void>(); + +================================================================================ +`; diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js b/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js new file mode 100644 index 000000000000..2775ae27811f --- /dev/null +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js @@ -0,0 +1,3 @@ +run_spec(__dirname, ["typescript"], { + errors: { typescript: ["3.ts", "4.ts", "5.tsx"] }, +}); From a509907ddaa18cc0877fa0a0e929f2e1689d54f8 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 7 Feb 2022 13:13:24 +0800 Subject: [PATCH 6/7] Support `regexpUnicodeSets` --- src/language-js/parse/babel.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 35 ++++++++++++ tests/format/js/babel-plugins/jsfmt.spec.js | 3 + tests/format/js/babel-plugins/regex-v-flag.js | 1 + .../js/regex/__snapshots__/jsfmt.spec.js.snap | 42 ++++++++++++++ tests/format/js/regex/jsfmt.spec.js | 6 +- tests/format/js/regex/v-flag.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 57 +++++++++++++++++++ .../js/regex-v-u-flags/invalid-flags.js | 1 + .../js/regex-v-u-flags/invalid-flags2.js | 1 + .../errors/js/regex-v-u-flags/jsfmt.spec.js | 1 + 11 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 tests/format/js/babel-plugins/regex-v-flag.js create mode 100644 tests/format/js/regex/v-flag.js create mode 100644 tests/format/misc/errors/js/regex-v-u-flags/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/format/misc/errors/js/regex-v-u-flags/invalid-flags.js create mode 100644 tests/format/misc/errors/js/regex-v-u-flags/invalid-flags2.js create mode 100644 tests/format/misc/errors/js/regex-v-u-flags/jsfmt.spec.js diff --git a/src/language-js/parse/babel.js b/src/language-js/parse/babel.js index 62a581d49067..5f3e92d64a97 100644 --- a/src/language-js/parse/babel.js +++ b/src/language-js/parse/babel.js @@ -37,6 +37,7 @@ const parseOptions = { "decimal", "moduleBlocks", "asyncDoExpressions", + "regexpUnicodeSets", ], tokens: true, ranges: true, diff --git a/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap index 75bb17d9435b..fea551cccdf9 100644 --- a/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/babel-plugins/__snapshots__/jsfmt.spec.js.snap @@ -2104,6 +2104,41 @@ const tuple1 = #[1, 2, 3]; ================================================================================ `; +exports[`regex-v-flag.js [acorn] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`regex-v-flag.js [espree] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`regex-v-flag.js [meriyah] format 1`] = ` +"[1:3]: Unexpected regular expression flag (1:3) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`regex-v-flag.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "babel-ts", "babel-flow"] +printWidth: 80 + | printWidth +=====================================input====================================== +/a/v; + +=====================================output===================================== +/a/v; + +================================================================================ +`; + exports[`throw-expressions.js [acorn] format 1`] = ` "Unexpected token (3:23) 1 | // https://babeljs.io/docs/en/babel-plugin-proposal-throw-expressions diff --git a/tests/format/js/babel-plugins/jsfmt.spec.js b/tests/format/js/babel-plugins/jsfmt.spec.js index 47c0bf1c971a..4adf88989ff5 100644 --- a/tests/format/js/babel-plugins/jsfmt.spec.js +++ b/tests/format/js/babel-plugins/jsfmt.spec.js @@ -24,6 +24,7 @@ run_spec(__dirname, ["babel", "babel-ts", "babel-flow"], { "v8intrinsic.js", "module-blocks.js", "async-do-expressions.js", + "regex-v-flag.js", ], espree: [ "decimal.js", @@ -46,6 +47,7 @@ run_spec(__dirname, ["babel", "babel-ts", "babel-flow"], { "v8intrinsic.js", "module-blocks.js", "async-do-expressions.js", + "regex-v-flag.js", ], meriyah: [ "decimal.js", @@ -71,6 +73,7 @@ run_spec(__dirname, ["babel", "babel-ts", "babel-flow"], { "module-string-names.js", "module-blocks.js", "async-do-expressions.js", + "regex-v-flag.js", ], }, }); diff --git a/tests/format/js/babel-plugins/regex-v-flag.js b/tests/format/js/babel-plugins/regex-v-flag.js new file mode 100644 index 000000000000..04ee6ccf77ed --- /dev/null +++ b/tests/format/js/babel-plugins/regex-v-flag.js @@ -0,0 +1 @@ +/a/v; diff --git a/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap b/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap index 16fca66a659a..738db240dac3 100644 --- a/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/js/regex/__snapshots__/jsfmt.spec.js.snap @@ -41,3 +41,45 @@ printWidth: 80 ================================================================================ `; + +exports[`v-flag.js [acorn] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`v-flag.js [espree] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`v-flag.js [flow] format 1`] = ` +"Invalid flags supplied to RegExp constructor 'v' (1:5) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`v-flag.js [meriyah] format 1`] = ` +"[1:3]: Unexpected regular expression flag (1:3) +> 1 | /a/v; + | ^ + 2 |" +`; + +exports[`v-flag.js format 1`] = ` +====================================options===================================== +parsers: ["babel", "flow", "typescript"] +printWidth: 80 + | printWidth +=====================================input====================================== +/a/v; + +=====================================output===================================== +/a/v; + +================================================================================ +`; diff --git a/tests/format/js/regex/jsfmt.spec.js b/tests/format/js/regex/jsfmt.spec.js index a833212bd909..1f132f341df6 100644 --- a/tests/format/js/regex/jsfmt.spec.js +++ b/tests/format/js/regex/jsfmt.spec.js @@ -1,6 +1,8 @@ run_spec(__dirname, ["babel", "flow", "typescript"], { errors: { - flow: ["d-flag.js"], - meriyah: ["d-flag.js"], + flow: ["d-flag.js", "v-flag.js"], + acorn: ["v-flag.js"], + espree: ["v-flag.js"], + meriyah: ["d-flag.js", "v-flag.js"], }, }); diff --git a/tests/format/js/regex/v-flag.js b/tests/format/js/regex/v-flag.js new file mode 100644 index 000000000000..04ee6ccf77ed --- /dev/null +++ b/tests/format/js/regex/v-flag.js @@ -0,0 +1 @@ +/a/v; diff --git a/tests/format/misc/errors/js/regex-v-u-flags/__snapshots__/jsfmt.spec.js.snap b/tests/format/misc/errors/js/regex-v-u-flags/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000000..696b2203f7e3 --- /dev/null +++ b/tests/format/misc/errors/js/regex-v-u-flags/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,57 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`invalid-flags.js [acorn] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/ugv; + | ^ + 2 |" +`; + +exports[`invalid-flags.js [babel] format 1`] = ` +"The 'u' and 'v' regular expression flags cannot be enabled at the same time. (1:7) +> 1 | /a/ugv; + | ^ + 2 |" +`; + +exports[`invalid-flags.js [espree] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/ugv; + | ^ + 2 |" +`; + +exports[`invalid-flags.js [meriyah] format 1`] = ` +"[1:5]: Unexpected regular expression flag (1:5) +> 1 | /a/ugv; + | ^ + 2 |" +`; + +exports[`invalid-flags2.js [acorn] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/vu; + | ^ + 2 |" +`; + +exports[`invalid-flags2.js [babel] format 1`] = ` +"The 'u' and 'v' regular expression flags cannot be enabled at the same time. (1:6) +> 1 | /a/vu; + | ^ + 2 |" +`; + +exports[`invalid-flags2.js [espree] format 1`] = ` +"Invalid regular expression flag (1:2) +> 1 | /a/vu; + | ^ + 2 |" +`; + +exports[`invalid-flags2.js [meriyah] format 1`] = ` +"[1:3]: Unexpected regular expression flag (1:3) +> 1 | /a/vu; + | ^ + 2 |" +`; diff --git a/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags.js b/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags.js new file mode 100644 index 000000000000..5dcdc60dfb77 --- /dev/null +++ b/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags.js @@ -0,0 +1 @@ +/a/ugv; diff --git a/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags2.js b/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags2.js new file mode 100644 index 000000000000..ce76d00a00c9 --- /dev/null +++ b/tests/format/misc/errors/js/regex-v-u-flags/invalid-flags2.js @@ -0,0 +1 @@ +/a/vu; diff --git a/tests/format/misc/errors/js/regex-v-u-flags/jsfmt.spec.js b/tests/format/misc/errors/js/regex-v-u-flags/jsfmt.spec.js new file mode 100644 index 000000000000..0b4e24dc0d44 --- /dev/null +++ b/tests/format/misc/errors/js/regex-v-u-flags/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["babel", "acorn", "espree", "meriyah"]); From 84d52514b3922912b24fe9f5826936543709c386 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 7 Feb 2022 13:46:23 +0800 Subject: [PATCH 7/7] Remove edge case --- .../type-arguments-bit-shift-left-like/4.ts | 1 - .../__snapshots__/jsfmt.spec.js.snap | 22 ------------------- .../jsfmt.spec.js | 2 +- 3 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 tests/format/typescript/type-arguments-bit-shift-left-like/4.ts diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts b/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts deleted file mode 100644 index 7316ad25571d..000000000000 --- a/tests/format/typescript/type-arguments-bit-shift-left-like/4.ts +++ /dev/null @@ -1 +0,0 @@ -(@f<(v: T) => void>() class {}); diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap b/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap index 5108ca955b08..b7feff584561 100644 --- a/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/__snapshots__/jsfmt.spec.js.snap @@ -49,28 +49,6 @@ exports[`3.ts [typescript] format 1`] = ` 2 |" `; -exports[`4.ts [babel-ts] format 1`] = ` -====================================options===================================== -parsers: ["typescript"] -printWidth: 80 - | printWidth -=====================================input====================================== -(@f<(v: T) => void>() class {}); - -=====================================output===================================== -@f<(v: T) => void>() -class {}; - -================================================================================ -`; - -exports[`4.ts [typescript] format 1`] = ` -"Expression expected. (1:2) -> 1 | (@f<(v: T) => void>() class {}); - | ^ - 2 |" -`; - exports[`5.tsx [babel-ts] format 1`] = ` ====================================options===================================== parsers: ["typescript"] diff --git a/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js b/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js index 2775ae27811f..b3acebe65b16 100644 --- a/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js +++ b/tests/format/typescript/type-arguments-bit-shift-left-like/jsfmt.spec.js @@ -1,3 +1,3 @@ run_spec(__dirname, ["typescript"], { - errors: { typescript: ["3.ts", "4.ts", "5.tsx"] }, + errors: { typescript: ["3.ts", "5.tsx"] }, });