| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index df61275d9b17d4f78e814ab50736c10502247be3..96278a19ed1dc0d6f83dbc8088658e49f283fadd 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -389,6 +389,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
|
| V(PROMISE_RESOLVE_THENABLE_JOB_INFO_TYPE) \
|
| V(PROMISE_REACTION_JOB_INFO_TYPE) \
|
| V(PROTOTYPE_INFO_TYPE) \
|
| + V(TUPLE2_TYPE) \
|
| V(TUPLE3_TYPE) \
|
| V(CONTEXT_EXTENSION_TYPE) \
|
| V(MODULE_TYPE) \
|
| @@ -556,6 +557,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
|
| V(DEBUG_INFO, DebugInfo, debug_info) \
|
| V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) \
|
| V(PROTOTYPE_INFO, PrototypeInfo, prototype_info) \
|
| + V(TUPLE2, Tuple2, tuple2) \
|
| V(TUPLE3, Tuple3, tuple3) \
|
| V(MODULE, Module, module) \
|
| V(MODULE_INFO_ENTRY, ModuleInfoEntry, module_info_entry) \
|
| @@ -735,6 +737,7 @@ enum InstanceType {
|
| TRANSITION_ARRAY_TYPE,
|
| PROPERTY_CELL_TYPE,
|
| PROTOTYPE_INFO_TYPE,
|
| + TUPLE2_TYPE,
|
| TUPLE3_TYPE,
|
| CONTEXT_EXTENSION_TYPE,
|
| MODULE_TYPE,
|
| @@ -4012,18 +4015,20 @@ class SeededNumberDictionary
|
| // Type specific at put (default NONE attributes is used when adding).
|
| MUST_USE_RESULT static Handle<SeededNumberDictionary> AtNumberPut(
|
| Handle<SeededNumberDictionary> dictionary, uint32_t key,
|
| - Handle<Object> value, bool used_as_prototype);
|
| + Handle<Object> value, Handle<JSObject> dictionary_holder);
|
| MUST_USE_RESULT static Handle<SeededNumberDictionary> AddNumberEntry(
|
| Handle<SeededNumberDictionary> dictionary, uint32_t key,
|
| - Handle<Object> value, PropertyDetails details, bool used_as_prototype);
|
| + Handle<Object> value, PropertyDetails details,
|
| + Handle<JSObject> dictionary_holder);
|
|
|
| // Set an existing entry or add a new one if needed.
|
| // Return the updated dictionary.
|
| MUST_USE_RESULT static Handle<SeededNumberDictionary> Set(
|
| Handle<SeededNumberDictionary> dictionary, uint32_t key,
|
| - Handle<Object> value, PropertyDetails details, bool used_as_prototype);
|
| + Handle<Object> value, PropertyDetails details,
|
| + Handle<JSObject> dictionary_holder);
|
|
|
| - void UpdateMaxNumberKey(uint32_t key, bool used_as_prototype);
|
| + void UpdateMaxNumberKey(uint32_t key, Handle<JSObject> dictionary_holder);
|
|
|
| // Returns true if the dictionary contains any elements that are non-writable,
|
| // non-configurable, non-enumerable, or have getters/setters.
|
| @@ -6989,10 +6994,27 @@ class PrototypeInfo : public Struct {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(PrototypeInfo);
|
| };
|
|
|
| -class Tuple3 : public Struct {
|
| +class Tuple2 : public Struct {
|
| public:
|
| DECL_ACCESSORS(value1, Object)
|
| DECL_ACCESSORS(value2, Object)
|
| +
|
| + DECLARE_CAST(Tuple2)
|
| +
|
| + // Dispatched behavior.
|
| + DECLARE_PRINTER(Tuple2)
|
| + DECLARE_VERIFIER(Tuple2)
|
| +
|
| + static const int kValue1Offset = HeapObject::kHeaderSize;
|
| + static const int kValue2Offset = kValue1Offset + kPointerSize;
|
| + static const int kSize = kValue2Offset + kPointerSize;
|
| +
|
| + private:
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(Tuple2);
|
| +};
|
| +
|
| +class Tuple3 : public Tuple2 {
|
| + public:
|
| DECL_ACCESSORS(value3, Object)
|
|
|
| DECLARE_CAST(Tuple3)
|
| @@ -7001,9 +7023,7 @@ class Tuple3 : public Struct {
|
| DECLARE_PRINTER(Tuple3)
|
| DECLARE_VERIFIER(Tuple3)
|
|
|
| - static const int kValue1Offset = HeapObject::kHeaderSize;
|
| - static const int kValue2Offset = kValue1Offset + kPointerSize;
|
| - static const int kValue3Offset = kValue2Offset + kPointerSize;
|
| + static const int kValue3Offset = Tuple2::kSize;
|
| static const int kSize = kValue3Offset + kPointerSize;
|
|
|
| private:
|
|
|