1416 Commits

Author SHA1 Message Date
ConnorSkees
709b95d035 improve span information in values 2020-05-21 11:48:38 -04:00
ConnorSkees
0c144e22ba handle ` in values 2020-05-21 01:07:34 -04:00
ConnorSkees
a63e139cd8 handle ` at toplevel 2020-05-21 01:04:11 -04:00
ConnorSkees
28d5fdf636 handle ! at toplevel 2020-05-21 01:01:02 -04:00
ConnorSkees
c1ed4b3121 handle , at toplevel 2020-05-21 00:46:06 -04:00
ConnorSkees
2faf9fcb60 improve error handling of variables in styles 2020-05-21 00:41:04 -04:00
ConnorSkees
d300d4e1fc test for ] in value 2020-05-21 00:09:52 -04:00
ConnorSkees
dc5df157b0 replace macro with fn 2020-05-20 23:56:17 -04:00
ConnorSkees
fe37bab6f2 add color benchmarks 2020-05-20 22:51:56 -04:00
ConnorSkees
3decf3739c refactor Integer to separate file 2020-05-20 22:46:26 -04:00
ConnorSkees
45a29c9697 refactor Number::to_integer 2020-05-20 22:40:21 -04:00
ConnorSkees
38ffb5fe31 don't eat first char of loud comment 2020-05-20 22:39:31 -04:00
ConnorSkees
3fcd0b8be4 replace todo with unreachable to make clearer that methods should not be used 2020-05-20 21:05:55 -04:00
ConnorSkees
de2173cc31 refactor parsing of toplevel comments 2020-05-20 21:01:07 -04:00
ConnorSkees
10a30b4c65 test for comma separated list as map key 2020-05-20 20:35:59 -04:00
ConnorSkees
d39a45090a separate media and unknown at rules 2020-05-20 20:13:53 -04:00
ConnorSkees
d61f8abd41 add benches 2020-05-20 00:20:59 -04:00
ConnorSkees
bea90060a8 minor cleanup 2020-05-20 00:14:55 -04:00
ConnorSkees
8520048b26 implement small int optimizations
This allows for numbers within 18 digits of precision (the vast
majority of numbers) to be represented by just 2 i64s rather than 2 heap
allocated BigInts. In the future these optimizations may become more
aggressive and granular, but for now `grass` is already more than an order of
magnitude faster than `dart-sass`.
2020-05-19 23:23:04 -04:00
ConnorSkees
cf987abb53 remove bimap in favor of ad hoc structure 2020-05-19 19:13:49 -04:00
ConnorSkees
eb7fe52074 minor cleanup 2020-05-19 18:28:18 -04:00
ConnorSkees
017bc971b4 remove first line in readme 2020-05-19 15:48:53 -04:00
ConnorSkees
9a3035049a error tests for to-{upper,lower}-case 2020-05-19 00:21:43 -04:00
ConnorSkees
dae7a5028d add map fn tests for empty lists 2020-05-18 17:56:25 -04:00
ConnorSkees
d88ac86bd1 consolidate builtin imports 2020-05-18 17:50:52 -04:00
ConnorSkees
f8b8025d7c fix panic when missing colon in style 2020-05-17 11:09:21 -04:00
ConnorSkees
b58ed29fd0 add more span information
this resolves a lot of panics that occurred when there was no more input
2020-05-17 00:35:07 -04:00
ConnorSkees
6e7f1cc319 remove some panicking 2020-05-17 00:08:50 -04:00
ConnorSkees
eb2f3ebe5a remove ;; in tests 2020-05-16 22:46:13 -04:00
ConnorSkees
4ee82e66be refactor comparison ops to src/value/ops.rs 2020-05-16 22:45:32 -04:00
ConnorSkees
c07bb7ecce refactor == and != order of operations 2020-05-16 22:43:13 -04:00
ConnorSkees
697ff3d12f error messages for values beginnning with #
prior to this commit, error messages that occurred within idents
beginning with interpolation would be swallowed by error messages for
hex (largely, "Expected identifier.")
2020-05-16 19:25:11 -04:00
ConnorSkees
f3e7abdaba allow units to begin with escape sequences 2020-05-16 18:54:42 -04:00
ConnorSkees
d4f67b5ed9 clippy 2020-05-16 18:38:37 -04:00
ConnorSkees
1fb6822259 rename register to declare 2020-05-16 18:01:06 -04:00
ConnorSkees
a3604491e9 consolidate implementations of hsl and hsla 2020-05-16 17:49:30 -04:00
ConnorSkees
b5a0931e45 consolidate implementations of rgb and rgba 2020-05-16 17:45:04 -04:00
ConnorSkees
2d0a9abb13 parse selectors that grow larger from interpolation 2020-05-16 17:28:30 -04:00
ConnorSkees
2db3398fe2 properly handle escaped newlines in quoted strings 2020-05-16 17:20:53 -04:00
ConnorSkees
09e6568c39 update rustfmt 2020-05-16 16:56:17 -04:00
ConnorSkees
dcdd2a1cb1 edge case in which @ include had no args AND no semicolon 2020-05-16 16:54:34 -04:00
ConnorSkees
223dade62b Emit proper error for escape sequence overflow
Before this commit, escape sequences above std::char::MAX ('\u{10ffff}')
would overflow and cause a panic. This commit replaces an `unwrap` with
`ok_or` and a clearer error message. This message will likely change
in the future in order to better conform to the `dart-sass` implementation
which currently also fails to cleanly handle this overflow.

See https://github.com/kaj/rsass/pull/73
2020-05-16 16:22:33 -04:00
ConnorSkees
eea8bdbc25 allow escapes at the start of selectors 2020-05-16 16:15:11 -04:00
ConnorSkees
374e9f9eb4 correctly parse idents starting with interpolation 2020-05-14 00:10:24 -04:00
ConnorSkees
4b15b27119 refactor mixin args 2020-05-13 23:56:47 -04:00
ConnorSkees
0cbdc67f06 improve scoping with regard to function variables existing 2020-05-13 01:32:29 -04:00
ConnorSkees
425c36be86 improve tests for feature-exists 2020-05-13 00:19:21 -04:00
ConnorSkees
5b69ad2659 special functions are always lowercased 2020-05-13 00:16:36 -04:00
ConnorSkees
e524867a30 bump version to 0.8.2
This release contains significant (>10x) improvements for WASM speed.
Performance is now comparable to libsass bindings with `node-sass` as
well as `dart-sass` with dart2js. It is, however, roughly 4x slower than
native `grass`.
2020-05-11 12:59:31 -04:00
ConnorSkees
2e9cd18a9d document internal fn CallArgs::decrement 2020-05-06 12:19:03 -04:00