| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index c0085e3773f7f6b7f55564b1042f61ed43bdcb32..df708d4e30a40dd0f4cb64faacf804a0e8395780 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -422,6 +422,7 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
|
| V(JS_MAP_ITERATOR_TYPE) \
|
| V(JS_WEAK_MAP_TYPE) \
|
| V(JS_WEAK_SET_TYPE) \
|
| + V(JS_PROMISE_CAPABILITY_TYPE) \
|
| V(JS_PROMISE_TYPE) \
|
| V(JS_REGEXP_TYPE) \
|
| V(JS_ERROR_TYPE) \
|
| @@ -767,6 +768,7 @@ enum InstanceType {
|
| JS_MAP_ITERATOR_TYPE,
|
| JS_WEAK_MAP_TYPE,
|
| JS_WEAK_SET_TYPE,
|
| + JS_PROMISE_CAPABILITY_TYPE,
|
| JS_PROMISE_TYPE,
|
| JS_REGEXP_TYPE,
|
| JS_ERROR_TYPE,
|
| @@ -1088,6 +1090,7 @@ template <class C> inline bool Is(Object* obj);
|
| V(JSDataView) \
|
| V(JSProxy) \
|
| V(JSError) \
|
| + V(JSPromiseCapability) \
|
| V(JSPromise) \
|
| V(JSStringIterator) \
|
| V(JSSet) \
|
| @@ -8631,6 +8634,33 @@ class JSMessageObject: public JSObject {
|
| kSize> BodyDescriptor;
|
| };
|
|
|
| +class JSPromise;
|
| +class JSPromiseCapability : public JSObject {
|
| + public:
|
| + DECLARE_CAST(JSPromiseCapability)
|
| +
|
| + DECLARE_VERIFIER(JSPromiseCapability)
|
| +
|
| + DECL_ACCESSORS(promise, Object)
|
| + DECL_ACCESSORS(resolve, Object)
|
| + DECL_ACCESSORS(reject, Object)
|
| +
|
| + static const int kPromiseOffset = JSObject::kHeaderSize;
|
| + static const int kResolveOffset = kPromiseOffset + kPointerSize;
|
| + static const int kRejectOffset = kResolveOffset + kPointerSize;
|
| + static const int kSize = kRejectOffset + kPointerSize;
|
| +
|
| + enum InObjectPropertyIndex {
|
| + kPromiseIndex,
|
| + kResolveIndex,
|
| + kRejectIndex,
|
| + kInObjectPropertyCount // Dummy.
|
| + };
|
| +
|
| + private:
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(JSPromiseCapability);
|
| +};
|
| +
|
| class JSPromise : public JSObject {
|
| public:
|
| DECL_INT_ACCESSORS(status)
|
|
|