| 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 #ifndef V8_FACTORY_H_ | 5 #ifndef V8_FACTORY_H_ |
| 6 #define V8_FACTORY_H_ | 6 #define V8_FACTORY_H_ |
| 7 | 7 |
| 8 #include "src/globals.h" | 8 #include "src/globals.h" |
| 9 #include "src/isolate.h" | 9 #include "src/isolate.h" |
| 10 #include "src/messages.h" | 10 #include "src/messages.h" |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 430 Handle<Object> NewNumberFromInt64(int64_t value, | 430 Handle<Object> NewNumberFromInt64(int64_t value, |
| 431 PretenureFlag pretenure = NOT_TENURED) { | 431 PretenureFlag pretenure = NOT_TENURED) { |
| 432 if (value <= std::numeric_limits<int32_t>::max() && | 432 if (value <= std::numeric_limits<int32_t>::max() && |
| 433 value >= std::numeric_limits<int32_t>::min() && | 433 value >= std::numeric_limits<int32_t>::min() && |
| 434 Smi::IsValid(static_cast<int32_t>(value))) { | 434 Smi::IsValid(static_cast<int32_t>(value))) { |
| 435 return Handle<Object>(Smi::FromInt(static_cast<int32_t>(value)), | 435 return Handle<Object>(Smi::FromInt(static_cast<int32_t>(value)), |
| 436 isolate()); | 436 isolate()); |
| 437 } | 437 } |
| 438 return NewNumber(static_cast<double>(value), pretenure); | 438 return NewNumber(static_cast<double>(value), pretenure); |
| 439 } | 439 } |
| 440 Handle<HeapNumber> NewHeapNumber(double value, | 440 Handle<HeapNumber> NewHeapNumber(double value, MutableMode mode = IMMUTABLE, |
| 441 MutableMode mode = IMMUTABLE, | 441 PretenureFlag pretenure = NOT_TENURED) { |
| 442 PretenureFlag pretenure = NOT_TENURED); | 442 Handle<HeapNumber> heap_number = NewHeapNumber(mode, pretenure); |
| 443 | 443 heap_number->set_value(value); |
| 444 return heap_number; |
| 445 } |
| 446 Handle<HeapNumber> NewHeapNumberFromBits( |
| 447 uint64_t bits, MutableMode mode = IMMUTABLE, |
| 448 PretenureFlag pretenure = NOT_TENURED) { |
| 449 Handle<HeapNumber> heap_number = NewHeapNumber(mode, pretenure); |
| 450 heap_number->set_value_as_bits(bits); |
| 451 return heap_number; |
| 452 } |
| 453 // Creates mutable heap number object with value field set to hole NaN. |
| 444 Handle<HeapNumber> NewMutableHeapNumber( | 454 Handle<HeapNumber> NewMutableHeapNumber( |
| 445 PretenureFlag pretenure = NOT_TENURED) { | 455 PretenureFlag pretenure = NOT_TENURED) { |
| 446 double hole_nan = bit_cast<double>(kHoleNanInt64); | 456 return NewHeapNumberFromBits(kHoleNanInt64, MUTABLE, pretenure); |
| 447 return NewHeapNumber(hole_nan, MUTABLE, pretenure); | |
| 448 } | 457 } |
| 449 | 458 |
| 459 // Creates heap number object with not yet set value field. |
| 460 Handle<HeapNumber> NewHeapNumber(MutableMode mode, |
| 461 PretenureFlag pretenure = NOT_TENURED); |
| 462 |
| 450 #define SIMD128_NEW_DECL(TYPE, Type, type, lane_count, lane_type) \ | 463 #define SIMD128_NEW_DECL(TYPE, Type, type, lane_count, lane_type) \ |
| 451 Handle<Type> New##Type(lane_type lanes[lane_count], \ | 464 Handle<Type> New##Type(lane_type lanes[lane_count], \ |
| 452 PretenureFlag pretenure = NOT_TENURED); | 465 PretenureFlag pretenure = NOT_TENURED); |
| 453 SIMD128_TYPES(SIMD128_NEW_DECL) | 466 SIMD128_TYPES(SIMD128_NEW_DECL) |
| 454 #undef SIMD128_NEW_DECL | 467 #undef SIMD128_NEW_DECL |
| 455 | 468 |
| 456 Handle<JSWeakMap> NewJSWeakMap(); | 469 Handle<JSWeakMap> NewJSWeakMap(); |
| 457 | 470 |
| 458 Handle<JSObject> NewArgumentsObject(Handle<JSFunction> callee, int length); | 471 Handle<JSObject> NewArgumentsObject(Handle<JSFunction> callee, int length); |
| 459 | 472 |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 void SetStrictFunctionInstanceDescriptor(Handle<Map> map, | 835 void SetStrictFunctionInstanceDescriptor(Handle<Map> map, |
| 823 FunctionMode function_mode); | 836 FunctionMode function_mode); |
| 824 | 837 |
| 825 void SetClassFunctionInstanceDescriptor(Handle<Map> map); | 838 void SetClassFunctionInstanceDescriptor(Handle<Map> map); |
| 826 }; | 839 }; |
| 827 | 840 |
| 828 } // namespace internal | 841 } // namespace internal |
| 829 } // namespace v8 | 842 } // namespace v8 |
| 830 | 843 |
| 831 #endif // V8_FACTORY_H_ | 844 #endif // V8_FACTORY_H_ |
| OLD | NEW |