| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index abfa963d2bec07814ed85e98cb2e0402255baa08..cb090edc20ca80017ebdde1345fbaef58928ef65 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -187,6 +187,12 @@ enum ContextualMode {
|
| };
|
|
|
|
|
| +enum MutableMode {
|
| + MUTABLE,
|
| + IMMUTABLE
|
| +};
|
| +
|
| +
|
| static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION -
|
| STANDARD_STORE;
|
| STATIC_ASSERT(STANDARD_STORE == 0);
|
| @@ -373,6 +379,7 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits;
|
| V(PROPERTY_CELL_TYPE) \
|
| \
|
| V(HEAP_NUMBER_TYPE) \
|
| + V(MUTABLE_HEAP_NUMBER_TYPE) \
|
| V(FOREIGN_TYPE) \
|
| V(BYTE_ARRAY_TYPE) \
|
| V(FREE_SPACE_TYPE) \
|
| @@ -721,6 +728,7 @@ enum InstanceType {
|
| // "Data", objects that cannot contain non-map-word pointers to heap
|
| // objects.
|
| HEAP_NUMBER_TYPE,
|
| + MUTABLE_HEAP_NUMBER_TYPE,
|
| FOREIGN_TYPE,
|
| BYTE_ARRAY_TYPE,
|
| FREE_SPACE_TYPE,
|
| @@ -992,6 +1000,7 @@ class MaybeObject BASE_EMBEDDED {
|
|
|
| #define HEAP_OBJECT_TYPE_LIST(V) \
|
| V(HeapNumber) \
|
| + V(MutableHeapNumber) \
|
| V(Name) \
|
| V(UniqueName) \
|
| V(String) \
|
| @@ -1510,7 +1519,7 @@ class Object : public MaybeObject {
|
| } else if (FLAG_track_fields && representation.IsSmi()) {
|
| return IsSmi();
|
| } else if (FLAG_track_double_fields && representation.IsDouble()) {
|
| - return IsNumber();
|
| + return IsMutableHeapNumber() || IsNumber();
|
| } else if (FLAG_track_heap_object_fields && representation.IsHeapObject()) {
|
| return IsHeapObject();
|
| }
|
| @@ -1519,6 +1528,7 @@ class Object : public MaybeObject {
|
|
|
| inline MaybeObject* AllocateNewStorageFor(Heap* heap,
|
| Representation representation);
|
| + inline MaybeObject* WrapForRead(Heap* heap, Representation representation);
|
|
|
| // Returns true if the object is of the correct type to be used as a
|
| // implementation of a JSObject's elements.
|
| @@ -2616,6 +2626,9 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT inline MaybeObject* FastPropertyAt(
|
| Representation representation,
|
| int index);
|
| + static Handle<Object> FastPropertyAt(Handle<JSObject> object,
|
| + Representation representation,
|
| + int index);
|
| inline Object* RawFastPropertyAt(int index);
|
| inline void FastPropertyAtPut(int index, Object* value);
|
|
|
|
|