1602 Commits

Author SHA1 Message Date
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
b03561bc37 add test for multiline comments between function name and args 2020-08-21 19:38:43 -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
4635f76fa5 add test for integer overflow in division 2020-08-21 07:00:42 -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
Midas Lambrichts
d240151f8c
Add fuzzing (#36)
* Add fuzzing

Fuzzing can be useful to find crashes on random input.
Running this for a short while should already result in a crash, proving
it's usefulness.
2020-08-20 08:52:42 -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
7b4465250e allow unimplemented!() 2020-08-19 06:20:04 -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
ff52e56600 test for single hash to calc and url 2020-08-19 03:49:12 -04:00
Connor Skees
617a421612 remove superfluous derives from numbers 2020-08-19 03:48:59 -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
79955d921c simplify extension functions 2020-08-19 03:07:21 -04:00
Connor Skees
7358eb16dc resolve todo!() inside malformed module fn call 2020-08-18 12:29:01 -04:00
Connor Skees
b771befed4 remove utf8 BOM from start of files 2020-08-18 06:20:38 -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
44ecd82454 add ignored test for silent comment in attribute 2020-08-17 05:13:30 -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
d2a39e274d add ignored interpolated color test 2020-08-17 04:20:01 -04:00
Connor Skees
4f56096571 simplify default_var_exists 2020-08-17 04:01:25 -04:00
Connor Skees
9b9946c0ee allow units beginning with a single - 2020-08-17 03:58:29 -04:00
Connor Skees
cb046f7be7 list-separator is comma for maps and arglists 2020-08-17 03:39:33 -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
3e8b038705 add ignored test for interpolation of builtin fns 2020-08-17 02:50:19 -04:00
Connor Skees
a7b6675c18 unignore variable casing grayscale test 2020-08-17 02:43:52 -04:00
Connor Skees
befcb15cb5 !default variables can override if the value is null 2020-08-17 02:42:43 -04:00
Connor Skees
a7eb78d249 fix bug in generating complement for colors with hue under 180deg 2020-08-17 02:21:21 -04:00
Connor Skees
790b0685cb set-nth correctly recognizes arglists 2020-08-17 02:03:13 -04:00
Connor Skees
c35fa2b8eb deny non-numeric argument passed to unitless 2020-08-16 20:14:54 -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
28a0a33d85 respect $module argument passed to function-exists 2020-08-16 19:47:18 -04:00
Connor Skees
f60fb26ca0 do not panic when extending by compound selector with parent 2020-08-16 19:09:08 -04:00