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

Side by Side Diff: compiler/lib/implementation/number.js

Issue 9113043: Implement Double.{toString, toStringAsExponential, toStringAsPrecision} (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated status files. Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/lib/double.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 5
6 function native_NumberImplementation_BIT_OR(other) { 6 function native_NumberImplementation_BIT_OR(other) {
7 native__NumberJsUtil__throwIllegalArgumentException(other); 7 native__NumberJsUtil__throwIllegalArgumentException(other);
8 } 8 }
9 9
10 function native_NumberImplementation_BIT_XOR(other) { 10 function native_NumberImplementation_BIT_XOR(other) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 "use strict"; 149 "use strict";
150 return (this == Infinity) || (this == -Infinity); 150 return (this == Infinity) || (this == -Infinity);
151 } 151 }
152 152
153 function native_NumberImplementation_toDouble() { 153 function native_NumberImplementation_toDouble() {
154 "use strict"; 154 "use strict";
155 return +this; 155 return +this;
156 } 156 }
157 157
158 function native_NumberImplementation_toString() { 158 function native_NumberImplementation_toString() {
159 return this.toString(); 159 "use strict";
160 var primitiveValue = +this;
161 // TODO(floitsch): is there a faster way to detect -0?
162 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
163 return "-0.0";
164 }
165 return "" + primitiveValue;
160 } 166 }
161 167
162 function native_NumberImplementation_toStringAsFixed(fractionDigits) { 168 function native_NumberImplementation_toStringAsFixed(fractionDigits) {
169 var primitiveValue = +this;
170 // TODO(floitsch): is there a faster way to detect -0?
171 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
172 return "-" + this.toFixed(fractionDigits);
173 }
163 return this.toFixed(fractionDigits); 174 return this.toFixed(fractionDigits);
164 } 175 }
165 176
166 function native_NumberImplementation_toStringAsPrecision(precision) { 177 function native_NumberImplementation_toStringAsPrecision(precision) {
178 var primitiveValue = +this;
179 // TODO(floitsch): is there a faster way to detect -0?
180 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
181 return "-" + this.toPrecision(precision);
182 }
167 return this.toPrecision(precision); 183 return this.toPrecision(precision);
168 } 184 }
169 185
170 function native_NumberImplementation_toStringAsExponential(fractionDigits) { 186 function native_NumberImplementation_toStringAsExponential(fractionDigits) {
187 var primitiveValue = +this;
188 // TODO(floitsch): is there a faster way to detect -0?
189 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
190 return "-" + this.toExponential(fractionDigits);
191 }
171 return this.toExponential(fractionDigits); 192 return this.toExponential(fractionDigits);
172 } 193 }
173 194
174 function native_NumberImplementation_toRadixString(radix) { 195 function native_NumberImplementation_toRadixString(radix) {
175 return this.toString(radix); 196 return this.toString(radix);
176 } 197 }
177 198
178 function native_NumberImplementation_hashCode() { 199 function native_NumberImplementation_hashCode() {
179 "use strict"; 200 "use strict";
180 return this & 0xFFFFFFF; 201 return this & 0xFFFFFFF;
181 } 202 }
OLDNEW
« no previous file with comments | « no previous file | runtime/lib/double.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698