- From: <bugzilla@jessica.w3.org>
- Date: Fri, 16 Aug 2013 04:40:33 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22982
Bug ID: 22982
Summary: Synchronous flag and stack consumption of DOM/Promises
Classification: Unclassified
Product: WebAppsWG
Version: unspecified
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: DOM
Assignee: annevk@annevk.nl
Reporter: yhirano@google.com
QA Contact: public-webapps-bugzilla@w3.org
CC: mike@w3.org, www-dom@w3.org
fulfill, resolve and reject algorithms take the synchronous flag.
If it is set the callbacks are processed synchronously i.e. simply called.
If we chain promises and fulfill the original resolver, the promises will be
resolved synchronously, which means stack frames in proportion to the length of
the chain will be consumed.
For example, the following statements leads to a stack overflow error in
Chrome.
var resolver;
var id = 0;
var N = 10000;
var promise = new Promise(function(r) {resolver = r;});
for (var i = 0; i < N; ++i) {
promise = promise.then(function() {console.log(id++)});
}
resolver.resolve(4);
Promise.every(Promise.every(...(Promise.every(promise))...)) has the same
problem.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Friday, 16 August 2013 04:40:34 UTC