| Index: src/heap-inl.h
|
| ===================================================================
|
| --- src/heap-inl.h (revision 10035)
|
| +++ src/heap-inl.h (working copy)
|
| @@ -229,19 +229,21 @@
|
| }
|
|
|
|
|
| -MaybeObject* Heap::NumberFromInt32(int32_t value) {
|
| +MaybeObject* Heap::NumberFromInt32(
|
| + int32_t value, PretenureFlag pretenure) {
|
| if (Smi::IsValid(value)) return Smi::FromInt(value);
|
| // Bypass NumberFromDouble to avoid various redundant checks.
|
| - return AllocateHeapNumber(FastI2D(value));
|
| + return AllocateHeapNumber(FastI2D(value), pretenure);
|
| }
|
|
|
|
|
| -MaybeObject* Heap::NumberFromUint32(uint32_t value) {
|
| +MaybeObject* Heap::NumberFromUint32(
|
| + uint32_t value, PretenureFlag pretenure) {
|
| if ((int32_t)value >= 0 && Smi::IsValid((int32_t)value)) {
|
| return Smi::FromInt((int32_t)value);
|
| }
|
| // Bypass NumberFromDouble to avoid various redundant checks.
|
| - return AllocateHeapNumber(FastUI2D(value));
|
| + return AllocateHeapNumber(FastUI2D(value), pretenure);
|
| }
|
|
|
|
|
| @@ -253,6 +255,9 @@
|
| ExternalString::kResourceOffset -
|
| kHeapObjectTag);
|
|
|
| + // Clear pointer cache.
|
| + ExternalString::cast(string)->clear_data_cache();
|
| +
|
| // Dispose of the C++ object if it has not already been disposed.
|
| if (*resource_addr != NULL) {
|
| (*resource_addr)->Dispose();
|
|
|