OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 | 264 |
265 CONVERT_DOUBLE_ARG_CHECKED(number, 0); | 265 CONVERT_DOUBLE_ARG_CHECKED(number, 0); |
266 double double_value = DoubleToInteger(number); | 266 double double_value = DoubleToInteger(number); |
267 // Map both -0 and +0 to +0. | 267 // Map both -0 and +0 to +0. |
268 if (double_value == 0) double_value = 0; | 268 if (double_value == 0) double_value = 0; |
269 | 269 |
270 return *isolate->factory()->NewNumber(double_value); | 270 return *isolate->factory()->NewNumber(double_value); |
271 } | 271 } |
272 | 272 |
273 | 273 |
274 RUNTIME_FUNCTION(Runtime_NumberToJSUint32) { | |
275 HandleScope scope(isolate); | |
276 DCHECK(args.length() == 1); | |
277 | |
278 CONVERT_NUMBER_CHECKED(int32_t, number, Uint32, args[0]); | |
279 return *isolate->factory()->NewNumberFromUint(number); | |
280 } | |
281 | |
282 | |
283 RUNTIME_FUNCTION(Runtime_NumberToJSInt32) { | |
284 HandleScope scope(isolate); | |
285 DCHECK(args.length() == 1); | |
286 | |
287 CONVERT_DOUBLE_ARG_CHECKED(number, 0); | |
288 return *isolate->factory()->NewNumberFromInt(DoubleToInt32(number)); | |
289 } | |
290 | |
291 | |
292 // Converts a Number to a Smi, if possible. Returns NaN if the number is not | 274 // Converts a Number to a Smi, if possible. Returns NaN if the number is not |
293 // a small integer. | 275 // a small integer. |
294 RUNTIME_FUNCTION(Runtime_NumberToSmi) { | 276 RUNTIME_FUNCTION(Runtime_NumberToSmi) { |
295 SealHandleScope shs(isolate); | 277 SealHandleScope shs(isolate); |
296 DCHECK(args.length() == 1); | 278 DCHECK(args.length() == 1); |
297 CONVERT_ARG_CHECKED(Object, obj, 0); | 279 CONVERT_ARG_CHECKED(Object, obj, 0); |
298 if (obj->IsSmi()) { | 280 if (obj->IsSmi()) { |
299 return obj; | 281 return obj; |
300 } | 282 } |
301 if (obj->IsHeapNumber()) { | 283 if (obj->IsHeapNumber()) { |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 } | 557 } |
576 | 558 |
577 | 559 |
578 RUNTIME_FUNCTION(Runtime_GetRootNaN) { | 560 RUNTIME_FUNCTION(Runtime_GetRootNaN) { |
579 SealHandleScope shs(isolate); | 561 SealHandleScope shs(isolate); |
580 DCHECK(args.length() == 0); | 562 DCHECK(args.length() == 0); |
581 return isolate->heap()->nan_value(); | 563 return isolate->heap()->nan_value(); |
582 } | 564 } |
583 } // namespace internal | 565 } // namespace internal |
584 } // namespace v8 | 566 } // namespace v8 |
OLD | NEW |