Index: src/factory.h |
diff --git a/src/factory.h b/src/factory.h |
index 172f473a11fec0d337081193530da29649cbe508..bb2fb7d0b1dcbfe57130f0b9e1c10c3b502fa7c4 100644 |
--- a/src/factory.h |
+++ b/src/factory.h |
@@ -372,6 +372,16 @@ class Factory final { |
} |
return NewNumber(static_cast<double>(value), pretenure); |
} |
+ Handle<Object> NewNumberFromInt64(int64_t value, |
+ PretenureFlag pretenure = NOT_TENURED) { |
+ if (value <= std::numeric_limits<int32_t>::max() && |
+ value >= std::numeric_limits<int32_t>::min() && |
+ Smi::IsValid(static_cast<int32_t>(value))) { |
+ return Handle<Object>(Smi::FromInt(static_cast<int32_t>(value)), |
+ isolate()); |
+ } |
+ return NewNumber(static_cast<double>(value), pretenure); |
+ } |
Handle<HeapNumber> NewHeapNumber(double value, |
MutableMode mode = IMMUTABLE, |
PretenureFlag pretenure = NOT_TENURED); |