From f075333833ef3353d86d73a5d1d630c35cf891da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 02:56:47 +0800 Subject: [PATCH] Update Yuku parser to v0.9.1 (#19915) Co-authored-by: fisker --- package.json | 4 +- .../config/format-test/failed-format-tests.js | 6 +- .../__snapshots__/format.test.js.snap | 36 +++++ .../for-in-invalid-initializer/format.test.js | 4 +- .../js/for/__snapshots__/format.test.js.snap | 24 +-- yarn.lock | 142 +++++++++--------- 6 files changed, 124 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 5e58bf809..47e1c1fe6 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "wcwidth.js": "2.0.0", "yaml": "2.9.0", "yaml-unist-parser": "3.2.0", - "yuku-parser": "0.9.0" + "yuku-parser": "0.9.1" }, "devDependencies": { "@babel/generator": "8.0.0", @@ -140,7 +140,7 @@ "@types/jsesc": "3.0.3", "@typescript-eslint/eslint-plugin": "8.67.0", "@typescript-eslint/parser": "8.67.0", - "@yuku-parser/wasm": "0.9.0", + "@yuku-parser/wasm": "0.9.1", "base64-arraybuffer-es6": "3.1.0", "browserslist": "4.28.8", "browserslist-to-esbuild": "2.1.1", diff --git a/tests/config/format-test/failed-format-tests.js b/tests/config/format-test/failed-format-tests.js index bbdfce7d0..706b175f6 100644 --- a/tests/config/format-test/failed-format-tests.js +++ b/tests/config/format-test/failed-format-tests.js @@ -56,11 +56,7 @@ const disabledTests = new Map( oxc: [], "oxc-ts": [], yuku: ["js/await/await-with-parens.js"], - "yuku-ts": [ - "js/await/await-with-parens.js", - "js/decorators/rest-parameters/constructor.js", - "js/decorators/rest-parameters/method.js", - ], + "yuku-ts": ["js/await/await-with-parens.js"], hermes: [ "js/await/like-call.js", // Different result "jsx/top-level-await/test.jsx", diff --git a/tests/format/js/_errors_/for-in-invalid-initializer/__snapshots__/format.test.js.snap b/tests/format/js/_errors_/for-in-invalid-initializer/__snapshots__/format.test.js.snap index f9a569f8b..5fb3064b8 100644 --- a/tests/format/js/_errors_/for-in-invalid-initializer/__snapshots__/format.test.js.snap +++ b/tests/format/js/_errors_/for-in-invalid-initializer/__snapshots__/format.test.js.snap @@ -56,6 +56,18 @@ exports[`snippet: #0 format[typescript] 1`] = ` Cause: The variable declaration of a 'for...in' statement cannot have an initializer." `; +exports[`snippet: #0 format[yuku] 1`] = ` +"for-in loop variable declaration may not have an initializer (1:10) +> 1 | for (let a = 1 in b); + | ^^^^^" +`; + +exports[`snippet: #0 format[yuku-ts] 1`] = ` +"for-in loop variable declaration may not have an initializer (1:10) +> 1 | for (let a = 1 in b); + | ^^^^^" +`; + exports[`snippet: #1 format[acorn] 1`] = ` "for-in loop variable declaration may not have an initializer (1:6) > 1 | for (const a = 1 in b); @@ -112,6 +124,18 @@ exports[`snippet: #1 format[typescript] 1`] = ` Cause: The variable declaration of a 'for...in' statement cannot have an initializer." `; +exports[`snippet: #1 format[yuku] 1`] = ` +"for-in loop variable declaration may not have an initializer (1:12) +> 1 | for (const a = 1 in b); + | ^^^^^" +`; + +exports[`snippet: #1 format[yuku-ts] 1`] = ` +"for-in loop variable declaration may not have an initializer (1:12) +> 1 | for (const a = 1 in b); + | ^^^^^" +`; + exports[`snippet: #2 format[acorn] 1`] = ` "for-in loop variable declaration may not have an initializer (1:7) > 1 | {for (using a = 1 in b);} @@ -167,3 +191,15 @@ exports[`snippet: #2 format[typescript] 1`] = ` | ^^^^^ Cause: The variable declaration of a 'for...in' statement cannot have an initializer." `; + +exports[`snippet: #2 format[yuku] 1`] = ` +"The left-hand side of a for...in statement cannot be an using declaration. (1:7) +> 1 | {for (using a = 1 in b);} + | ^^^^^^^^^^^" +`; + +exports[`snippet: #2 format[yuku-ts] 1`] = ` +"The left-hand side of a for...in statement cannot be an using declaration. (1:7) +> 1 | {for (using a = 1 in b);} + | ^^^^^^^^^^^" +`; diff --git a/tests/format/js/_errors_/for-in-invalid-initializer/format.test.js b/tests/format/js/_errors_/for-in-invalid-initializer/format.test.js index 7c4e3c572..8c82d0ce0 100644 --- a/tests/format/js/_errors_/for-in-invalid-initializer/format.test.js +++ b/tests/format/js/_errors_/for-in-invalid-initializer/format.test.js @@ -16,8 +16,8 @@ runFormatTest( // "babel-ts", "oxc", "oxc-ts", - // "yuku", - // "yuku-ts", + "yuku", + "yuku-ts", "flow", "hermes", // "__babel_estree", diff --git a/tests/format/js/for/__snapshots__/format.test.js.snap b/tests/format/js/for/__snapshots__/format.test.js.snap index 1d031f572..a61f4a91c 100644 --- a/tests/format/js/for/__snapshots__/format.test.js.snap +++ b/tests/format/js/for/__snapshots__/format.test.js.snap @@ -916,25 +916,25 @@ Cause: ',' expected." `; exports[`for-in-with-initializer.js format[yuku] 1`] = ` -"Expected ';' after for-loop init, but found ')' (4:33) +"for-in loop variable declaration may not have an initializer (3:10) + 1 | // https://github.com/babel/babel/blob/HEAD/packages/babel-generator/test/fixtures/parentheses/in-inside-for/input.js 2 | - 3 | for (var a = (b in c) in {}); -> 4 | for (var a = 1 || (b in c) in {}); - | ^ +> 3 | for (var a = (b in c) in {}); + | ^^^^^^^^^^^^ + 4 | for (var a = 1 || (b in c) in {}); 5 | for (var a = 1 + (2 || (b in c)) in {}); - 6 | for (var a = (() => b in c) in {}); - 7 | for (var a = 1 || (() => b in c) in {});" + 6 | for (var a = (() => b in c) in {});" `; exports[`for-in-with-initializer.js format[yuku-ts] 1`] = ` -"Expected ';' after for-loop init, but found ')' (4:33) +"for-in loop variable declaration may not have an initializer (3:10) + 1 | // https://github.com/babel/babel/blob/HEAD/packages/babel-generator/test/fixtures/parentheses/in-inside-for/input.js 2 | - 3 | for (var a = (b in c) in {}); -> 4 | for (var a = 1 || (b in c) in {}); - | ^ +> 3 | for (var a = (b in c) in {}); + | ^^^^^^^^^^^^ + 4 | for (var a = 1 || (b in c) in {}); 5 | for (var a = 1 + (2 || (b in c)) in {}); - 6 | for (var a = (() => b in c) in {}); - 7 | for (var a = 1 || (() => b in c) in {});" + 6 | for (var a = (() => b in c) in {});" `; exports[`in.js format 1`] = ` diff --git a/yarn.lock b/yarn.lock index f350e33e5..18dd72cb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3006,104 +3006,104 @@ __metadata: languageName: node linkType: hard -"@yuku-parser/binding-android-arm64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-android-arm64@npm:0.9.0" +"@yuku-parser/binding-android-arm64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-android-arm64@npm:0.9.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@yuku-parser/binding-darwin-arm64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-darwin-arm64@npm:0.9.0" +"@yuku-parser/binding-darwin-arm64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-darwin-arm64@npm:0.9.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@yuku-parser/binding-darwin-x64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-darwin-x64@npm:0.9.0" +"@yuku-parser/binding-darwin-x64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-darwin-x64@npm:0.9.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@yuku-parser/binding-freebsd-x64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-freebsd-x64@npm:0.9.0" +"@yuku-parser/binding-freebsd-x64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-freebsd-x64@npm:0.9.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@yuku-parser/binding-linux-arm-gnu@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-arm-gnu@npm:0.9.0" +"@yuku-parser/binding-linux-arm-gnu@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-arm-gnu@npm:0.9.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-arm-musl@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-arm-musl@npm:0.9.0" +"@yuku-parser/binding-linux-arm-musl@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-arm-musl@npm:0.9.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-linux-arm64-gnu@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-arm64-gnu@npm:0.9.0" +"@yuku-parser/binding-linux-arm64-gnu@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-arm64-gnu@npm:0.9.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-arm64-musl@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-arm64-musl@npm:0.9.0" +"@yuku-parser/binding-linux-arm64-musl@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-arm64-musl@npm:0.9.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-linux-x64-gnu@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-x64-gnu@npm:0.9.0" +"@yuku-parser/binding-linux-x64-gnu@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-x64-gnu@npm:0.9.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@yuku-parser/binding-linux-x64-musl@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-linux-x64-musl@npm:0.9.0" +"@yuku-parser/binding-linux-x64-musl@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-linux-x64-musl@npm:0.9.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@yuku-parser/binding-win32-arm64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-win32-arm64@npm:0.9.0" +"@yuku-parser/binding-win32-arm64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-win32-arm64@npm:0.9.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@yuku-parser/binding-win32-x64@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/binding-win32-x64@npm:0.9.0" +"@yuku-parser/binding-win32-x64@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/binding-win32-x64@npm:0.9.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@yuku-parser/wasm@npm:0.9.0": - version: 0.9.0 - resolution: "@yuku-parser/wasm@npm:0.9.0" +"@yuku-parser/wasm@npm:0.9.1": + version: 0.9.1 + resolution: "@yuku-parser/wasm@npm:0.9.1" dependencies: - "@yuku-toolchain/types": "npm:^0.9.0" - yuku-ast: "npm:^0.9.0" - checksum: 10/48a3c8ed9f1b7e7b2d3a2581158a790a4e255fca1c0e666bdfc9d3bc28b5c0458b0f07dc0dc8ba9b8a6c3ba306e30d56f7c45bcc26c5676b77524b32d53c17ce + "@yuku-toolchain/types": "npm:^0.9.1" + yuku-ast: "npm:^0.9.1" + checksum: 10/d937bbf0d4d1429d0ac23107c899c0ce6b208456eb2c12023b058a2cb034925e93b72464d35a78f90b5f57bc28698f85f8e260ce510d42a199235b4d1f460f12 languageName: node linkType: hard -"@yuku-toolchain/types@npm:^0.9.0": - version: 0.9.0 - resolution: "@yuku-toolchain/types@npm:0.9.0" - checksum: 10/9c06e03226b6b57b4375cf8a48621d0c177c7e082c4aaf83290942a9cbfd954ba50101afd0ed047f0680f52e40c88d17ee336661d841a5b22dd2f60fe0cce3ab +"@yuku-toolchain/types@npm:^0.9.1": + version: 0.9.1 + resolution: "@yuku-toolchain/types@npm:0.9.1" + checksum: 10/10fe2e11d3682a072c1633e5de1e81e2099051e4f5f1a0200d9ed244debf4576085b03396d54c1026d755e2f9891df8a41d69352949d3f00379f8ea854e85dd9 languageName: node linkType: hard @@ -8217,7 +8217,7 @@ __metadata: "@typescript-eslint/parser": "npm:8.67.0" "@typescript-eslint/typescript-estree": "npm:8.67.0" "@typescript-eslint/visitor-keys": "npm:8.67.0" - "@yuku-parser/wasm": "npm:0.9.0" + "@yuku-parser/wasm": "npm:0.9.1" acorn: "npm:8.18.0" acorn-jsx: "npm:5.3.2" angular-estree-parser: "npm:15.5.0" @@ -8344,7 +8344,7 @@ __metadata: yaml: "npm:2.9.0" yaml-test-suite: "npm:0.1.0" yaml-unist-parser: "npm:3.2.0" - yuku-parser: "npm:0.9.0" + yuku-parser: "npm:0.9.1" bin: prettier: ./bin/prettier.cjs languageName: unknown @@ -10077,33 +10077,33 @@ __metadata: languageName: node linkType: hard -"yuku-ast@npm:^0.9.0": - version: 0.9.0 - resolution: "yuku-ast@npm:0.9.0" +"yuku-ast@npm:^0.9.1": + version: 0.9.1 + resolution: "yuku-ast@npm:0.9.1" dependencies: - "@yuku-toolchain/types": "npm:^0.9.0" - checksum: 10/5fbb853076ae709c4f54b16874671ecbf7afa90810af0c81869a49a084b5ad8fc268a7e8f03dc24863a7cfc2a4799667b5373db795baf424e0ec9842bd3d4b43 + "@yuku-toolchain/types": "npm:^0.9.1" + checksum: 10/84d2e1aa475a79d38c8119f2044a46246e6dbc8e2aeb5c97b1be76ab1f67069e9482cb10cf8067f0ab1a515069532c393a3e8593abeffa7c98c20f4c65d8ffb7 languageName: node linkType: hard -"yuku-parser@npm:0.9.0": - version: 0.9.0 - resolution: "yuku-parser@npm:0.9.0" +"yuku-parser@npm:0.9.1": + version: 0.9.1 + resolution: "yuku-parser@npm:0.9.1" dependencies: - "@yuku-parser/binding-android-arm64": "npm:0.9.0" - "@yuku-parser/binding-darwin-arm64": "npm:0.9.0" - "@yuku-parser/binding-darwin-x64": "npm:0.9.0" - "@yuku-parser/binding-freebsd-x64": "npm:0.9.0" - "@yuku-parser/binding-linux-arm-gnu": "npm:0.9.0" - "@yuku-parser/binding-linux-arm-musl": "npm:0.9.0" - "@yuku-parser/binding-linux-arm64-gnu": "npm:0.9.0" - "@yuku-parser/binding-linux-arm64-musl": "npm:0.9.0" - "@yuku-parser/binding-linux-x64-gnu": "npm:0.9.0" - "@yuku-parser/binding-linux-x64-musl": "npm:0.9.0" - "@yuku-parser/binding-win32-arm64": "npm:0.9.0" - "@yuku-parser/binding-win32-x64": "npm:0.9.0" - "@yuku-toolchain/types": "npm:^0.9.0" - yuku-ast: "npm:^0.9.0" + "@yuku-parser/binding-android-arm64": "npm:0.9.1" + "@yuku-parser/binding-darwin-arm64": "npm:0.9.1" + "@yuku-parser/binding-darwin-x64": "npm:0.9.1" + "@yuku-parser/binding-freebsd-x64": "npm:0.9.1" + "@yuku-parser/binding-linux-arm-gnu": "npm:0.9.1" + "@yuku-parser/binding-linux-arm-musl": "npm:0.9.1" + "@yuku-parser/binding-linux-arm64-gnu": "npm:0.9.1" + "@yuku-parser/binding-linux-arm64-musl": "npm:0.9.1" + "@yuku-parser/binding-linux-x64-gnu": "npm:0.9.1" + "@yuku-parser/binding-linux-x64-musl": "npm:0.9.1" + "@yuku-parser/binding-win32-arm64": "npm:0.9.1" + "@yuku-parser/binding-win32-x64": "npm:0.9.1" + "@yuku-toolchain/types": "npm:^0.9.1" + yuku-ast: "npm:^0.9.1" dependenciesMeta: "@yuku-parser/binding-android-arm64": optional: true @@ -10129,7 +10129,7 @@ __metadata: optional: true "@yuku-parser/binding-win32-x64": optional: true - checksum: 10/8ef119e5c97cd1c9e315dabb3b610aca1e6aa87d90d5eb04c142101f05b239a5bd4ba0b4167224a6b92180e7f640d0d4240ce0392afda6e24822caef3f57b654 + checksum: 10/8a2230f6c89197c0b37af4f659ef49dc46614fc50f42cbcf222935ffbdc723798fdbadd094581ee23114924c63ecedb5dbb0a5902ac74f0af67edd2564053ac5 languageName: node linkType: hard