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

Side by Side Diff: runtime/lib/double.cc

Issue 1874853002: VM: Remove unnecessary _Num class from runtime/lib. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments Created 4 years, 8 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
« no previous file with comments | « runtime/lib/core_sources.gypi ('k') | runtime/lib/double.dart » ('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 #include "vm/bootstrap_natives.h" 5 #include "vm/bootstrap_natives.h"
6 6
7 #include "platform/math.h" 7 #include "platform/math.h"
8 8
9 #include "vm/code_generator.h" // DartModulo. 9 #include "vm/code_generator.h" // DartModulo.
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 if (0 <= start && start < end && end <= len) { 223 if (0 <= start && start < end && end <= len) {
224 double double_value; 224 double double_value;
225 if (String::ParseDouble(value, start, end, &double_value)) { 225 if (String::ParseDouble(value, start, end, &double_value)) {
226 return Double::New(double_value); 226 return Double::New(double_value);
227 } 227 }
228 } 228 }
229 return Object::null(); 229 return Object::null();
230 } 230 }
231 231
232 232
233 DEFINE_NATIVE_ENTRY(Double_toString, 1) {
234 const Number& number = Number::CheckedHandle(arguments->NativeArgAt(0));
235 Heap::Space space = isolate->heap()->ShouldPretenure(kOneByteStringCid) ?
236 Heap::kPretenured : Heap::kNew;
237 return number.ToString(space);
238 }
239
240
233 DEFINE_NATIVE_ENTRY(Double_toStringAsFixed, 2) { 241 DEFINE_NATIVE_ENTRY(Double_toStringAsFixed, 2) {
234 // The boundaries are exclusive. 242 // The boundaries are exclusive.
235 static const double kLowerBoundary = -1e21; 243 static const double kLowerBoundary = -1e21;
236 static const double kUpperBoundary = 1e21; 244 static const double kUpperBoundary = 1e21;
237 245
238 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 246 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
239 GET_NON_NULL_NATIVE_ARGUMENT(Smi, fraction_digits, arguments->NativeArgAt(1)); 247 GET_NON_NULL_NATIVE_ARGUMENT(Smi, fraction_digits, arguments->NativeArgAt(1));
240 double d = arg.value(); 248 double d = arg.value();
241 intptr_t fraction_digits_value = fraction_digits.Value(); 249 intptr_t fraction_digits_value = fraction_digits.Value();
242 if (0 <= fraction_digits_value && fraction_digits_value <= 20 250 if (0 <= fraction_digits_value && fraction_digits_value <= 20
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 DEFINE_NATIVE_ENTRY(Double_flipSignBit, 1) { 312 DEFINE_NATIVE_ENTRY(Double_flipSignBit, 1) {
305 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 313 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
306 const double in_val = arg.value(); 314 const double in_val = arg.value();
307 const int64_t bits = bit_cast<int64_t, double>(in_val) ^ kSignBitDouble; 315 const int64_t bits = bit_cast<int64_t, double>(in_val) ^ kSignBitDouble;
308 return Double::New(bit_cast<double, int64_t>(bits)); 316 return Double::New(bit_cast<double, int64_t>(bits));
309 } 317 }
310 318
311 // Add here only functions using/referring to old-style casts. 319 // Add here only functions using/referring to old-style casts.
312 320
313 } // namespace dart 321 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/lib/core_sources.gypi ('k') | runtime/lib/double.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698