[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.