Chromium Code Reviews| Index: src/objects.h |
| diff --git a/src/objects.h b/src/objects.h |
| index 7e49bf8cb00918d014adb2670236fa29a7b91df1..984a3342373a73a21dccac8eac1f9e7ba78ed1d2 100644 |
| --- a/src/objects.h |
| +++ b/src/objects.h |
| @@ -394,6 +394,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
| V(TYPE_FEEDBACK_INFO_TYPE) \ |
| V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
| V(BOX_TYPE) \ |
| + V(PROMISE_CONTAINER_TYPE) \ |
| V(PROTOTYPE_INFO_TYPE) \ |
| V(SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE) \ |
| \ |
| @@ -498,6 +499,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
| // manually. |
| #define STRUCT_LIST(V) \ |
| V(BOX, Box, box) \ |
| + V(PROMISE_CONTAINER, PromiseContainer, promise_container) \ |
| V(ACCESSOR_INFO, AccessorInfo, accessor_info) \ |
| V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ |
| V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ |
| @@ -680,6 +682,7 @@ enum InstanceType { |
| TYPE_FEEDBACK_INFO_TYPE, |
| ALIASED_ARGUMENTS_ENTRY_TYPE, |
| BOX_TYPE, |
| + PROMISE_CONTAINER_TYPE, |
| DEBUG_INFO_TYPE, |
| BREAK_POINT_INFO_TYPE, |
| FIXED_ARRAY_TYPE, |
| @@ -6576,6 +6579,28 @@ class Struct: public HeapObject { |
| DECLARE_CAST(Struct) |
| }; |
| +class PromiseContainer : public Struct { |
|
adamk
2016/09/06 21:04:57
Please add a class comment explaining what this is
gsathya
2016/09/07 04:45:30
Done.
|
| + public: |
| + DECL_ACCESSORS(promise, Object) |
|
adamk
2016/09/06 21:04:57
Do we not have any more specific type for promise?
gsathya
2016/09/07 04:45:30
Nope, we only have an instance type of JS_PROMISE_
|
| + DECL_ACCESSORS(thenable, Object) |
| + DECL_ACCESSORS(then, JSFunction) |
| + DECL_ACCESSORS(resolve, JSFunction) |
| + DECL_ACCESSORS(reject, JSFunction) |
| + |
| + static const int kPromiseOffset = Struct::kHeaderSize; |
| + static const int kThenableOffset = kPromiseOffset + kPointerSize; |
| + static const int kThenOffset = kThenableOffset + kPointerSize; |
| + static const int kResolveOffset = kThenOffset + kPointerSize; |
| + static const int kRejectOffset = kResolveOffset + kPointerSize; |
| + static const int kSize = kRejectOffset + kPointerSize; |
| + |
| + DECLARE_CAST(PromiseContainer) |
| + DECLARE_PRINTER(PromiseContainer) |
| + DECLARE_VERIFIER(PromiseContainer) |
| + |
| + private: |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(PromiseContainer); |
| +}; |
| // A simple one-element struct, useful where smis need to be boxed. |
| class Box : public Struct { |