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

Side by Side Diff: src/promise.js

Issue 1219623005: [es6] Make sure we do not invoke setter when calling Promise.all (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Use O.p as prototype to proprietary API object Created 5 years, 5 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 | test/mjsunit/es6/promise-internal-setter.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 var $promiseCreate; 5 var $promiseCreate;
6 var $promiseResolve; 6 var $promiseResolve;
7 var $promiseReject; 7 var $promiseReject;
8 var $promiseChain; 8 var $promiseChain;
9 var $promiseCatch; 9 var $promiseCatch;
10 var $promiseThen; 10 var $promiseThen;
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 function PromiseDeferred() { 182 function PromiseDeferred() {
183 if (this === GlobalPromise) { 183 if (this === GlobalPromise) {
184 // Optimized case, avoid extra closure. 184 // Optimized case, avoid extra closure.
185 var promise = PromiseInit(new GlobalPromise(promiseRaw)); 185 var promise = PromiseInit(new GlobalPromise(promiseRaw));
186 return { 186 return {
187 promise: promise, 187 promise: promise,
188 resolve: function(x) { PromiseResolve(promise, x) }, 188 resolve: function(x) { PromiseResolve(promise, x) },
189 reject: function(r) { PromiseReject(promise, r) } 189 reject: function(r) { PromiseReject(promise, r) }
190 }; 190 };
191 } else { 191 } else {
192 var result = {}; 192 var result = {promise: UNDEFINED, reject: UNDEFINED, resolve: UNDEFINED};
193 result.promise = new this(function(resolve, reject) { 193 result.promise = new this(function(resolve, reject) {
194 result.resolve = resolve; 194 result.resolve = resolve;
195 result.reject = reject; 195 result.reject = reject;
196 }) 196 });
197 return result; 197 return result;
198 } 198 }
199 } 199 }
200 200
201 function PromiseResolved(x) { 201 function PromiseResolved(x) {
202 if (this === GlobalPromise) { 202 if (this === GlobalPromise) {
203 // Optimized case, avoid extra closure. 203 // Optimized case, avoid extra closure.
204 return PromiseCreateAndSet(+1, x); 204 return PromiseCreateAndSet(+1, x);
205 } else { 205 } else {
206 return new this(function(resolve, reject) { resolve(x) }); 206 return new this(function(resolve, reject) { resolve(x) });
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 $promiseResolve = PromiseResolve; 390 $promiseResolve = PromiseResolve;
391 $promiseReject = PromiseReject; 391 $promiseReject = PromiseReject;
392 $promiseChain = PromiseChain; 392 $promiseChain = PromiseChain;
393 $promiseCatch = PromiseCatch; 393 $promiseCatch = PromiseCatch;
394 $promiseThen = PromiseThen; 394 $promiseThen = PromiseThen;
395 $promiseHasUserDefinedRejectHandler = PromiseHasUserDefinedRejectHandler; 395 $promiseHasUserDefinedRejectHandler = PromiseHasUserDefinedRejectHandler;
396 $promiseStatus = promiseStatus; 396 $promiseStatus = promiseStatus;
397 $promiseValue = promiseValue; 397 $promiseValue = promiseValue;
398 398
399 }) 399 })
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/es6/promise-internal-setter.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698