Index: pkg/yaml/lib/composer.dart |
diff --git a/pkg/yaml/lib/composer.dart b/pkg/yaml/lib/composer.dart |
index e9c187969aa9dbcb51e277c80c08e4a4d0fde813..e22159f34c30f73a06c4911a83ad63efda5ac56e 100644 |
--- a/pkg/yaml/lib/composer.dart |
+++ b/pkg/yaml/lib/composer.dart |
@@ -120,12 +120,7 @@ class _Composer extends _Visitor { |
match = new RegExp("^0o([0-7]+)\$").firstMatch(content); |
if (match != null) { |
- // TODO(nweiz): clean this up when Dart can parse an octal string |
- var n = 0; |
- for (var c in match.group(1).charCodes) { |
- n *= 8; |
- n += c - 48; |
- } |
+ int n = int.parse(match.group(1), radix: 8); |
return new _ScalarNode(_Tag.yaml("int"), value: n); |
} |
@@ -153,15 +148,13 @@ class _Composer extends _Visitor { |
match = new RegExp("^([+-]?)\.(inf|Inf|INF)\$").firstMatch(content); |
if (match != null) { |
- var infinityStr = match.group(1) == "-" ? "-Infinity" : "Infinity"; |
- return new _ScalarNode(_Tag.yaml("float"), |
- value: double.parse(infinityStr)); |
+ var value = match.group(1) == "-" ? -double.INFINITY : double.INFINITY; |
+ return new _ScalarNode(_Tag.yaml("float"), value: value); |
} |
match = new RegExp("^\.(nan|NaN|NAN)\$").firstMatch(content); |
if (match != null) { |
- return new _ScalarNode(_Tag.yaml("float"), |
- value: double.parse("NaN")); |
+ return new _ScalarNode(_Tag.yaml("float"), value: double.NAN); |
} |
return null; |