319 Commits

Author SHA1 Message Date
Connor Skees
e5d73ac265 don't read multiple stars in comment eagerly 2021-07-03 18:42:39 -04:00
Connor Skees
d1be778682 move code with side effects out of assert 2020-12-06 14:17:16 -05:00
Connor Skees
f17a1e6da2 placate clippy 2020-11-16 03:25:55 -05:00
Midas Lambrichts
7539762a0c
Resolve NaN todo!()s for addition and subtraction with other numbers (#40)
* Replace todo's for propagating NaN

* Propagate NaN for remainder as well
2020-09-13 18:08:41 -04:00
Midas Lambrichts
8e060950d5
Fix panic when progid is the last token by removing unwrap (#39)
* Fix panic when progid by removing unwrap

* Incorporate PR feedback
2020-08-24 19:35:55 -04:00
Connor Skees
c0c8de6eb9 simplify media query == comparison check 2020-08-23 20:09:53 -04:00
Connor Skees
605f4f3d6b allow = and == in media queries 2020-08-22 19:18:28 -04:00
Connor Skees
c44f20d377 allow whitespace between mixin name and args 2020-08-21 19:36:11 -04:00
Connor Skees
feb75800c8 allow whitespace between @content and its args 2020-08-21 19:27:44 -04:00
Connor Skees
5bf03c15d6 consume utf8 bom in parser, not lexer 2020-08-21 06:54:03 -04:00
Connor Skees
c19eda6f89 deny scientific notation exponents below -99
1e999 and 1e-999 were able to cause hangs as we use arbitrary precision
numbers rather than floating point. this may change in the future (see
sass/sass#2892)
2020-08-20 18:55:00 -04:00
Connor Skees
921b6e4f8d do not panic on modulo by 0 2020-08-20 18:55:00 -04:00
Connor Skees
f9c163e557 no longer panic on unimplemented division
not implemented, but makes fuzzing less noisy
2020-08-19 20:04:25 -04:00
Connor Skees
f2d1a82f34 remove unwraps from escape parsing
these could not cause panics, but it is nice to reduce the number of
unwraps either way
2020-08-19 14:26:07 -04:00
Connor Skees
6849cd578f refactor variable value parsing to use predicates 2020-08-19 07:13:32 -04:00
Connor Skees
c89013d607 add test for malformed bracketed list missing closing brace 2020-08-19 05:26:24 -04:00
Connor Skees
0d7208ccf0 add tests for numbers plus !important, colors, and arglists 2020-08-19 04:14:49 -04:00
Connor Skees
d9d9777467 add tests for bools and important plus quoted string 2020-08-19 04:02:47 -04:00
Connor Skees
cb1eecde74 add tests for nan in unary ops 2020-08-19 03:52:45 -04:00
Connor Skees
849a8b4414 resolve todo!() on malformed @use missing string 2020-08-19 03:14:33 -04:00
Connor Skees
10e08fc8ec remove peekmore todo 2020-08-19 03:10:19 -04:00
Connor Skees
7358eb16dc resolve todo!() inside malformed module fn call 2020-08-18 12:29:01 -04:00
Connor Skees
6debd2ef52 !global variables declared inside control flow not at root do not also add variable to current scope 2020-08-18 05:55:54 -04:00
Connor Skees
6630a1c2ea correctly handle!global variables inside control flow when not at root 2020-08-18 03:55:26 -04:00
Connor Skees
48de92fdc0 ambiguous keyword operators are not treated as function calls 2020-08-18 03:06:52 -04:00
Connor Skees
00a7659e69 refactor calculation of default variables 2020-08-18 00:17:12 -04:00
Connor Skees
8d1e8a99c5 refactor how default variables are evaluated 2020-08-17 06:16:18 -04:00
Connor Skees
9548eb6deb convert single quotes to double quotes in calc 2020-08-17 04:48:11 -04:00
Connor Skees
7acaa94870 better handle strings passed to special css functions 2020-08-17 04:35:00 -04:00
Connor Skees
9b9946c0ee allow units beginning with a single - 2020-08-17 03:58:29 -04:00
Connor Skees
a0786619de @content may have call args even when it has no parens 2020-08-17 03:30:54 -04:00
Connor Skees
5bcf499942 & is null inside selectors at root 2020-08-17 03:13:45 -04:00
Connor Skees
befcb15cb5 !default variables can override if the value is null 2020-08-17 02:42:43 -04:00
Connor Skees
253bc3b35f deny comma separated lists without parens as keys to map 2020-08-16 20:00:14 -04:00
Connor Skees
f60fb26ca0 do not panic when extending by compound selector with parent 2020-08-16 19:09:08 -04:00
Connor Skees
a9be640124 arguments do not affect variables in outer scopes 2020-08-15 21:33:44 -04:00
Connor Skees
74bb9bad92 refactor bracketed list and number parsing to separate functions 2020-08-15 20:33:38 -04:00
Connor Skees
34dd92f78f hyphen followed by interpolation is not treated as subtraction 2020-08-15 20:18:37 -04:00
Connor Skees
a665cb13cc remove cfg(test) from test files 2020-08-11 20:22:24 -04:00
Connor Skees
45508a7665 add support for unicode ranges 2020-08-11 14:46:06 -04:00
Connor Skees
5133d580de improve error message for selector-parse and deny open curly brace 2020-08-11 02:00:10 -04:00
Connor Skees
0c7e2017d5 use patched version of peekmore 2020-08-08 21:38:59 -04:00
Connor Skees
fb785cf71c revert "make predicate optional for callers"
This reverts commit fda7f340cea60a90031aa8edffd8ab3a06d05992.

This commit made tests fail that it shouldn't have. The performance wins
from this change were negligible, so it is easiest to just revert it and
potentially come back to this change later
2020-08-08 14:36:59 -04:00
Connor Skees
fda7f340ce make predicate optional for callers 2020-08-08 02:27:54 -04:00
Connor Skees
a9bef0e24e more robustly parse default function arguments 2020-08-08 01:57:56 -04:00
Connor Skees
a3a21928c0 resolve map parsing regression involving trailing commas in doubly nested maps 2020-08-07 20:10:49 -04:00
Connor Skees
56030f1292 recognize plain css @imports beginning with // 2020-08-07 17:44:51 -04:00
Connor Skees
36bdea138d refactor how the from value in @for is parsed 2020-08-07 17:33:30 -04:00
Connor Skees
fac8b86a6a resolve integer underflow in @for when both to and from and i32::MIN 2020-08-07 16:51:17 -04:00
Connor Skees
f33739aa0f add more tests for malformed @for
test for capitalization of keywords, error messages, and regression
tests for integer overflows resulting when `from` or `to` ==
`std::i32::MAX`
2020-08-07 16:21:15 -04:00