0f348e5592
* 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 |
||
---|---|---|
.. | ||
assembler-ia32-inl.h | ||
assembler-ia32.cc | ||
assembler-ia32.h | ||
builtins-ia32.cc | ||
code-stubs-ia32.cc | ||
code-stubs-ia32.h | ||
codegen-ia32.cc | ||
codegen-ia32.h | ||
cpu-ia32.cc | ||
debug-ia32.cc | ||
deoptimizer-ia32.cc | ||
disasm-ia32.cc | ||
frames-ia32.cc | ||
frames-ia32.h | ||
full-codegen-ia32.cc | ||
ic-ia32.cc | ||
lithium-codegen-ia32.cc | ||
lithium-codegen-ia32.h | ||
lithium-gap-resolver-ia32.cc | ||
lithium-gap-resolver-ia32.h | ||
lithium-ia32.cc | ||
lithium-ia32.h | ||
macro-assembler-ia32.cc | ||
macro-assembler-ia32.h | ||
regexp-macro-assembler-ia32.cc | ||
regexp-macro-assembler-ia32.h | ||
simulator-ia32.cc | ||
simulator-ia32.h | ||
stub-cache-ia32.cc |