Don't crash when writing Infinity in JS mode (#1069)

Closes #1031
This commit is contained in:
Natalie Weizenbaum 2020-09-04 12:25:42 -07:00 committed by GitHub
parent 4c0bc7f4f5
commit 1dff9a7ce4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 0 deletions

View File

@ -7,6 +7,8 @@
* Improve some error messages for edge-case parse failures.
* Don't crash when writing `Infinity` in JS mode.
## 1.26.10
* Fixes a bug where two adjacent combinators could cause an error.

View File

@ -39,6 +39,8 @@ bool fuzzyGreaterThanOrEquals(num number1, num number2) =>
/// Returns whether [number] is [fuzzyEquals] to an integer.
bool fuzzyIsInt(num number) {
// Check this before is int to work around dart-lang/sdk#43325.
if (number.isInfinite || number.isNaN) return false;
if (number is int) return true;
// Check against 0.5 rather than 0.0 so that we catch numbers that are both

View File

@ -44,6 +44,11 @@ void main() {
});
group("for floating-point numbers", () {
test("Infinity", () {
expect(compileString("a {b: 1e999}"),
equalsIgnoringWhitespace("a { b: Infinity; }"));
});
test(">= 1e21", () {
expect(compileString("a {b: 1.01e21}"),
equalsIgnoringWhitespace("a { b: 101${'0' * 19}; }"));