| Index: src/objects.h | 
| diff --git a/src/objects.h b/src/objects.h | 
| index 14767dcc16e4ff7ddfc8b42be0274050f8f5d3e3..80af886b4f5d30337db00d285df22e3e8337ab09 100644 | 
| --- a/src/objects.h | 
| +++ b/src/objects.h | 
| @@ -1541,7 +1541,7 @@ class Object : public MaybeObject { | 
| // For long smis it has the following format: | 
| //     [32 bit signed int] [31 bits zero padding] 0 | 
| // Smi stands for small integer. | 
| -class Smi FINAL : public Object { | 
| +class Smi V8_FINAL : public Object { | 
| public: | 
| // Returns the integer value. | 
| inline int value(); | 
| @@ -1602,7 +1602,7 @@ class Smi FINAL : public Object { | 
| const int kFailureTypeTagSize = 2; | 
| const int kFailureTypeTagMask = (1 << kFailureTypeTagSize) - 1; | 
|  | 
| -class Failure FINAL : public MaybeObject { | 
| +class Failure V8_FINAL : public MaybeObject { | 
| public: | 
| // RuntimeStubs assumes EXCEPTION = 1 in the compiler-generated code. | 
| enum Type { | 
| @@ -1652,7 +1652,7 @@ class Failure FINAL : public MaybeObject { | 
| // during GC other data (e.g. mark bits, forwarding addresses) is sometimes | 
| // encoded in the first word.  The class MapWord is an abstraction of the | 
| // value in a heap object's first word. | 
| -class MapWord FINAL BASE_EMBEDDED { | 
| +class MapWord V8_FINAL BASE_EMBEDDED { | 
| public: | 
| // Normal state: the map word contains a map pointer. | 
|  | 
| @@ -1841,7 +1841,7 @@ class FlexibleBodyDescriptor { | 
|  | 
| // The HeapNumber class describes heap allocated numbers that cannot be | 
| // represented in a Smi (small integer) | 
| -class HeapNumber FINAL : public HeapObject { | 
| +class HeapNumber V8_FINAL : public HeapObject { | 
| public: | 
| // [value]: number value. | 
| inline double value(); | 
| @@ -2681,7 +2681,7 @@ class JSObject : public JSReceiver { | 
|  | 
| #ifdef DEBUG | 
| // Structure for collecting spill information about JSObjects. | 
| -  class SpillInformation FINAL { | 
| +  class SpillInformation V8_FINAL { | 
| public: | 
| void Clear(); | 
| void Print(); | 
| @@ -2742,7 +2742,7 @@ class JSObject : public JSReceiver { | 
|  | 
| STATIC_CHECK(kHeaderSize == Internals::kJSObjectHeaderSize); | 
|  | 
| -  class BodyDescriptor FINAL | 
| +  class BodyDescriptor V8_FINAL | 
| : public FlexibleBodyDescriptor<kPropertiesOffset> { | 
| public: | 
| static inline int SizeOf(Map* map, HeapObject* object); | 
| @@ -2982,7 +2982,7 @@ class FixedArray : public FixedArrayBase { | 
| // object, the prefix of this array is sorted. | 
| void SortPairs(FixedArray* numbers, uint32_t len); | 
|  | 
| -  class BodyDescriptor FINAL : public FlexibleBodyDescriptor<kHeaderSize> { | 
| +  class BodyDescriptor V8_FINAL : public FlexibleBodyDescriptor<kHeaderSize> { | 
| public: | 
| static inline int SizeOf(Map* map, HeapObject* object) { | 
| return SizeFor(reinterpret_cast<FixedArray*>(object)->length()); | 
| @@ -3011,7 +3011,7 @@ class FixedArray : public FixedArrayBase { | 
|  | 
|  | 
| // FixedDoubleArray describes fixed-sized arrays with element type double. | 
| -class FixedDoubleArray FINAL : public FixedArrayBase { | 
| +class FixedDoubleArray V8_FINAL : public FixedArrayBase { | 
| public: | 
| // Setter and getter for elements. | 
| inline double get_scalar(int index); | 
| @@ -3068,7 +3068,7 @@ class FixedDoubleArray FINAL : public FixedArrayBase { | 
| //          [1]: either Smi(0) or pointer to fixed array with indices | 
| //   [2]: first key | 
| //   [2 + number of descriptors * kDescriptorSize]: start of slack | 
| -class DescriptorArray FINAL : public FixedArray { | 
| +class DescriptorArray V8_FINAL : public FixedArray { | 
| public: | 
| // WhitenessWitness is used to prove that a descriptor array is white | 
| // (unmarked), so incremental write barriers can be skipped because the | 
| @@ -3078,7 +3078,7 @@ class DescriptorArray FINAL : public FixedArray { | 
| // witness, incremental marking is globally disabled. The witness is then | 
| // passed along wherever needed to statically prove that the array is known to | 
| // be white. | 
| -  class WhitenessWitness FINAL { | 
| +  class WhitenessWitness V8_FINAL { | 
| public: | 
| inline explicit WhitenessWitness(FixedArray* array); | 
| inline ~WhitenessWitness(); | 
| @@ -3286,7 +3286,7 @@ class DescriptorArray FINAL : public FixedArray { | 
|  | 
| private: | 
| // An entry in a DescriptorArray, represented as an (array, index) pair. | 
| -  class Entry FINAL { | 
| +  class Entry V8_FINAL { | 
| public: | 
| inline explicit Entry(DescriptorArray* descs, int index) : | 
| descs_(descs), index_(index) { } | 
| @@ -3572,7 +3572,7 @@ class HashTableKey { | 
| }; | 
|  | 
|  | 
| -class StringTableShape FINAL : public BaseShape<HashTableKey*> { | 
| +class StringTableShape V8_FINAL : public BaseShape<HashTableKey*> { | 
| public: | 
| static inline bool IsMatch(HashTableKey* key, Object* value) { | 
| return key->IsMatch(value); | 
| @@ -3598,7 +3598,7 @@ class SeqOneByteString; | 
| // | 
| // No special elements in the prefix and the element size is 1 | 
| // because only the string itself (the key) needs to be stored. | 
| -class StringTable FINAL : public HashTable<StringTableShape, HashTableKey*> { | 
| +class StringTable V8_FINAL : public HashTable<StringTableShape, HashTableKey*> { | 
| public: | 
| // Find string in the string table.  If it is not there yet, it is | 
| // added.  The return value is the string table which might have | 
| @@ -3638,7 +3638,7 @@ class StringTable FINAL : public HashTable<StringTableShape, HashTableKey*> { | 
| }; | 
|  | 
|  | 
| -class MapCacheShape FINAL : public BaseShape<HashTableKey*> { | 
| +class MapCacheShape V8_FINAL : public BaseShape<HashTableKey*> { | 
| public: | 
| static inline bool IsMatch(HashTableKey* key, Object* value) { | 
| return key->IsMatch(value); | 
| @@ -3665,7 +3665,7 @@ class MapCacheShape FINAL : public BaseShape<HashTableKey*> { | 
| // | 
| // Maps keys that are a fixed array of unique names to a map. | 
| // Used for canonicalize maps for object literals. | 
| -class MapCache FINAL : public HashTable<MapCacheShape, HashTableKey*> { | 
| +class MapCache V8_FINAL : public HashTable<MapCacheShape, HashTableKey*> { | 
| public: | 
| // Find cached value for a name key, otherwise return null. | 
| Object* Lookup(FixedArray* key); | 
| @@ -3792,7 +3792,7 @@ class Dictionary : public HashTable<Shape, Key> { | 
| }; | 
|  | 
|  | 
| -class NameDictionaryShape FINAL : public BaseShape<Name*> { | 
| +class NameDictionaryShape V8_FINAL : public BaseShape<Name*> { | 
| public: | 
| static inline bool IsMatch(Name* key, Object* other); | 
| static inline uint32_t Hash(Name* key); | 
| @@ -3805,7 +3805,7 @@ class NameDictionaryShape FINAL : public BaseShape<Name*> { | 
| }; | 
|  | 
|  | 
| -class NameDictionary FINAL : public Dictionary<NameDictionaryShape, Name*> { | 
| +class NameDictionary V8_FINAL : public Dictionary<NameDictionaryShape, Name*> { | 
| public: | 
| static inline NameDictionary* cast(Object* obj) { | 
| ASSERT(obj->IsDictionary()); | 
| @@ -3838,7 +3838,7 @@ class NumberDictionaryShape : public BaseShape<uint32_t> { | 
| }; | 
|  | 
|  | 
| -class SeededNumberDictionaryShape FINAL : public NumberDictionaryShape { | 
| +class SeededNumberDictionaryShape V8_FINAL : public NumberDictionaryShape { | 
| public: | 
| static const bool UsesSeed = true; | 
| static const int kPrefixSize = 2; | 
| @@ -3850,7 +3850,7 @@ class SeededNumberDictionaryShape FINAL : public NumberDictionaryShape { | 
| }; | 
|  | 
|  | 
| -class UnseededNumberDictionaryShape FINAL : public NumberDictionaryShape { | 
| +class UnseededNumberDictionaryShape V8_FINAL : public NumberDictionaryShape { | 
| public: | 
| static const int kPrefixSize = 0; | 
|  | 
| @@ -3859,7 +3859,7 @@ class UnseededNumberDictionaryShape FINAL : public NumberDictionaryShape { | 
| }; | 
|  | 
|  | 
| -class SeededNumberDictionary FINAL | 
| +class SeededNumberDictionary V8_FINAL | 
| : public Dictionary<SeededNumberDictionaryShape, uint32_t> { | 
| public: | 
| static SeededNumberDictionary* cast(Object* obj) { | 
| @@ -3907,7 +3907,7 @@ class SeededNumberDictionary FINAL | 
| }; | 
|  | 
|  | 
| -class UnseededNumberDictionary FINAL | 
| +class UnseededNumberDictionary V8_FINAL | 
| : public Dictionary<UnseededNumberDictionaryShape, uint32_t> { | 
| public: | 
| static UnseededNumberDictionary* cast(Object* obj) { | 
| @@ -3931,7 +3931,7 @@ class UnseededNumberDictionary FINAL | 
|  | 
|  | 
| template <int entrysize> | 
| -class ObjectHashTableShape FINAL : public BaseShape<Object*> { | 
| +class ObjectHashTableShape V8_FINAL : public BaseShape<Object*> { | 
| public: | 
| static inline bool IsMatch(Object* key, Object* other); | 
| static inline uint32_t Hash(Object* key); | 
| @@ -3945,7 +3945,8 @@ class ObjectHashTableShape FINAL : public BaseShape<Object*> { | 
|  | 
| // ObjectHashSet holds keys that are arbitrary objects by using the identity | 
| // hash of the key for hashing purposes. | 
| -class ObjectHashSet FINAL : public HashTable<ObjectHashTableShape<1>, Object*> { | 
| +class ObjectHashSet V8_FINAL | 
| +    : public HashTable<ObjectHashTableShape<1>, Object*> { | 
| public: | 
| static inline ObjectHashSet* cast(Object* obj) { | 
| ASSERT(obj->IsHashTable()); | 
| @@ -3965,7 +3966,7 @@ class ObjectHashSet FINAL : public HashTable<ObjectHashTableShape<1>, Object*> { | 
|  | 
| // ObjectHashTable maps keys that are arbitrary objects to object values by | 
| // using the identity hash of the key for hashing purposes. | 
| -class ObjectHashTable FINAL | 
| +class ObjectHashTable V8_FINAL | 
| : public HashTable<ObjectHashTableShape<2>, Object*> { | 
| public: | 
| static inline ObjectHashTable* cast(Object* obj) { | 
| @@ -4001,7 +4002,7 @@ class ObjectHashTable FINAL | 
| //   [2]: current cache size | 
| //   [3]: dummy field. | 
| // The rest of array are key/value pairs. | 
| -class JSFunctionResultCache FINAL : public FixedArray { | 
| +class JSFunctionResultCache V8_FINAL : public FixedArray { | 
| public: | 
| static const int kFactoryIndex = 0; | 
| static const int kFingerIndex = kFactoryIndex + 1; | 
| @@ -4037,7 +4038,7 @@ class JSFunctionResultCache FINAL : public FixedArray { | 
|  | 
| // This object provides quick access to scope info details for runtime | 
| // routines. | 
| -class ScopeInfo FINAL : public FixedArray { | 
| +class ScopeInfo V8_FINAL : public FixedArray { | 
| public: | 
| static inline ScopeInfo* cast(Object* object); | 
|  | 
| @@ -4241,7 +4242,7 @@ class ScopeInfo FINAL : public FixedArray { | 
| // The cache for maps used by normalized (dictionary mode) objects. | 
| // Such maps do not have property descriptors, so a typical program | 
| // needs very limited number of distinct normalized maps. | 
| -class NormalizedMapCache FINAL : public FixedArray { | 
| +class NormalizedMapCache V8_FINAL : public FixedArray { | 
| public: | 
| static const int kEntries = 64; | 
|  | 
| @@ -4259,7 +4260,7 @@ class NormalizedMapCache FINAL : public FixedArray { | 
|  | 
| // ByteArray represents fixed sized byte arrays.  Used for the relocation info | 
| // that is attached to code objects. | 
| -class ByteArray FINAL : public FixedArrayBase { | 
| +class ByteArray V8_FINAL : public FixedArrayBase { | 
| public: | 
| inline int Size() { return RoundUp(length() + kHeaderSize, kPointerSize); } | 
|  | 
| @@ -4314,7 +4315,7 @@ class ByteArray FINAL : public FixedArrayBase { | 
|  | 
| // FreeSpace represents fixed sized areas of the heap that are not currently in | 
| // use.  Used by the heap and GC. | 
| -class FreeSpace FINAL : public HeapObject { | 
| +class FreeSpace V8_FINAL : public HeapObject { | 
| public: | 
| // [size]: size of the free space including the header. | 
| inline int size(); | 
| @@ -4385,7 +4386,7 @@ class ExternalArray : public FixedArrayBase { | 
| //                      multipage/the-canvas-element.html#canvaspixelarray | 
| // In particular, write access clamps the value written to 0 or 255 if the | 
| // value written is outside this range. | 
| -class ExternalPixelArray FINAL : public ExternalArray { | 
| +class ExternalPixelArray V8_FINAL : public ExternalArray { | 
| public: | 
| inline uint8_t* external_pixel_pointer(); | 
|  | 
| @@ -4410,7 +4411,7 @@ class ExternalPixelArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalByteArray FINAL : public ExternalArray { | 
| +class ExternalByteArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline int8_t get_scalar(int index); | 
| @@ -4433,7 +4434,7 @@ class ExternalByteArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalUnsignedByteArray FINAL : public ExternalArray { | 
| +class ExternalUnsignedByteArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline uint8_t get_scalar(int index); | 
| @@ -4456,7 +4457,7 @@ class ExternalUnsignedByteArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalShortArray FINAL : public ExternalArray { | 
| +class ExternalShortArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline int16_t get_scalar(int index); | 
| @@ -4479,7 +4480,7 @@ class ExternalShortArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalUnsignedShortArray FINAL : public ExternalArray { | 
| +class ExternalUnsignedShortArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline uint16_t get_scalar(int index); | 
| @@ -4502,7 +4503,7 @@ class ExternalUnsignedShortArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalIntArray FINAL : public ExternalArray { | 
| +class ExternalIntArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline int32_t get_scalar(int index); | 
| @@ -4525,7 +4526,7 @@ class ExternalIntArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalUnsignedIntArray FINAL : public ExternalArray { | 
| +class ExternalUnsignedIntArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline uint32_t get_scalar(int index); | 
| @@ -4548,7 +4549,7 @@ class ExternalUnsignedIntArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalFloatArray FINAL : public ExternalArray { | 
| +class ExternalFloatArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline float get_scalar(int index); | 
| @@ -4571,7 +4572,7 @@ class ExternalFloatArray FINAL : public ExternalArray { | 
| }; | 
|  | 
|  | 
| -class ExternalDoubleArray FINAL : public ExternalArray { | 
| +class ExternalDoubleArray V8_FINAL : public ExternalArray { | 
| public: | 
| // Setter and getter. | 
| inline double get_scalar(int index); | 
| @@ -4601,7 +4602,7 @@ class ExternalDoubleArray FINAL : public ExternalArray { | 
| // contain these functions. | 
| // | 
| // It can be empty. | 
| -class DeoptimizationInputData FINAL : public FixedArray { | 
| +class DeoptimizationInputData V8_FINAL : public FixedArray { | 
| public: | 
| // Layout description.  Indices in the array. | 
| static const int kTranslationByteArrayIndex = 0; | 
| @@ -4690,7 +4691,7 @@ class DeoptimizationInputData FINAL : public FixedArray { | 
| // The format of the these objects is | 
| //   [i * 2]: Ast ID for ith deoptimization. | 
| //   [i * 2 + 1]: PC and state of ith deoptimization | 
| -class DeoptimizationOutputData FINAL : public FixedArray { | 
| +class DeoptimizationOutputData V8_FINAL : public FixedArray { | 
| public: | 
| int DeoptPoints() { return length() / 2; } | 
|  | 
| @@ -4731,7 +4732,7 @@ class PropertyCell; | 
| // The format of the these objects is | 
| //   [i * 2]: Global property cell of ith cache cell. | 
| //   [i * 2 + 1]: Ast ID for ith cache cell. | 
| -class TypeFeedbackCells FINAL : public FixedArray { | 
| +class TypeFeedbackCells V8_FINAL : public FixedArray { | 
| public: | 
| int CellCount() { return length() / 2; } | 
| static int LengthOfFixedArray(int cell_count) { return cell_count * 2; } | 
| @@ -4772,7 +4773,7 @@ class SafepointEntry; | 
| class TypeFeedbackInfo; | 
|  | 
| // Code describes objects with on-the-fly generated machine code. | 
| -class Code FINAL : public HeapObject { | 
| +class Code V8_FINAL : public HeapObject { | 
| public: | 
| // Opaque data type for encapsulating code flags like kind, inline | 
| // cache state, and arguments count. | 
| @@ -5343,7 +5344,7 @@ class CompilationInfo; | 
| // code object of the first group. In other words, code index 0 corresponds | 
| // to array index n = kCodesStartIndex. | 
|  | 
| -class DependentCode FINAL : public FixedArray { | 
| +class DependentCode V8_FINAL : public FixedArray { | 
| public: | 
| enum DependencyGroup { | 
| // Group of code that weakly embed this map and depend on being | 
| @@ -5368,7 +5369,7 @@ class DependentCode FINAL : public FixedArray { | 
|  | 
| // Array for holding the index of the first code object of each group. | 
| // The last element stores the total number of code objects. | 
| -  class GroupStartIndexes FINAL { | 
| +  class GroupStartIndexes V8_FINAL { | 
| public: | 
| explicit GroupStartIndexes(DependentCode* entries); | 
| void Recompute(DependentCode* entries); | 
| @@ -6074,7 +6075,7 @@ class Struct: public HeapObject { | 
|  | 
|  | 
| // A simple one-element struct, useful where smis need to be boxed. | 
| -class Box FINAL : public Struct { | 
| +class Box V8_FINAL : public Struct { | 
| public: | 
| // [value]: the boxed contents. | 
| DECL_ACCESSORS(value, Object) | 
| @@ -6094,7 +6095,7 @@ class Box FINAL : public Struct { | 
|  | 
|  | 
| // Script describes a script which has been added to the VM. | 
| -class Script FINAL : public Struct { | 
| +class Script V8_FINAL : public Struct { | 
| public: | 
| // Script types. | 
| enum Type { | 
| @@ -6263,7 +6264,7 @@ enum BuiltinFunctionId { | 
|  | 
| // SharedFunctionInfo describes the JSFunction information that can be | 
| // shared by multiple instances of the function. | 
| -class SharedFunctionInfo FINAL : public HeapObject { | 
| +class SharedFunctionInfo V8_FINAL : public HeapObject { | 
| public: | 
| // [name]: Function name. | 
| DECL_ACCESSORS(name, Object) | 
| @@ -6842,7 +6843,7 @@ class SharedFunctionInfo FINAL : public HeapObject { | 
| }; | 
|  | 
|  | 
| -class JSGeneratorObject FINAL : public JSObject { | 
| +class JSGeneratorObject V8_FINAL : public JSObject { | 
| public: | 
| // [function]: The function corresponding to this generator object. | 
| DECL_ACCESSORS(function, JSFunction) | 
| @@ -6910,7 +6911,7 @@ class JSGeneratorObject FINAL : public JSObject { | 
|  | 
|  | 
| // Representation for module instance objects. | 
| -class JSModule FINAL : public JSObject { | 
| +class JSModule V8_FINAL : public JSObject { | 
| public: | 
| // [context]: the context holding the module's locals, or undefined if none. | 
| DECL_ACCESSORS(context, Object) | 
| @@ -6936,7 +6937,7 @@ class JSModule FINAL : public JSObject { | 
|  | 
|  | 
| // JSFunction describes JavaScript functions. | 
| -class JSFunction FINAL : public JSObject { | 
| +class JSFunction V8_FINAL : public JSObject { | 
| public: | 
| // [prototype_or_initial_map]: | 
| DECL_ACCESSORS(prototype_or_initial_map, Object) | 
| @@ -7123,7 +7124,7 @@ class JSFunction FINAL : public JSObject { | 
| // | 
| // Accessing a JSGlobalProxy requires security check. | 
|  | 
| -class JSGlobalProxy FINAL : public JSObject { | 
| +class JSGlobalProxy V8_FINAL : public JSObject { | 
| public: | 
| // [native_context]: the owner native context of this global proxy object. | 
| // It is null value if this object is not used by any context. | 
| @@ -7196,7 +7197,7 @@ class GlobalObject : public JSObject { | 
|  | 
|  | 
| // JavaScript global object. | 
| -class JSGlobalObject FINAL : public GlobalObject { | 
| +class JSGlobalObject V8_FINAL : public GlobalObject { | 
| public: | 
| // Casting. | 
| static inline JSGlobalObject* cast(Object* obj); | 
| @@ -7215,7 +7216,7 @@ class JSGlobalObject FINAL : public GlobalObject { | 
|  | 
| // Builtins global object which holds the runtime routines written in | 
| // JavaScript. | 
| -class JSBuiltinsObject FINAL : public GlobalObject { | 
| +class JSBuiltinsObject V8_FINAL : public GlobalObject { | 
| public: | 
| // Accessors for the runtime routines written in JavaScript. | 
| inline Object* javascript_builtin(Builtins::JavaScript id); | 
| @@ -7256,7 +7257,7 @@ class JSBuiltinsObject FINAL : public GlobalObject { | 
|  | 
|  | 
| // Representation for JS Wrapper objects, String, Number, Boolean, etc. | 
| -class JSValue FINAL : public JSObject { | 
| +class JSValue V8_FINAL : public JSObject { | 
| public: | 
| // [value]: the object being wrapped. | 
| DECL_ACCESSORS(value, Object) | 
| @@ -7280,7 +7281,7 @@ class JSValue FINAL : public JSObject { | 
| class DateCache; | 
|  | 
| // Representation for JS date objects. | 
| -class JSDate FINAL : public JSObject { | 
| +class JSDate V8_FINAL : public JSObject { | 
| public: | 
| // If one component is NaN, all of them are, indicating a NaN time value. | 
| // [value]: the time value. | 
| @@ -7377,7 +7378,7 @@ class JSDate FINAL : public JSObject { | 
| // error messages are not directly accessible from JavaScript to | 
| // prevent leaking information to user code called during error | 
| // formatting. | 
| -class JSMessageObject FINAL : public JSObject { | 
| +class JSMessageObject V8_FINAL : public JSObject { | 
| public: | 
| // [type]: the type of error message. | 
| DECL_ACCESSORS(type, String) | 
| @@ -7441,7 +7442,7 @@ class JSMessageObject FINAL : public JSObject { | 
| // used for tracking the last usage (used for code flushing).. | 
| // - max number of registers used by irregexp implementations. | 
| // - number of capture registers (output values) of the regexp. | 
| -class JSRegExp FINAL : public JSObject { | 
| +class JSRegExp V8_FINAL : public JSObject { | 
| public: | 
| // Meaning of Type: | 
| // NOT_COMPILED: Initial value. No data has been stored in the JSRegExp yet. | 
| @@ -7564,7 +7565,7 @@ class JSRegExp FINAL : public JSObject { | 
| }; | 
|  | 
|  | 
| -class CompilationCacheShape FINAL  : public BaseShape<HashTableKey*> { | 
| +class CompilationCacheShape V8_FINAL  : public BaseShape<HashTableKey*> { | 
| public: | 
| static inline bool IsMatch(HashTableKey* key, Object* value) { | 
| return key->IsMatch(value); | 
| @@ -7588,7 +7589,7 @@ class CompilationCacheShape FINAL  : public BaseShape<HashTableKey*> { | 
| }; | 
|  | 
|  | 
| -class CompilationCacheTable FINAL : public HashTable<CompilationCacheShape, | 
| +class CompilationCacheTable V8_FINAL : public HashTable<CompilationCacheShape, | 
| HashTableKey*> { | 
| public: | 
| // Find cached value for a string key, otherwise return null. | 
| @@ -7619,7 +7620,7 @@ class CompilationCacheTable FINAL : public HashTable<CompilationCacheShape, | 
| }; | 
|  | 
|  | 
| -class CodeCache FINAL : public Struct { | 
| +class CodeCache V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(default_cache, FixedArray) | 
| DECL_ACCESSORS(normal_type_cache, Object) | 
| @@ -7667,7 +7668,7 @@ class CodeCache FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class CodeCacheHashTableShape FINAL : public BaseShape<HashTableKey*> { | 
| +class CodeCacheHashTableShape V8_FINAL : public BaseShape<HashTableKey*> { | 
| public: | 
| static inline bool IsMatch(HashTableKey* key, Object* value) { | 
| return key->IsMatch(value); | 
| @@ -7691,7 +7692,7 @@ class CodeCacheHashTableShape FINAL : public BaseShape<HashTableKey*> { | 
| }; | 
|  | 
|  | 
| -class CodeCacheHashTable FINAL : public HashTable<CodeCacheHashTableShape, | 
| +class CodeCacheHashTable V8_FINAL : public HashTable<CodeCacheHashTableShape, | 
| HashTableKey*> { | 
| public: | 
| Object* Lookup(Name* name, Code::Flags flags); | 
| @@ -7710,7 +7711,7 @@ class CodeCacheHashTable FINAL : public HashTable<CodeCacheHashTableShape, | 
| }; | 
|  | 
|  | 
| -class PolymorphicCodeCache FINAL : public Struct { | 
| +class PolymorphicCodeCache V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(cache, Object) | 
|  | 
| @@ -7740,7 +7741,7 @@ class PolymorphicCodeCache FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class PolymorphicCodeCacheHashTable FINAL | 
| +class PolymorphicCodeCacheHashTable V8_FINAL | 
| : public HashTable<CodeCacheHashTableShape, HashTableKey*> { | 
| public: | 
| Object* Lookup(MapHandleList* maps, int code_kind); | 
| @@ -7757,7 +7758,7 @@ class PolymorphicCodeCacheHashTable FINAL | 
| }; | 
|  | 
|  | 
| -class TypeFeedbackInfo FINAL : public Struct { | 
| +class TypeFeedbackInfo V8_FINAL : public Struct { | 
| public: | 
| inline int ic_total_count(); | 
| inline void set_ic_total_count(int count); | 
| @@ -7811,7 +7812,7 @@ enum AllocationSiteMode { | 
| }; | 
|  | 
|  | 
| -class AllocationSite FINAL : public Struct { | 
| +class AllocationSite V8_FINAL : public Struct { | 
| public: | 
| static const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024; | 
|  | 
| @@ -7859,7 +7860,7 @@ class AllocationSite FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class AllocationMemento FINAL : public Struct { | 
| +class AllocationMemento V8_FINAL : public Struct { | 
| public: | 
| static const int kAllocationSiteOffset = HeapObject::kHeaderSize; | 
| static const int kSize = kAllocationSiteOffset + kPointerSize; | 
| @@ -7892,7 +7893,7 @@ class AllocationMemento FINAL : public Struct { | 
| // - the parameter map contains no fast alias mapping (i.e. the hole) | 
| // - this struct (in the slow backing store) contains an index into the context | 
| // - all attributes are available as part if the property details | 
| -class AliasedArgumentsEntry FINAL : public Struct { | 
| +class AliasedArgumentsEntry V8_FINAL : public Struct { | 
| public: | 
| inline int aliased_context_slot(); | 
| inline void set_aliased_context_slot(int count); | 
| @@ -7980,7 +7981,7 @@ class StringHasher { | 
| // shortcutting.  Keeping these restrictions in mind has proven to be error- | 
| // prone and so we no longer put StringShapes in variables unless there is a | 
| // concrete performance benefit at that particular point in the code. | 
| -class StringShape FINAL BASE_EMBEDDED { | 
| +class StringShape V8_FINAL BASE_EMBEDDED { | 
| public: | 
| inline explicit StringShape(String* s); | 
| inline explicit StringShape(Map* s); | 
| @@ -8105,7 +8106,7 @@ class Name : public HeapObject { | 
|  | 
|  | 
| // ES6 symbols. | 
| -class Symbol FINAL : public Name { | 
| +class Symbol V8_FINAL : public Name { | 
| public: | 
| // [name]: the print name of a symbol, or undefined if none. | 
| DECL_ACCESSORS(name, Object) | 
| @@ -8474,7 +8475,7 @@ class SeqString : public String { | 
|  | 
| // The AsciiString class captures sequential ASCII string objects. | 
| // Each character in the AsciiString is an ASCII character. | 
| -class SeqOneByteString FINAL : public SeqString { | 
| +class SeqOneByteString V8_FINAL : public SeqString { | 
| public: | 
| static const bool kHasAsciiEncoding = true; | 
|  | 
| @@ -8513,7 +8514,7 @@ class SeqOneByteString FINAL : public SeqString { | 
|  | 
| // The TwoByteString class captures sequential unicode string objects. | 
| // Each character in the TwoByteString is a two-byte uint16_t. | 
| -class SeqTwoByteString FINAL : public SeqString { | 
| +class SeqTwoByteString V8_FINAL : public SeqString { | 
| public: | 
| static const bool kHasAsciiEncoding = false; | 
|  | 
| @@ -8561,7 +8562,7 @@ class SeqTwoByteString FINAL : public SeqString { | 
| // are non-ConsString string values.  The string value represented by | 
| // a ConsString can be obtained by concatenating the leaf string | 
| // values in a left-to-right depth-first traversal of the tree. | 
| -class ConsString FINAL : public String { | 
| +class ConsString V8_FINAL : public String { | 
| public: | 
| // First string of the cons cell. | 
| inline String* first(); | 
| @@ -8615,7 +8616,7 @@ class ConsString FINAL : public String { | 
| //  - handling externalized parent strings | 
| //  - external strings as parent | 
| //  - truncating sliced string to enable otherwise unneeded parent to be GC'ed. | 
| -class SlicedString FINAL : public String { | 
| +class SlicedString V8_FINAL : public String { | 
| public: | 
| inline String* parent(); | 
| inline void set_parent(String* parent, | 
| @@ -8683,7 +8684,7 @@ class ExternalString : public String { | 
|  | 
| // The ExternalAsciiString class is an external string backed by an | 
| // ASCII string. | 
| -class ExternalAsciiString FINAL : public ExternalString { | 
| +class ExternalAsciiString V8_FINAL : public ExternalString { | 
| public: | 
| static const bool kHasAsciiEncoding = true; | 
|  | 
| @@ -8720,7 +8721,7 @@ class ExternalAsciiString FINAL : public ExternalString { | 
|  | 
| // The ExternalTwoByteString class is an external string backed by a UTF-16 | 
| // encoded string. | 
| -class ExternalTwoByteString FINAL : public ExternalString { | 
| +class ExternalTwoByteString V8_FINAL : public ExternalString { | 
| public: | 
| static const bool kHasAsciiEncoding = false; | 
|  | 
| @@ -8784,7 +8785,7 @@ class Relocatable BASE_EMBEDDED { | 
| // A flat string reader provides random access to the contents of a | 
| // string independent of the character width of the string.  The handle | 
| // must be valid as long as the reader is being used. | 
| -class FlatStringReader FINAL : public Relocatable { | 
| +class FlatStringReader V8_FINAL : public Relocatable { | 
| public: | 
| FlatStringReader(Isolate* isolate, Handle<String> str); | 
| FlatStringReader(Isolate* isolate, Vector<const char> input); | 
| @@ -8802,7 +8803,7 @@ class FlatStringReader FINAL : public Relocatable { | 
| // A ConsStringOp that returns null. | 
| // Useful when the operation to apply on a ConsString | 
| // requires an expensive data structure. | 
| -class ConsStringNullOp FINAL { | 
| +class ConsStringNullOp V8_FINAL { | 
| public: | 
| inline ConsStringNullOp() {} | 
| static inline String* Operate(String*, unsigned*, int32_t*, unsigned*); | 
| @@ -8815,7 +8816,7 @@ class ConsStringNullOp FINAL { | 
| // to traverse a ConsString, allowing an entirely iterative and restartable | 
| // traversal of the entire string | 
| // Note: this class is not GC-safe. | 
| -class ConsStringIteratorOp FINAL { | 
| +class ConsStringIteratorOp V8_FINAL { | 
| public: | 
| inline ConsStringIteratorOp() {} | 
| String* Operate(String* string, | 
| @@ -8855,7 +8856,7 @@ class ConsStringIteratorOp FINAL { | 
|  | 
|  | 
| // Note: this class is not GC-safe. | 
| -class StringCharacterStream FINAL { | 
| +class StringCharacterStream V8_FINAL { | 
| public: | 
| inline StringCharacterStream(String* string, | 
| ConsStringIteratorOp* op, | 
| @@ -8879,7 +8880,7 @@ class StringCharacterStream FINAL { | 
|  | 
|  | 
| template <typename T> | 
| -class VectorIterator FINAL { | 
| +class VectorIterator V8_FINAL { | 
| public: | 
| VectorIterator(T* d, int l) : data_(Vector<const T>(d, l)), index_(0) { } | 
| explicit VectorIterator(Vector<const T> data) : data_(data), index_(0) { } | 
| @@ -8892,7 +8893,7 @@ class VectorIterator FINAL { | 
|  | 
|  | 
| // The Oddball describes objects null, undefined, true, and false. | 
| -class Oddball FINAL : public HeapObject { | 
| +class Oddball V8_FINAL : public HeapObject { | 
| public: | 
| // [to_string]: Cached to_string computed at startup. | 
| DECL_ACCESSORS(to_string, String) | 
| @@ -8978,7 +8979,7 @@ class Cell : public HeapObject { | 
| }; | 
|  | 
|  | 
| -class PropertyCell FINAL : public Cell { | 
| +class PropertyCell V8_FINAL : public Cell { | 
| public: | 
| // [type]: type of the global property. | 
| Type* type(); | 
| @@ -9134,7 +9135,7 @@ class JSProxy : public JSReceiver { | 
| }; | 
|  | 
|  | 
| -class JSFunctionProxy FINAL : public JSProxy { | 
| +class JSFunctionProxy V8_FINAL : public JSProxy { | 
| public: | 
| // [call_trap]: The call trap. | 
| DECL_ACCESSORS(call_trap, Object) | 
| @@ -9168,7 +9169,7 @@ class JSFunctionProxy FINAL : public JSProxy { | 
|  | 
|  | 
| // The JSSet describes EcmaScript Harmony sets | 
| -class JSSet FINAL : public JSObject { | 
| +class JSSet V8_FINAL : public JSObject { | 
| public: | 
| // [set]: the backing hash set containing keys. | 
| DECL_ACCESSORS(table, Object) | 
| @@ -9189,7 +9190,7 @@ class JSSet FINAL : public JSObject { | 
|  | 
|  | 
| // The JSMap describes EcmaScript Harmony maps | 
| -class JSMap FINAL : public JSObject { | 
| +class JSMap V8_FINAL : public JSObject { | 
| public: | 
| // [table]: the backing hash table mapping keys to values. | 
| DECL_ACCESSORS(table, Object) | 
| @@ -9228,7 +9229,7 @@ class JSWeakCollection : public JSObject { | 
|  | 
|  | 
| // The JSWeakMap describes EcmaScript Harmony weak maps | 
| -class JSWeakMap FINAL : public JSWeakCollection { | 
| +class JSWeakMap V8_FINAL : public JSWeakCollection { | 
| public: | 
| // Casting. | 
| static inline JSWeakMap* cast(Object* obj); | 
| @@ -9243,7 +9244,7 @@ class JSWeakMap FINAL : public JSWeakCollection { | 
|  | 
|  | 
| // The JSWeakSet describes EcmaScript Harmony weak sets | 
| -class JSWeakSet FINAL : public JSWeakCollection { | 
| +class JSWeakSet V8_FINAL : public JSWeakCollection { | 
| public: | 
| // Casting. | 
| static inline JSWeakSet* cast(Object* obj); | 
| @@ -9338,7 +9339,7 @@ class JSArrayBufferView : public JSObject { | 
| }; | 
|  | 
|  | 
| -class JSTypedArray FINAL : public JSArrayBufferView { | 
| +class JSTypedArray V8_FINAL : public JSArrayBufferView { | 
| public: | 
| // [length]: length of typed array in elements. | 
| DECL_ACCESSORS(length, Object) | 
| @@ -9367,7 +9368,7 @@ class JSTypedArray FINAL : public JSArrayBufferView { | 
| }; | 
|  | 
|  | 
| -class JSDataView FINAL : public JSArrayBufferView { | 
| +class JSDataView V8_FINAL : public JSArrayBufferView { | 
| public: | 
| // Only neuters this DataView | 
| void Neuter(); | 
| @@ -9392,7 +9393,7 @@ class JSDataView FINAL : public JSArrayBufferView { | 
| // Foreign describes objects pointing from JavaScript to C structures. | 
| // Since they cannot contain references to JS HeapObjects they can be | 
| // placed in old_data_space. | 
| -class Foreign FINAL : public HeapObject { | 
| +class Foreign V8_FINAL : public HeapObject { | 
| public: | 
| // [address]: field containing the address. | 
| inline Address foreign_address(); | 
| @@ -9490,7 +9491,7 @@ Handle<Object> CacheInitialJSArrayMaps(Handle<Context> native_context, | 
| // faster creation of RegExp exec results. | 
| // This class just holds constants used when creating the result. | 
| // After creation the result must be treated as a JSArray in all regards. | 
| -class JSRegExpResult FINAL : public JSArray { | 
| +class JSRegExpResult V8_FINAL : public JSArray { | 
| public: | 
| // Offsets of object fields. | 
| static const int kIndexOffset = JSArray::kSize; | 
| @@ -9601,7 +9602,7 @@ struct DeclaredAccessorDescriptorData { | 
| class DeclaredAccessorDescriptor; | 
|  | 
|  | 
| -class DeclaredAccessorDescriptorIterator FINAL { | 
| +class DeclaredAccessorDescriptorIterator V8_FINAL { | 
| public: | 
| explicit DeclaredAccessorDescriptorIterator( | 
| DeclaredAccessorDescriptor* descriptor); | 
| @@ -9615,7 +9616,7 @@ class DeclaredAccessorDescriptorIterator FINAL { | 
| }; | 
|  | 
|  | 
| -class DeclaredAccessorDescriptor FINAL : public Struct { | 
| +class DeclaredAccessorDescriptor V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(serialized_data, ByteArray) | 
|  | 
| @@ -9638,7 +9639,7 @@ class DeclaredAccessorDescriptor FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class DeclaredAccessorInfo FINAL : public AccessorInfo { | 
| +class DeclaredAccessorInfo V8_FINAL : public AccessorInfo { | 
| public: | 
| DECL_ACCESSORS(descriptor, DeclaredAccessorDescriptor) | 
|  | 
| @@ -9665,7 +9666,7 @@ class DeclaredAccessorInfo FINAL : public AccessorInfo { | 
| // If the accessor in the prototype has the READ_ONLY property attribute, then | 
| // a new value is added to the local object when the property is set. | 
| // This shadows the accessor in the prototype. | 
| -class ExecutableAccessorInfo FINAL : public AccessorInfo { | 
| +class ExecutableAccessorInfo V8_FINAL : public AccessorInfo { | 
| public: | 
| DECL_ACCESSORS(getter, Object) | 
| DECL_ACCESSORS(setter, Object) | 
| @@ -9693,7 +9694,7 @@ class ExecutableAccessorInfo FINAL : public AccessorInfo { | 
| //   * undefined: considered an accessor by the spec, too, strangely enough | 
| //   * the hole: an accessor which has not been set | 
| //   * a pointer to a map: a transition used to ensure map sharing | 
| -class AccessorPair FINAL : public Struct { | 
| +class AccessorPair V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(getter, Object) | 
| DECL_ACCESSORS(setter, Object) | 
| @@ -9749,7 +9750,7 @@ class AccessorPair FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class AccessCheckInfo FINAL : public Struct { | 
| +class AccessCheckInfo V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(named_callback, Object) | 
| DECL_ACCESSORS(indexed_callback, Object) | 
| @@ -9771,7 +9772,7 @@ class AccessCheckInfo FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class InterceptorInfo FINAL : public Struct { | 
| +class InterceptorInfo V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(getter, Object) | 
| DECL_ACCESSORS(setter, Object) | 
| @@ -9799,7 +9800,7 @@ class InterceptorInfo FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class CallHandlerInfo FINAL : public Struct { | 
| +class CallHandlerInfo V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(callback, Object) | 
| DECL_ACCESSORS(data, Object) | 
| @@ -9835,7 +9836,7 @@ class TemplateInfo: public Struct { | 
| }; | 
|  | 
|  | 
| -class FunctionTemplateInfo FINAL : public TemplateInfo { | 
| +class FunctionTemplateInfo V8_FINAL : public TemplateInfo { | 
| public: | 
| DECL_ACCESSORS(serial_number, Object) | 
| DECL_ACCESSORS(call_code, Object) | 
| @@ -9901,7 +9902,7 @@ class FunctionTemplateInfo FINAL : public TemplateInfo { | 
| }; | 
|  | 
|  | 
| -class ObjectTemplateInfo FINAL : public TemplateInfo { | 
| +class ObjectTemplateInfo V8_FINAL : public TemplateInfo { | 
| public: | 
| DECL_ACCESSORS(constructor, Object) | 
| DECL_ACCESSORS(internal_field_count, Object) | 
| @@ -9919,7 +9920,7 @@ class ObjectTemplateInfo FINAL : public TemplateInfo { | 
| }; | 
|  | 
|  | 
| -class SignatureInfo FINAL : public Struct { | 
| +class SignatureInfo V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(receiver, Object) | 
| DECL_ACCESSORS(args, Object) | 
| @@ -9939,7 +9940,7 @@ class SignatureInfo FINAL : public Struct { | 
| }; | 
|  | 
|  | 
| -class TypeSwitchInfo FINAL : public Struct { | 
| +class TypeSwitchInfo V8_FINAL : public Struct { | 
| public: | 
| DECL_ACCESSORS(types, Object) | 
|  | 
| @@ -9957,7 +9958,7 @@ class TypeSwitchInfo FINAL : public Struct { | 
| #ifdef ENABLE_DEBUGGER_SUPPORT | 
| // The DebugInfo class holds additional information for a function being | 
| // debugged. | 
| -class DebugInfo FINAL : public Struct { | 
| +class DebugInfo V8_FINAL : public Struct { | 
| public: | 
| // The shared function info for the source being debugged. | 
| DECL_ACCESSORS(shared, SharedFunctionInfo) | 
| @@ -10017,7 +10018,7 @@ class DebugInfo FINAL : public Struct { | 
| // The BreakPointInfo class holds information for break points set in a | 
| // function. The DebugInfo object holds a BreakPointInfo object for each code | 
| // position with one or more break points. | 
| -class BreakPointInfo FINAL : public Struct { | 
| +class BreakPointInfo V8_FINAL : public Struct { | 
| public: | 
| // The position in the code for the break point. | 
| DECL_ACCESSORS(code_position, Smi) | 
| @@ -10082,7 +10083,7 @@ class BreakPointInfo FINAL : public Struct { | 
| V(kThreadManager, "threadmanager", "(Thread manager)")                \ | 
| V(kExtensions, "Extensions", "(Extensions)") | 
|  | 
| -class VisitorSynchronization FINAL : public AllStatic { | 
| +class VisitorSynchronization V8_FINAL : public AllStatic { | 
| public: | 
| #define DECLARE_ENUM(enum_item, ignore1, ignore2) enum_item, | 
| enum SyncTag { | 
| @@ -10160,7 +10161,7 @@ class ObjectVisitor BASE_EMBEDDED { | 
| }; | 
|  | 
|  | 
| -class StructBodyDescriptor FINAL : public | 
| +class StructBodyDescriptor V8_FINAL : public | 
| FlexibleBodyDescriptor<HeapObject::kHeaderSize> { | 
| public: | 
| static inline int SizeOf(Map* map, HeapObject* object) { | 
| @@ -10171,7 +10172,7 @@ class StructBodyDescriptor FINAL : public | 
|  | 
| // BooleanBit is a helper class for setting and getting a bit in an | 
| // integer or Smi. | 
| -class BooleanBit FINAL : public AllStatic { | 
| +class BooleanBit V8_FINAL : public AllStatic { | 
| public: | 
| static inline bool get(Smi* smi, int bit_position) { | 
| return get(smi->value(), bit_position); | 
|  |