| Index: src/v8globals.h
 | 
| ===================================================================
 | 
| --- src/v8globals.h	(revision 9531)
 | 
| +++ src/v8globals.h	(working copy)
 | 
| @@ -79,18 +79,20 @@
 | 
|      reinterpret_cast<Address>(V8_UINT64_C(0x1beefdad0beefdaf));
 | 
|  const uint64_t kDebugZapValue = V8_UINT64_C(0xbadbaddbbadbaddb);
 | 
|  const uint64_t kSlotsZapValue = V8_UINT64_C(0xbeefdeadbeefdeef);
 | 
| +const uint64_t kFreeListZapValue = 0xfeed1eaffeed1eaf;
 | 
|  #else
 | 
|  const Address kZapValue = reinterpret_cast<Address>(0xdeadbeef);
 | 
|  const Address kHandleZapValue = reinterpret_cast<Address>(0xbaddeaf);
 | 
|  const Address kFromSpaceZapValue = reinterpret_cast<Address>(0xbeefdaf);
 | 
|  const uint32_t kSlotsZapValue = 0xbeefdeef;
 | 
|  const uint32_t kDebugZapValue = 0xbadbaddb;
 | 
| +const uint32_t kFreeListZapValue = 0xfeed1eaf;
 | 
|  #endif
 | 
|  
 | 
|  
 | 
| -// Number of bits to represent the page size for paged spaces. The value of 13
 | 
| -// gives 8K bytes per page.
 | 
| -const int kPageSizeBits = 13;
 | 
| +// Number of bits to represent the page size for paged spaces. The value of 20
 | 
| +// gives 1Mb bytes per page.
 | 
| +const int kPageSizeBits = 20;
 | 
|  
 | 
|  // On Intel architecture, cache line size is 64 bytes.
 | 
|  // On ARM it may be less (32 bytes), but as far this constant is
 | 
| @@ -98,10 +100,6 @@
 | 
|  const int kProcessorCacheLineSize = 64;
 | 
|  
 | 
|  // Constants relevant to double precision floating point numbers.
 | 
| -
 | 
| -// Quiet NaNs have bits 51 to 62 set, possibly the sign bit, and no
 | 
| -// other bits set.
 | 
| -const uint64_t kQuietNaNMask = static_cast<uint64_t>(0xfff) << 51;
 | 
|  // If looking only at the top 32 bits, the QNaN mask is bits 19 to 30.
 | 
|  const uint32_t kQuietNaNHighBitsMask = 0xfff << (51 - 32);
 | 
|  
 | 
| @@ -131,6 +129,7 @@
 | 
|  class FunctionEntry;
 | 
|  class FunctionLiteral;
 | 
|  class FunctionTemplateInfo;
 | 
| +class MemoryChunk;
 | 
|  class NumberDictionary;
 | 
|  class StringDictionary;
 | 
|  template <typename T> class Handle;
 | 
| @@ -254,12 +253,6 @@
 | 
|  };
 | 
|  
 | 
|  
 | 
| -// Callback function on object slots, used for iterating heap object slots in
 | 
| -// HeapObjects, global pointers to heap objects, etc. The callback allows the
 | 
| -// callback function to change the value of the slot.
 | 
| -typedef void (*ObjectSlotCallback)(HeapObject** pointer);
 | 
| -
 | 
| -
 | 
|  // Callback function used for iterating objects in heap spaces,
 | 
|  // for example, scanning heap objects.
 | 
|  typedef int (*HeapObjectCallback)(HeapObject* obj);
 | 
| @@ -306,7 +299,9 @@
 | 
|    NO_CALL_FUNCTION_FLAGS = 0,
 | 
|    // Receiver might implicitly be the global objects. If it is, the
 | 
|    // hole is passed to the call function stub.
 | 
| -  RECEIVER_MIGHT_BE_IMPLICIT = 1 << 0
 | 
| +  RECEIVER_MIGHT_BE_IMPLICIT = 1 << 0,
 | 
| +  // The call target is cached in the instruction stream.
 | 
| +  RECORD_CALL_TARGET = 1 << 1
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -316,6 +311,19 @@
 | 
|  };
 | 
|  
 | 
|  
 | 
| +// The Store Buffer (GC).
 | 
| +typedef enum {
 | 
| +  kStoreBufferFullEvent,
 | 
| +  kStoreBufferStartScanningPagesEvent,
 | 
| +  kStoreBufferScanningPageEvent
 | 
| +} StoreBufferEvent;
 | 
| +
 | 
| +
 | 
| +typedef void (*StoreBufferCallback)(Heap* heap,
 | 
| +                                    MemoryChunk* page,
 | 
| +                                    StoreBufferEvent event);
 | 
| +
 | 
| +
 | 
|  // Type of properties.
 | 
|  // Order of properties is significant.
 | 
|  // Must fit in the BitField PropertyDetails::TypeField.
 | 
| 
 |