This MR contains the following updates:
Potentially breaking bug fix: Sass numbers are now universally stored as 64-bit floating-point numbers, rather than sometimes being stored as integers. This will generally make arithmetic with very large numbers more reliable and more consistent across platforms, but it does mean that numbers between nine quadrillion and nine quintillion will no longer be represented with full accuracy when compiling Sass on the Dart VM.
Potentially breaking bug fix: Sass equality is now properly transitive. Two numbers are now considered equal (after doing unit conversions) if they round to the same
1e-11th. Previously, numbers were considered equal if they were within
1e-11of one another, which led to some circumstances where
$a == $band
$b == $cbut
$a != $b.
Potentially breaking bug fix: Various functions in
sass:mathno longer treat floating-point numbers that are very close (but not identical) to integers as integers. Instead, these functions now follow the floating-point specification exactly. For example,
math.pow(0.000000000001, -1)now returns
Emit a deprecation warning for
$a +$b, since these look like they could be unary operations but they're actually parsed as binary operations. Either explicitly write
$a - $bor
$a (-$b). See https://sass-lang.com/d/strict-unary for more details.
Add an optional
SassScriptException()to make it easier to throw exceptions associated with particular argument names.
Most APIs that previously returned
double. All APIs continue to accept
num, although in Dart 2.0.0 these APIs will be changed to accept only
- Fix a bug in which certain warning spans would not have their properties accessible by the JS API.
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.