Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(634)

Unified Diff: runtime/lib/integers.dart

Issue 24359002: Make smi.toString() do its work faster using native string helpers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/lib/integers.dart
diff --git a/runtime/lib/integers.dart b/runtime/lib/integers.dart
index 7c242ef95659a9872e9810492060f0d695f8dc13..6e7603515e58bfdab4604e7ce14912e816d662a4 100644
--- a/runtime/lib/integers.dart
+++ b/runtime/lib/integers.dart
@@ -231,31 +231,7 @@ class _Smi extends _IntegerImplementation implements int {
int _shrFromInt(int other) native "Smi_shrFromInt";
int _shlFromInt(int other) native "Smi_shlFromInt";
- String toString() {
- if (this == 0) return "0";
- var reversed = new List();
- var val = this < 0 ? -this : this;
- while (val > 0) {
- reversed.add((val % 10) + 0x30);
- val = val ~/ 10;
- }
- final int numDigits = reversed.length;
- List digits;
- int i;
- if (this < 0) {
- digits = new List(numDigits + 1);
- digits[0] = 0x2D; // '-'.
- i = 1;
- } else {
- digits = new List(numDigits);
- i = 0;
- }
- int ri = reversed.length - 1;
- for (; i < digits.length; i++, ri--) {
- digits[i] = reversed[ri];
- }
- return _StringBase.createFromCharCodes(digits);
- }
+ String toString() native "Smi_toString";
}
// Represents integers that cannot be represented by Smi but fit into 64bits.

Powered by Google App Engine
This is Rietveld 408576698