v8/test/mjsunit/harmony
rossberg@chromium.org e943623b12 Harmony promises
Based on prototype at

  https://github.com/rossberg-chromium/js-promise

which informed the latest spec draft version at

  https://github.com/domenic/promises-unwrapping/blob/master/README.md

Activated by --harmony-promises.

Feature complete with respect to the draft spec, plus the addition of .when and .deferred methods. Final naming and other possible deviations from the current draft will hopefully be resolved soon after the next TC39 meeting.

This CL also generalises the Object.observe delivery loop into a simplistic microtask loop. Currently, all observer events are delivered before invoking any promise handler in a single fixpoint iteration. It's not clear yet what the final semantics is supposed to be (should there be a global event ordering?), but it will probably require a more thorough event loop abstraction inside V8 once we get there.

R=dslomov@chromium.org, yhirano@chromium.org
BUG=

Review URL: https://codereview.chromium.org/64223010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 17:21:40 +00:00
..
array-find.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
array-findindex.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
array-iterator.js Update Array Iterator to use numeric indexes 2013-08-06 13:10:07 +00:00
block-conflicts.js Allocate block-scoped global bindings to global context. 2012-08-28 11:25:08 +00:00
block-const-assign.js Statically check for assignments to const in harmony mode. 2011-12-05 14:43:28 +00:00
block-early-errors.js Make let/const outside of the extended mode early errors (under harmony flag). 2011-11-29 06:38:04 +00:00
block-for.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
block-lazy-compile.js Preliminary code for block scopes and block contexts. 2011-08-11 16:29:28 +00:00
block-leave.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
block-let-crankshaft.js Turn on parallel recompilation for tests that assert optimization status. 2013-07-22 09:16:33 +00:00
block-let-declaration.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
block-let-semantics.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
block-scoping.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
collections.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
dataview-accessors.js Fix data view accessors to throw execptions on offsets bigger than size_t. 2013-11-18 15:16:22 +00:00
debug-blockscopes.js Make sure that names of temporaries do not clash with real variables. 2012-10-05 12:47:34 +00:00
debug-evaluate-blockscopes.js Introduce extended mode. 2011-11-24 15:17:04 +00:00
debug-function-scopes.js Issue 2081: Expose function's (closure's) inner context in debugger. 2012-04-26 20:16:53 +00:00
generators-iteration.js Fix stack frame reconstruction for generators with formal arguments 2013-06-20 10:48:34 +00:00
generators-objects.js Generator object "next" method takes optional send value 2013-06-10 09:26:18 +00:00
generators-parsing.js Generator objects can suspend 2013-04-19 14:11:23 +00:00
generators-runtime.js GeneratorFunction() makes generator instances 2013-06-12 12:52:16 +00:00
iteration-semantics.js Harmony promises 2013-11-27 17:21:40 +00:00
iteration-syntax.js For-of statements do not permit initializers. 2013-06-12 12:37:44 +00:00
math-sign.js Harmony: implement Math.sign. 2013-10-21 09:16:31 +00:00
math-trunc.js Harmony: implement Math.trunc. 2013-10-21 11:15:11 +00:00
module-linking.js Get rid of static module allocation, do it in code. 2012-11-22 10:25:22 +00:00
module-parsing.js Reject local module declarations. 2012-10-05 09:14:08 +00:00
module-recompile.js Implement proper module linking. 2012-07-09 08:59:03 +00:00
module-resolution.js Implement proper module linking. 2012-07-09 08:59:03 +00:00
numeric-literals-off.js Add support for explicit octal and binary integer literals 2013-07-19 09:57:35 +00:00
numeric-literals.js Add support for explicit octal and binary integer literals 2013-07-19 09:57:35 +00:00
object-observe.js Reland [Object.observe] Don't force normalization of elements for observed objects 2013-11-14 21:47:39 +00:00
private.js Speed up long-running test cases. 2013-11-26 11:32:39 +00:00
promises.js Harmony promises 2013-11-27 17:21:40 +00:00
proxies-example-membrane.js Calling Map etc without new should throw TypeError 2013-08-01 09:18:28 +00:00
proxies-for.js Proxies: Make 'with' work, plus minor other fixes 2013-07-19 14:07:23 +00:00
proxies-function.js Fix handling of function proxies in higher-order array and string methods, 2012-01-20 13:59:37 +00:00
proxies-hash.js Calling Map etc without new should throw TypeError 2013-08-01 09:18:28 +00:00
proxies-json.js Add fast path for FastProperty objects in JSON.stringify. 2012-11-05 12:59:35 +00:00
proxies-symbols.js ES6 symbols: prevent reflection, proxy, and observe APIs from leaking symbols 2013-03-22 17:27:44 +00:00
proxies-with.js Proxies: Make 'with' work, plus minor other fixes 2013-07-19 14:07:23 +00:00
proxies.js Make __proto__ a foreign callback on Object.prototype. 2013-02-26 10:46:00 +00:00
string-contains.js Add new Harmony methods to String.prototype object. 2013-07-30 16:33:08 +00:00
string-endswith.js Add new Harmony methods to String.prototype object. 2013-07-30 16:33:08 +00:00
string-repeat.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
string-startswith.js Add new Harmony methods to String.prototype object. 2013-07-30 16:33:08 +00:00
symbols.js Speed up long-running test cases. 2013-11-26 11:32:39 +00:00
typedarrays.js Implement ArrayBuffer.isView. 2013-10-10 08:36:44 +00:00
typeof.js Implement Harmony semantics for typeof null (behind a flag). 2011-08-10 12:12:06 +00:00