Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: src/promise-utils.h

Issue 2541283002: [promises] Port ResolvePromise to TF (Closed)
Patch Set: fix nits Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_PROMISE_UTILS_H_ 5 #ifndef V8_PROMISE_UTILS_H_
6 #define V8_PROMISE_UTILS_H_ 6 #define V8_PROMISE_UTILS_H_
7 7
8 #include "src/contexts.h"
8 #include "src/objects.h" 9 #include "src/objects.h"
9 10
10 namespace v8 { 11 namespace v8 {
11 namespace internal { 12 namespace internal {
12 13
13 // Helper methods for Promise builtins. 14 // Helper methods for Promise builtins.
14 class PromiseUtils : public AllStatic { 15 class PromiseUtils : public AllStatic {
15 public: 16 public:
17 enum PromiseResolvingFunctionContextSlot {
18 // Whether the resolve/reject callback was already called.
19 kAlreadyVisitedSlot = Context::MIN_CONTEXT_SLOTS,
20
21 // The promise which resolve/reject callbacks fulfill.
22 kPromiseSlot,
23
24 // Whether to trigger a debug event or not. Used in catch
25 // prediction.
26 kDebugEventSlot,
27 kPromiseContextLength,
28 };
29
16 // These get and set the slots on the PromiseResolvingContext, which 30 // These get and set the slots on the PromiseResolvingContext, which
17 // is used by the resolve/reject promise callbacks. 31 // is used by the resolve/reject promise callbacks.
18 static JSObject* GetPromise(Handle<Context> context); 32 static JSObject* GetPromise(Handle<Context> context);
19 static Object* GetDebugEvent(Handle<Context> context); 33 static Object* GetDebugEvent(Handle<Context> context);
20 static bool HasAlreadyVisited(Handle<Context> context); 34 static bool HasAlreadyVisited(Handle<Context> context);
21 static void SetAlreadyVisited(Handle<Context> context); 35 static void SetAlreadyVisited(Handle<Context> context);
22 36
23 static void CreateResolvingFunctions(Isolate* isolate, 37 static void CreateResolvingFunctions(Isolate* isolate,
24 Handle<JSObject> promise, 38 Handle<JSObject> promise,
25 Handle<Object> debug_event, 39 Handle<Object> debug_event,
26 Handle<JSFunction>* resolve, 40 Handle<JSFunction>* resolve,
27 Handle<JSFunction>* reject); 41 Handle<JSFunction>* reject);
28 }; 42 };
29 } // namespace internal 43 } // namespace internal
30 } // namespace v8 44 } // namespace v8
31 45
32 #endif // V8_PROMISE_UTILS_H_ 46 #endif // V8_PROMISE_UTILS_H_
OLDNEW
« src/js/promise.js ('K') | « src/objects-printer.cc ('k') | src/promise-utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698