[dart2wasm] Avoid redundant substring when decoding double from UTF-8 input
Change-Id: Idd1c39415775acaa62dd65549a9bea055313f25c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/394300
Reviewed-by: Slava Egorov <vegorov@google.com>
diff --git a/sdk/lib/_internal/wasm/lib/convert_patch.dart b/sdk/lib/_internal/wasm/lib/convert_patch.dart
index 35efe42..e914db5 100644
--- a/sdk/lib/_internal/wasm/lib/convert_patch.dart
+++ b/sdk/lib/_internal/wasm/lib/convert_patch.dart
@@ -1615,7 +1615,10 @@
}
}
- double parseDouble(int start, int end) => _parseDouble(chunk, start, end);
+ double parseDouble(int start, int end) {
+ final string = chunk.substringUnchecked(start, end);
+ return double.parse(string);
+ }
}
/**
@@ -1666,7 +1669,10 @@
}
}
- double parseDouble(int start, int end) => _parseDouble(chunk, start, end);
+ double parseDouble(int start, int end) {
+ final string = chunk.substringUnchecked(start, end);
+ return double.parse(string);
+ }
}
@patch
@@ -1856,15 +1862,11 @@
}
double parseDouble(int start, int end) {
- String string = getString(start, end, 0x7f);
- return _parseDouble(string, 0, string.length);
+ final string = getString(start, end, 0x7f);
+ return double.parse(string);
}
}
-@pragma("wasm:prefer-inline")
-double _parseDouble(String source, int start, int end) =>
- double.parse(source.substringUnchecked(start, end));
-
/**
* Implements the chunked conversion from a UTF-8 encoding of JSON
* to its corresponding object.