From: edison Date: Thu, 29 May 2025 00:21:19 +0000 (+0800) Subject: Revert "fix(compiler-sfc): add scoping tag to trailing universal selector (#1…" ... X-Git-Tag: v3.5.16~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19f23b180bb679e38db95d6a10a420abeedc8e1c;p=thirdparty%2Fvuejs%2Fcore.git Revert "fix(compiler-sfc): add scoping tag to trailing universal selector (#1…" (#13406) This reverts commit 949df808809fd7cccf7718797beab0654aa68302. --- diff --git a/packages/compiler-sfc/__tests__/compileStyle.spec.ts b/packages/compiler-sfc/__tests__/compileStyle.spec.ts index 70c6af557a..78fd52425e 100644 --- a/packages/compiler-sfc/__tests__/compileStyle.spec.ts +++ b/packages/compiler-sfc/__tests__/compileStyle.spec.ts @@ -493,31 +493,7 @@ describe('SFC style preprocessors', () => { }" `) expect(compileScoped(`.foo * { color: red; }`)).toMatchInlineSnapshot(` - ".foo[data-v-test] [data-v-test] { color: red; - }" - `) - expect(compileScoped(`.foo :active { color: red; }`)) - .toMatchInlineSnapshot(` - ".foo[data-v-test] :active { color: red; - }" - `) - expect(compileScoped(`.foo *:active { color: red; }`)) - .toMatchInlineSnapshot(` - ".foo[data-v-test] [data-v-test]:active { color: red; - }" - `) - expect(compileScoped(`.foo * .bar { color: red; }`)).toMatchInlineSnapshot(` - ".foo * .bar[data-v-test] { color: red; - }" - `) - expect(compileScoped(`:last-child * { color: red; }`)) - .toMatchInlineSnapshot(` - "[data-v-test]:last-child [data-v-test] { color: red; - }" - `) - expect(compileScoped(`:last-child *:active { color: red; }`)) - .toMatchInlineSnapshot(` - "[data-v-test]:last-child [data-v-test]:active { color: red; + ".foo[data-v-test] * { color: red; }" `) }) diff --git a/packages/compiler-sfc/src/style/pluginScoped.ts b/packages/compiler-sfc/src/style/pluginScoped.ts index 4845d8eee3..d0aaddd767 100644 --- a/packages/compiler-sfc/src/style/pluginScoped.ts +++ b/packages/compiler-sfc/src/style/pluginScoped.ts @@ -102,7 +102,6 @@ function rewriteSelector( slotted = false, ) { let node: selectorParser.Node | null = null - let starNode: selectorParser.Node | null = null let shouldInject = !deep // find the last child node to insert attribute selector selector.each(n => { @@ -217,21 +216,17 @@ function rewriteSelector( return false } } - // store the universal selector so it can be rewritten later - // .foo * -> .foo[xxxxxxx] [xxxxxxx] - starNode = n + // .foo * -> .foo[xxxxxxx] * + if (node) return } if ( - (n.type !== 'pseudo' && - n.type !== 'combinator' && - n.type !== 'universal') || + (n.type !== 'pseudo' && n.type !== 'combinator') || (n.type === 'pseudo' && (n.value === ':is' || n.value === ':where') && !node) ) { node = n - starNode = null } }) @@ -279,20 +274,6 @@ function rewriteSelector( quoteMark: `"`, }), ) - // Used for trailing universal selectors (#12906) - // `.foo * {}` -> `.foo[xxxxxxx] [xxxxxxx] {}` - if (starNode) { - selector.insertBefore( - starNode, - selectorParser.attribute({ - attribute: idToAdd, - value: idToAdd, - raws: {}, - quoteMark: `"`, - }), - ) - selector.removeChild(starNode) - } } }