Update V8 to r5091 as required by WebKit r63859.
Change-Id: I8e35d765e6f6c7f89eccff900e1cabe2d5dd6110
diff --git a/src/objects.h b/src/objects.h
index 4a7dee6..2b64611 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -2012,7 +2012,7 @@
static const int kMaxCapacity =
(FixedArray::kMaxLength - kElementsStartOffset) / kEntrySize;
- // Find entry for key otherwise return -1.
+ // Find entry for key otherwise return kNotFound.
int FindEntry(Key key);
protected:
@@ -2294,6 +2294,10 @@
// For transforming properties of a JSObject.
Object* TransformPropertiesToFastFor(JSObject* obj,
int unused_property_fields);
+
+ // Find entry for key otherwise return kNotFound. Optimzed version of
+ // HashTable::FindEntry.
+ int FindEntry(String* key);
};
@@ -2744,10 +2748,6 @@
inline int relocation_size();
- // [sinfo_size]: Size of scope information.
- inline int sinfo_size();
- inline void set_sinfo_size(int value);
-
// [flags]: Various code flags.
inline Flags flags();
inline void set_flags(Flags flags);
@@ -2816,9 +2816,6 @@
// Returns true if pc is inside this object's instructions.
inline bool contains(byte* pc);
- // Returns the address of the scope information.
- inline byte* sinfo_start();
-
// Relocate the code by delta bytes. Called to signal that this code
// object has been moved by delta bytes.
void Relocate(intptr_t delta);
@@ -2826,12 +2823,10 @@
// Migrate code described by desc.
void CopyFrom(const CodeDesc& desc);
- // Returns the object size for a given body and sinfo size (Used for
- // allocation).
- static int SizeFor(int body_size, int sinfo_size) {
+ // Returns the object size for a given body (used for allocation).
+ static int SizeFor(int body_size) {
ASSERT_SIZE_TAG_ALIGNED(body_size);
- ASSERT_SIZE_TAG_ALIGNED(sinfo_size);
- return RoundUp(kHeaderSize + body_size + sinfo_size, kCodeAlignment);
+ return RoundUp(kHeaderSize + body_size, kCodeAlignment);
}
// Calculate the size of the code object to report for log events. This takes
@@ -2851,7 +2846,7 @@
static inline Code* cast(Object* obj);
// Dispatched behavior.
- int CodeSize() { return SizeFor(body_size(), sinfo_size()); }
+ int CodeSize() { return SizeFor(body_size()); }
void CodeIterateBody(ObjectVisitor* v);
#ifdef DEBUG
void CodePrint();
@@ -2865,8 +2860,7 @@
// Layout description.
static const int kInstructionSizeOffset = HeapObject::kHeaderSize;
static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize;
- static const int kSInfoSizeOffset = kRelocationInfoOffset + kPointerSize;
- static const int kFlagsOffset = kSInfoSizeOffset + kIntSize;
+ static const int kFlagsOffset = kRelocationInfoOffset + kPointerSize;
static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize;
// Add padding to align the instruction start following right after
// the Code object header.
@@ -2899,6 +2893,7 @@
DISALLOW_IMPLICIT_CONSTRUCTORS(Code);
};
+typedef void (*Scavenger)(Map* map, HeapObject** slot, HeapObject* object);
// All heap objects have a Map that describes their structure.
// A Map contains information about:
@@ -3100,6 +3095,13 @@
void MapVerify();
#endif
+ inline Scavenger scavenger();
+ inline void set_scavenger(Scavenger callback);
+
+ inline void Scavenge(HeapObject** slot, HeapObject* obj) {
+ scavenger()(this, slot, obj);
+ }
+
static const int kMaxPreAllocatedPropertyFields = 255;
// Layout description.
@@ -3110,7 +3112,8 @@
static const int kInstanceDescriptorsOffset =
kConstructorOffset + kPointerSize;
static const int kCodeCacheOffset = kInstanceDescriptorsOffset + kPointerSize;
- static const int kPadStart = kCodeCacheOffset + kPointerSize;
+ static const int kScavengerCallbackOffset = kCodeCacheOffset + kPointerSize;
+ static const int kPadStart = kScavengerCallbackOffset + kPointerSize;
static const int kSize = MAP_POINTER_ALIGN(kPadStart);
// Layout of pointer fields. Heap iteration code relies on them
@@ -3273,6 +3276,9 @@
// [code]: Function code.
DECL_ACCESSORS(code, Code)
+ // [scope_info]: Scope info.
+ DECL_ACCESSORS(scope_info, SerializedScopeInfo)
+
// [construct stub]: Code stub for constructing instances of this function.
DECL_ACCESSORS(construct_stub, Code)
@@ -3426,7 +3432,8 @@
// Pointer fields.
static const int kNameOffset = HeapObject::kHeaderSize;
static const int kCodeOffset = kNameOffset + kPointerSize;
- static const int kConstructStubOffset = kCodeOffset + kPointerSize;
+ static const int kScopeInfoOffset = kCodeOffset + kPointerSize;
+ static const int kConstructStubOffset = kScopeInfoOffset + kPointerSize;
static const int kInstanceClassNameOffset =
kConstructStubOffset + kPointerSize;
static const int kFunctionDataOffset =