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

Side by Side Diff: src/builtins/builtins-promise.cc

Issue 2603033002: [promises] Remove extra PromiseInit in InternalPromiseThen (Closed)
Patch Set: Created 3 years, 11 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "src/builtins/builtins-promise.h" 5 #include "src/builtins/builtins-promise.h"
6 #include "src/builtins/builtins-utils.h" 6 #include "src/builtins/builtins-utils.h"
7 #include "src/builtins/builtins.h" 7 #include "src/builtins/builtins.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/code-stub-assembler.h" 9 #include "src/code-stub-assembler.h"
10 #include "src/promise-utils.h" 10 #include "src/promise-utils.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 Variable var_deferred_promise(this, MachineRepresentation::kTagged), 218 Variable var_deferred_promise(this, MachineRepresentation::kTagged),
219 var_deferred_on_resolve(this, MachineRepresentation::kTagged), 219 var_deferred_on_resolve(this, MachineRepresentation::kTagged),
220 var_deferred_on_reject(this, MachineRepresentation::kTagged); 220 var_deferred_on_reject(this, MachineRepresentation::kTagged);
221 221
222 Branch(WordEqual(promise_fun, constructor), &fast_promise_capability, 222 Branch(WordEqual(promise_fun, constructor), &fast_promise_capability,
223 &promise_capability); 223 &promise_capability);
224 224
225 Bind(&fast_promise_capability); 225 Bind(&fast_promise_capability);
226 { 226 {
227 Node* const deferred_promise = AllocateAndInitPromise(context, promise); 227 Node* const deferred_promise = AllocateAndInitPromise(context, promise);
228 PromiseInit(deferred_promise);
229 var_deferred_promise.Bind(deferred_promise); 228 var_deferred_promise.Bind(deferred_promise);
230 var_deferred_on_resolve.Bind(UndefinedConstant()); 229 var_deferred_on_resolve.Bind(UndefinedConstant());
231 var_deferred_on_reject.Bind(UndefinedConstant()); 230 var_deferred_on_reject.Bind(UndefinedConstant());
232 Goto(&perform_promise_then); 231 Goto(&perform_promise_then);
233 } 232 }
234 233
235 Bind(&promise_capability); 234 Bind(&promise_capability);
236 { 235 {
237 // TODO(gsathya): Move this to TF. 236 // TODO(gsathya): Move this to TF.
238 Node* const new_promise_capability = LoadContextElement( 237 Node* const new_promise_capability = LoadContextElement(
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 CallStub(getproperty_callable, context, promise, then_str); 1063 CallStub(getproperty_callable, context, promise, then_str);
1065 Callable call_callable = CodeFactory::Call(isolate); 1064 Callable call_callable = CodeFactory::Call(isolate);
1066 Node* const result = 1065 Node* const result =
1067 CallJS(call_callable, context, then, promise, on_resolve, on_reject); 1066 CallJS(call_callable, context, then, promise, on_resolve, on_reject);
1068 Return(result); 1067 Return(result);
1069 } 1068 }
1070 } 1069 }
1071 1070
1072 } // namespace internal 1071 } // namespace internal
1073 } // namespace v8 1072 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698