Skip to content

Commit 2acb35b

Browse files
authored
Fixed @left-* parsing (#342)
* Fixed `@left-*` parsing * add test case * juggle code * lets be weird with default
1 parent f7bbabe commit 2acb35b

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

src/Parser.js

+14-7
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,22 @@ export function parse (value, root, parent, rule, rules, rulesets, pseudo, point
9393
if (character === 123)
9494
if (offset === 0)
9595
parse(characters, root, reference, reference, props, rulesets, length, points, children)
96-
else
97-
switch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {
98-
// d l m s
99-
case 100: case 108: case 109: case 115:
100-
parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)
101-
break
96+
else {
97+
switch (atrule) {
98+
// c(ontainer)
99+
case 99:
100+
if (charat(characters, 3) === 110) break
101+
// l(ayer)
102+
case 108:
103+
if (charat(characters, 2) === 97) break
102104
default:
103-
parse(characters, reference, reference, reference, [''], children, 0, points, children)
105+
offset = 0
106+
// d(ocument) m(edia) s(upports)
107+
case 100: case 109: case 115:
104108
}
109+
if (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)
110+
else parse(characters, reference, reference, reference, [''], children, 0, points, children)
111+
}
105112
}
106113

107114
index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo

test/Parser.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ describe('Parser', () => {
6868
margin-right: 1cm;
6969
}
7070
width: none;
71+
@right-bottom {
72+
content: "Content";
73+
}
74+
@left-bottom {
75+
content: "Content";
76+
}
7177
}
7278
`)
7379
).to.equal([
@@ -79,7 +85,7 @@ describe('Parser', () => {
7985
`@viewport{min-width:640px;max-width:800px;}`,
8086
`@counter-style list{system:fixed;symbols:url();suffix:" ";}`,
8187
`@-moz-document url-prefix(){.user .selector{color:lime;}}`,
82-
`@page{color:red;@bottom-right{content:counter(pages);margin-right:1cm;}width:none;}`
88+
`@page{color:red;@bottom-right{content:counter(pages);margin-right:1cm;}width:none;@right-bottom{content:"Content";}@left-bottom{content:"Content";}}`
8389
].join(''))
8490
})
8591

0 commit comments

Comments
 (0)