mirror of https://github.com/sveltejs/svelte
parent
2fcd049d82
commit
9e3c4d5ff2
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: handle css nth-selector syntax
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
<style>
|
||||||
|
/* test that all these are parsed correctly */
|
||||||
|
h1:nth-of-type(2n+1){
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(-n + 3 of li.important) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(1) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(p) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(n+7) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(even) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
h1:nth-child(odd) {
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<h1>Broken</h1>
|
||||||
@ -0,0 +1,520 @@
|
|||||||
|
{
|
||||||
|
"css": {
|
||||||
|
"type": "Style",
|
||||||
|
"start": 0,
|
||||||
|
"end": 467,
|
||||||
|
"attributes": [],
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 60,
|
||||||
|
"end": 80,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 60,
|
||||||
|
"end": 80,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 60,
|
||||||
|
"end": 62
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-of-type",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 75,
|
||||||
|
"end": 79,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 75,
|
||||||
|
"end": 79,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "2n+1",
|
||||||
|
"start": 75,
|
||||||
|
"end": 79
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 62,
|
||||||
|
"end": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 80,
|
||||||
|
"end": 112,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 90,
|
||||||
|
"end": 105,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 60,
|
||||||
|
"end": 112
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 117,
|
||||||
|
"end": 153,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 117,
|
||||||
|
"end": 153,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 117,
|
||||||
|
"end": 119
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 130,
|
||||||
|
"end": 152,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 130,
|
||||||
|
"end": 152,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "-n + 3 of ",
|
||||||
|
"start": 130,
|
||||||
|
"end": 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "li",
|
||||||
|
"start": 140,
|
||||||
|
"end": 142
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ClassSelector",
|
||||||
|
"name": "important",
|
||||||
|
"start": 142,
|
||||||
|
"end": 152
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 119,
|
||||||
|
"end": 153
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 154,
|
||||||
|
"end": 186,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 164,
|
||||||
|
"end": 179,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 117,
|
||||||
|
"end": 186
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 191,
|
||||||
|
"end": 206,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 191,
|
||||||
|
"end": 206,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 191,
|
||||||
|
"end": 193
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 204,
|
||||||
|
"end": 205,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 204,
|
||||||
|
"end": 205,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "1",
|
||||||
|
"start": 204,
|
||||||
|
"end": 205
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 193,
|
||||||
|
"end": 206
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 207,
|
||||||
|
"end": 239,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 217,
|
||||||
|
"end": 232,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 191,
|
||||||
|
"end": 239
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 244,
|
||||||
|
"end": 259,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 244,
|
||||||
|
"end": 259,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 244,
|
||||||
|
"end": 246
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 257,
|
||||||
|
"end": 258,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 257,
|
||||||
|
"end": 258,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "p",
|
||||||
|
"start": 257,
|
||||||
|
"end": 258
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 246,
|
||||||
|
"end": 259
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 260,
|
||||||
|
"end": 292,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 270,
|
||||||
|
"end": 285,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 244,
|
||||||
|
"end": 292
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 297,
|
||||||
|
"end": 314,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 297,
|
||||||
|
"end": 314,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 297,
|
||||||
|
"end": 299
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 310,
|
||||||
|
"end": 313,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 310,
|
||||||
|
"end": 313,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "n+7",
|
||||||
|
"start": 310,
|
||||||
|
"end": 313
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 299,
|
||||||
|
"end": 314
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 315,
|
||||||
|
"end": 347,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 325,
|
||||||
|
"end": 340,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 297,
|
||||||
|
"end": 347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 352,
|
||||||
|
"end": 370,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 352,
|
||||||
|
"end": 370,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 352,
|
||||||
|
"end": 354
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 365,
|
||||||
|
"end": 369,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 365,
|
||||||
|
"end": 369,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "even",
|
||||||
|
"start": 365,
|
||||||
|
"end": 369
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 354,
|
||||||
|
"end": 370
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 371,
|
||||||
|
"end": 403,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 381,
|
||||||
|
"end": 396,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 352,
|
||||||
|
"end": 403
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Rule",
|
||||||
|
"prelude": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 408,
|
||||||
|
"end": 425,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 408,
|
||||||
|
"end": 425,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TypeSelector",
|
||||||
|
"name": "h1",
|
||||||
|
"start": 408,
|
||||||
|
"end": 410
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PseudoClassSelector",
|
||||||
|
"name": "nth-child",
|
||||||
|
"args": {
|
||||||
|
"type": "SelectorList",
|
||||||
|
"start": 421,
|
||||||
|
"end": 424,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Selector",
|
||||||
|
"start": 421,
|
||||||
|
"end": 424,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Nth",
|
||||||
|
"value": "odd",
|
||||||
|
"start": 421,
|
||||||
|
"end": 424
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 410,
|
||||||
|
"end": 425
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Block",
|
||||||
|
"start": 426,
|
||||||
|
"end": 458,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Declaration",
|
||||||
|
"start": 436,
|
||||||
|
"end": 451,
|
||||||
|
"property": "background",
|
||||||
|
"value": "red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 408,
|
||||||
|
"end": 458
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": {
|
||||||
|
"start": 7,
|
||||||
|
"end": 459,
|
||||||
|
"styles": "\n /* test that all these are parsed correctly */\n\th1:nth-of-type(2n+1){\n background: red;\n }\n h1:nth-child(-n + 3 of li.important) {\n background: red;\n }\n h1:nth-child(1) {\n background: red;\n }\n h1:nth-child(p) {\n background: red;\n }\n h1:nth-child(n+7) {\n background: red;\n }\n h1:nth-child(even) {\n background: red;\n }\n h1:nth-child(odd) {\n background: red;\n }\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"js": [],
|
||||||
|
"start": 469,
|
||||||
|
"end": 484,
|
||||||
|
"type": "Root",
|
||||||
|
"fragment": {
|
||||||
|
"type": "Fragment",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"type": "Text",
|
||||||
|
"start": 467,
|
||||||
|
"end": 469,
|
||||||
|
"raw": "\n\n",
|
||||||
|
"data": "\n\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "RegularElement",
|
||||||
|
"start": 469,
|
||||||
|
"end": 484,
|
||||||
|
"name": "h1",
|
||||||
|
"attributes": [],
|
||||||
|
"fragment": {
|
||||||
|
"type": "Fragment",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"type": "Text",
|
||||||
|
"start": 473,
|
||||||
|
"end": 479,
|
||||||
|
"raw": "Broken",
|
||||||
|
"data": "Broken"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transparent": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transparent": false
|
||||||
|
},
|
||||||
|
"options": null
|
||||||
|
}
|
||||||
Loading…
Reference in new issue