Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index f77ac4bc8ea3664643a20395b970e03ab8a6ece3..12d95c81cb1817412fe9a3694b53e41324c8eb81 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -143,6 +143,8 @@ |
// - Struct |
// - Box |
// - AccessorInfo |
+// - PromiseContainer |
+// - PromiseReactionJobInfo |
// - AccessorPair |
// - AccessCheckInfo |
// - InterceptorInfo |
@@ -399,6 +401,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
V(ALIASED_ARGUMENTS_ENTRY_TYPE) \ |
V(BOX_TYPE) \ |
V(PROMISE_CONTAINER_TYPE) \ |
+ V(PROMISE_REACTION_JOB_INFO_TYPE) \ |
V(PROTOTYPE_INFO_TYPE) \ |
V(CONTEXT_EXTENSION_TYPE) \ |
V(MODULE_TYPE) \ |
@@ -506,6 +509,8 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; |
#define STRUCT_LIST(V) \ |
V(BOX, Box, box) \ |
V(PROMISE_CONTAINER, PromiseContainer, promise_container) \ |
+ V(PROMISE_REACTION_JOB_INFO, PromiseReactionJobInfo, \ |
+ promise_reaction_job_info) \ |
V(ACCESSOR_INFO, AccessorInfo, accessor_info) \ |
V(ACCESSOR_PAIR, AccessorPair, accessor_pair) \ |
V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ |
@@ -688,6 +693,7 @@ enum InstanceType { |
ALIASED_ARGUMENTS_ENTRY_TYPE, |
BOX_TYPE, |
PROMISE_CONTAINER_TYPE, |
+ PROMISE_REACTION_JOB_INFO_TYPE, |
DEBUG_INFO_TYPE, |
BREAK_POINT_INFO_TYPE, |
FIXED_ARRAY_TYPE, |
@@ -6677,9 +6683,8 @@ class Struct: public HeapObject { |
DECLARE_CAST(Struct) |
}; |
-// A container struct to hold state required for |
-// PromiseResolveThenableJob. {before, after}_debug_event could |
-// potentially be undefined if the debugger is turned off. |
+// A container struct to hold state required for PromiseResolveThenableJob. |
+// TODO(gsathya): Rename this to be less generic. |
class PromiseContainer : public Struct { |
public: |
DECL_ACCESSORS(thenable, JSReceiver) |
@@ -6706,6 +6711,33 @@ class PromiseContainer : public Struct { |
DISALLOW_IMPLICIT_CONSTRUCTORS(PromiseContainer); |
}; |
+// Struct to hold state required for PromiseReactionJob. |
+class PromiseReactionJobInfo : public Struct { |
+ public: |
+ DECL_ACCESSORS(value, Object) |
+ DECL_ACCESSORS(tasks, Object) |
+ DECL_ACCESSORS(deferred, Object) |
+ DECL_ACCESSORS(before_debug_event, Object) |
+ DECL_ACCESSORS(after_debug_event, Object) |
+ DECL_ACCESSORS(context, Context) |
+ |
+ static const int kValueOffset = Struct::kHeaderSize; |
+ static const int kTasksOffset = kValueOffset + kPointerSize; |
+ static const int kDeferredOffset = kTasksOffset + kPointerSize; |
+ static const int kBeforeDebugEventOffset = kDeferredOffset + kPointerSize; |
+ static const int kAfterDebugEventOffset = |
+ kBeforeDebugEventOffset + kPointerSize; |
+ static const int kContextOffset = kAfterDebugEventOffset + kPointerSize; |
+ static const int kSize = kContextOffset + kPointerSize; |
+ |
+ DECLARE_CAST(PromiseReactionJobInfo) |
+ DECLARE_PRINTER(PromiseReactionJobInfo) |
+ DECLARE_VERIFIER(PromiseReactionJobInfo) |
+ |
+ private: |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(PromiseReactionJobInfo); |
+}; |
+ |
// A simple one-element struct, useful where smis need to be boxed. |
class Box : public Struct { |
public: |