From 6d2f1a48b46dfe6c5c19ec463a0705fdc7d27583 Mon Sep 17 00:00:00 2001 From: Paolo Ricciuti Date: Wed, 22 May 2024 11:51:56 +0200 Subject: [PATCH] fix: allow comments after last selector in css (#11723) Fixes #11721 --- .changeset/clever-maps-travel.md | 5 +++++ .../svelte/src/compiler/phases/1-parse/read/style.js | 4 ++-- .../samples/comments-after-last-selector/expected.css | 6 ++++++ .../samples/comments-after-last-selector/input.svelte | 10 ++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .changeset/clever-maps-travel.md create mode 100644 packages/svelte/tests/css/samples/comments-after-last-selector/expected.css create mode 100644 packages/svelte/tests/css/samples/comments-after-last-selector/input.svelte diff --git a/.changeset/clever-maps-travel.md b/.changeset/clever-maps-travel.md new file mode 100644 index 0000000000..e0eb566bf9 --- /dev/null +++ b/.changeset/clever-maps-travel.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: allow comments after last selector in css diff --git a/packages/svelte/src/compiler/phases/1-parse/read/style.js b/packages/svelte/src/compiler/phases/1-parse/read/style.js index ebd3b1a715..fdc79f6bae 100644 --- a/packages/svelte/src/compiler/phases/1-parse/read/style.js +++ b/packages/svelte/src/compiler/phases/1-parse/read/style.js @@ -139,7 +139,7 @@ function read_selector_list(parser, inside_pseudo_class = false) { const end = parser.index; - parser.allow_whitespace(); + allow_comment_or_whitespace(parser); if (inside_pseudo_class ? parser.match(')') : parser.match('{')) { return { @@ -324,7 +324,7 @@ function read_selector(parser, inside_pseudo_class = false) { } const index = parser.index; - parser.allow_whitespace(); + allow_comment_or_whitespace(parser); if (parser.match(',') || (inside_pseudo_class ? parser.match(')') : parser.match('{'))) { // rewind, so we know whether to continue building the selector list diff --git a/packages/svelte/tests/css/samples/comments-after-last-selector/expected.css b/packages/svelte/tests/css/samples/comments-after-last-selector/expected.css new file mode 100644 index 0000000000..7f5a737001 --- /dev/null +++ b/packages/svelte/tests/css/samples/comments-after-last-selector/expected.css @@ -0,0 +1,6 @@ + + .foo.svelte-xyz, /* some comment */ + .bar.svelte-xyz /* some other comment */ + { + color: red; + } diff --git a/packages/svelte/tests/css/samples/comments-after-last-selector/input.svelte b/packages/svelte/tests/css/samples/comments-after-last-selector/input.svelte new file mode 100644 index 0000000000..bb12656f3d --- /dev/null +++ b/packages/svelte/tests/css/samples/comments-after-last-selector/input.svelte @@ -0,0 +1,10 @@ +
foo
+
bar
+ + \ No newline at end of file