v8/test/mjsunit/harmony
mstarzinger@chromium.org 0f348e5592 Generator objects can suspend
* src/ast.h:
* src/parser.cc: Differentiate between the different kinds of yields, in
  anticipation of boxing return values.  Parse `return' into `yield' in
  a generator.

* src/runtime.h:
* src/runtime.cc (Runtime_SuspendJSGeneratorObject): New horrible
  runtime function: saves continuation, context, and operands into the
  generator object.

* src/arm/full-codegen-arm.cc (VisitYield):
* src/ia32/full-codegen-ia32.cc (VisitYield):
* src/x64/full-codegen-x64.cc (VisitYield): Arrange to call
  SuspendJSGeneratorObject.  If the call returns the hole, we suspend.
  Otherwise we resume.

BUG=v8:2355
TEST=These codepaths are tested when the generator is first invoked, and so
are covered by mjsunit/harmony/generators-objects.js.

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-19 14:11:23 +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 Optimize functions on a second thread. 2012-07-19 18:58:23 +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 Move creation of collection prototypes into JavaScript. 2013-04-11 13:31:51 +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-objects.js Generator objects have [[Class]] === "Generator" 2013-04-17 15:01:25 +00:00
generators-parsing.js Generator objects can suspend 2013-04-19 14:11:23 +00:00
generators-runtime.js * src/generator.js: Add methods and intialization for generator meta-objects. 2013-04-11 16:28:19 +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
object-observe.js ES6 symbols: prevent reflection, proxy, and observe APIs from leaking symbols 2013-03-22 17:27:44 +00:00
proxies-example-membrane.js A more holistic test case for proxies. 2011-11-10 16:24:43 +00:00
proxies-for.js Implement for-in loop for proxies. 2011-10-24 15:56:18 +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 Implement Harmony sets and maps. 2011-10-25 14:14:56 +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.js Make __proto__ a foreign callback on Object.prototype. 2013-02-26 10:46:00 +00:00
symbols.js Fix set-up of intrinsic's 'constructor' properties 2013-04-11 12:27:55 +00:00
typedarrays.js Disable the test due to Win64 build problems. 2013-04-17 18:13:44 +00:00
typeof.js Implement Harmony semantics for typeof null (behind a flag). 2011-08-10 12:12:06 +00:00