DescriptionGenerator 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.
Committed: http://code.google.com/p/v8/source/detail?r=14353
Patch Set 1 #Patch Set 2 : Use hole as suspend sentinel; keep more code in full-codegen.cc #Patch Set 3 : Move VisitYield to platform-specific full-codegen #Patch Set 4 : Tighten typing on generator object contexts #
Total comments: 12
Patch Set 5 : Address comments; Refactor VisitYield #
Total comments: 2
Patch Set 6 : Use sentinel values for continuations #
Messages
Total messages: 12 (0 generated)
|