| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index 355e24fd6a13b7bb119aa1821bf085dca668b804..795946bffb15644f60ab6dcbe7ce9ee5d3797571 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -1071,10 +1071,12 @@ Handle<Object> Factory::NewNumberFromInt(int32_t value,
|
|
|
|
|
| Handle<Object> Factory::NewNumberFromUint(uint32_t value,
|
| - PretenureFlag pretenure) {
|
| - CALL_HEAP_FUNCTION(
|
| - isolate(),
|
| - isolate()->heap()->NumberFromUint32(value, pretenure), Object);
|
| + PretenureFlag pretenure) {
|
| + int32_t int32v = static_cast<int32_t>(value);
|
| + if (int32v >= 0 && Smi::IsValid(int32v)) {
|
| + return handle(Smi::FromInt(int32v), isolate());
|
| + }
|
| + return NewHeapNumber(FastUI2D(value), pretenure);
|
| }
|
|
|
|
|
| @@ -1397,9 +1399,7 @@ Handle<Code> Factory::NewCode(const CodeDesc& desc,
|
| code->CopyFrom(desc);
|
|
|
| #ifdef VERIFY_HEAP
|
| - if (FLAG_verify_heap) {
|
| - code->Verify();
|
| - }
|
| + if (FLAG_verify_heap) code->ObjectVerify();
|
| #endif
|
| return code;
|
| }
|
|
|