• mstarzinger@chromium.org's avatar
    Generator objects can suspend · 0f348e55
    mstarzinger@chromium.org authored
    * 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
    0f348e55
Name
Last commit
Last update
..
assembler-ia32-inl.h Loading commit data...
assembler-ia32.cc Loading commit data...
assembler-ia32.h Loading commit data...
builtins-ia32.cc Loading commit data...
code-stubs-ia32.cc Loading commit data...
code-stubs-ia32.h Loading commit data...
codegen-ia32.cc Loading commit data...
codegen-ia32.h Loading commit data...
cpu-ia32.cc Loading commit data...
debug-ia32.cc Loading commit data...
deoptimizer-ia32.cc Loading commit data...
disasm-ia32.cc Loading commit data...
frames-ia32.cc Loading commit data...
frames-ia32.h Loading commit data...
full-codegen-ia32.cc Loading commit data...
ic-ia32.cc Loading commit data...
lithium-codegen-ia32.cc Loading commit data...
lithium-codegen-ia32.h Loading commit data...
lithium-gap-resolver-ia32.cc Loading commit data...
lithium-gap-resolver-ia32.h Loading commit data...
lithium-ia32.cc Loading commit data...
lithium-ia32.h Loading commit data...
macro-assembler-ia32.cc Loading commit data...
macro-assembler-ia32.h Loading commit data...
regexp-macro-assembler-ia32.cc Loading commit data...
regexp-macro-assembler-ia32.h Loading commit data...
simulator-ia32.cc Loading commit data...
simulator-ia32.h Loading commit data...
stub-cache-ia32.cc Loading commit data...