- 08 Jun, 2016 1 commit
-
-
neis authored
Also, make %GeneratorGetSourcePosition fail if called on a suspended Ignition generator (rather than return nonsense). This functionality is currently not implemented. BUG=v8:4907 Review-Url: https://codereview.chromium.org/2049663002 Cr-Commit-Position: refs/heads/master@{#36822}
-
- 04 Feb, 2016 1 commit
-
-
neis authored
This CL deals with yield* by desugaring it in the parser. Hence the full-codegen implementation of it becomes obsolete and can be removed in a future CL. The only change in semantics should be that the results of the iterator's next and throw methods are checked to be objects, which didn't happen before but is required by the spec. BUG= Review URL: https://codereview.chromium.org/1643903003 Cr-Commit-Position: refs/heads/master@{#33735}
-
- 18 Jan, 2016 1 commit
-
-
neis authored
BUG=v8:4163,v8:4630 LOG=y R=rossberg Review URL: https://codereview.chromium.org/1590873002 Cr-Commit-Position: refs/heads/master@{#33360}
-
- 12 Nov, 2014 1 commit
-
-
wingo@igalia.com authored
R=rossberg@chromium.org BUG=v8:3096 LOG=Y Review URL: https://codereview.chromium.org/717123002 Cr-Commit-Position: refs/heads/master@{#25297} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Sep, 2014 1 commit
-
-
wingo@igalia.com authored
R=rossberg@chromium.org BUG=v8:2355 LOG=Y Review URL: https://codereview.chromium.org/573963003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Aug, 2014 1 commit
-
-
wingo@igalia.com authored
R=dslomov@chromium.org BUG= Review URL: https://codereview.chromium.org/479543003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Aug, 2014 1 commit
-
-
wingo@igalia.com authored
This enables for-of, as well as @@iterator implementations for strings and arrays. R=rossberg@chromium.org BUG=v8:2214 LOG=Y Review URL: https://codereview.chromium.org/446023002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Aug, 2014 1 commit
-
-
wingo@igalia.com authored
R=rossberg@chromium.org BUG=v8:3422 LOG=N Review URL: https://codereview.chromium.org/430693003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Jul, 2014 1 commit
-
-
wingo@igalia.com authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/348893007 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2014 2 commits
-
-
mstarzinger@chromium.org authored
From ES6 rev20 draft, closed generator returns completed object (the value is `undefined` and done is `true`). Since a error thrown in generator is propagated to the caller without setting status of a thrown generator to "completed", once a generator is suspended by a error, status becomes "executing" forever. This is filed as v8:3096 LOG=N BUG=v8:3097 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/136003003 Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
BUG= R=dcarney@chromium.org Review URL: https://codereview.chromium.org/131663003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
The formal parameter count was always being treated as an untagged integer, but it is actually a Smi on ia32 and arm. R=mstarzinger@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/17485002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
Delegating yield (yield*) should just pass on the iterator results it receives instead of re-boxing them. R=rossberg@chromium.org TEST=mjsunit/harmony/generators-iteration BUG= Review URL: https://codereview.chromium.org/16695006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
The current specification has GeneratorFunction() be like Function(), except that it makes generator instances. This commit implements that behavior. It also fills in a piece of the implementation where otherwise calling GeneratorFunction or GeneratorFunctionPrototype would cause an abort because they have no code. R=mstarzinger@chromium.org TEST=mjsunit/harmony/generators-iteration TEST=mjsunit/harmony/generators-runtime BUG=v8:2355,v8:2680 Review URL: https://codereview.chromium.org/15218004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
Update the generators implementation to make "next" also do the job of what was previously called "send" by taking an optional argument. Remove send, and do a bunch of renamings. R=rossberg@chromium.org BUG=v8:2355, v8:2715 Review URL: https://codereview.chromium.org/16136011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 May, 2013 2 commits
-
-
wingo@igalia.com authored
This reverts r14684 because of blink LayoutTest failures in inspector/debugger/debugger-pause-in-internal.html. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/14619040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
The current specification has GeneratorFunction() be like Function(), except that it makes generator instances. This commit implements that behavior. It also fills in a piece of the implementation where otherwise calling GeneratorFunction or GeneratorFunctionPrototype would cause an abort because they have no code. R=mstarzinger@chromium.org, rossberg@chromium.org TEST=mjsunit/harmony/generators-iteration TEST=mjsunit/harmony/generators-runtime BUG=v8:2355 BUG=v8:2680 Review URL: https://codereview.chromium.org/14857009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2013 3 commits
-
-
wingo@igalia.com authored
Ideally this would have been implemented via desugaring at parse-time, but yield* is an expression, and its desugaring includes statements like while and try/catch. We'd have to have BlockExpression in the AST to support that, and it's not worth it for this feature. So instead we implement all of the logic in FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a try handler index, for the try/catch. Otherwise the implementation is straightforward. R=rossberg@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14582007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
Ideally this would have been implemented via desugaring at parse-time, but yield* is an expression, and its desugaring includes statements like while and try/catch. We'd have to have BlockExpression in the AST to support that, and it's not worth it for this feature. So instead we implement all of the logic in FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a try handler index, for the try/catch. Otherwise the implementation is straightforward. R=mstarzinger@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 May, 2013 1 commit
-
-
wingo@igalia.com authored
This CL adds machinery to unwind stack handlers from the stack and store them into a generator's operand array. It also includes routines to reinstate them. Together this allows generators to yield within try/catch and try/finally blocks. BUG=v8:2355 R=mstarzinger@chromium.org TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14031028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 May, 2013 1 commit
-
-
wingo@igalia.com authored
Generators now box their return values in object literals of the form { value: VAL, done: DONE } where DONE is false for yield expressions, and true for return statements. BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/13870007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Apr, 2013 2 commits
-
-
mstarzinger@chromium.org authored
This CL extends the generator suspend and resume implementation to capture values on the operand stack. It factors out some helpers to measure and access the operand stack into the JavaScriptFrame class. It also refactors the suspend and resume helpers to avoid handle allocation. BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14348003 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This patch makes it so that suspending generators always saves the context. Previously we erroneously assumed that if the operand stack was empty, that the context would be unchanged, but that is not the case with "with". Fixing this brought out an interesting bug in the variable allocator. Yield inside with will reference a context-allocated temporary holding the generator object. Before the fix, this object was looked up in the with context instead of the function context, because with contexts were not being simulated during full-codegen. Previously this was OK as all variables would be given LOOKUP allocation instead of CONTEXT, but the context-allocated temporary invalidated this assumption. The fix is to simulate the context chain more accurately in full-codegen. R=mstarzinger@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14416011 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Apr, 2013 1 commit
-
-
mstarzinger@chromium.org authored
Previously there has been no reason to context-allocate the receiver, so access to the receiver always goes through the stack. This was failing with generators, which assumed that forcing context allocation would relieve the need of storing anything but the context and the function on the stack. This CL adds a slot in generator objects to capture the receiver, and restores it when resuming a generator. BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14158006 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Apr, 2013 1 commit
-
-
mstarzinger@chromium.org authored
The generator object methods "next", "send", and "throw" now include some inline assembly to set up a resumed stack frame. In some common cases, we can just jump back into the frame to resume it. Otherwise the resume code calls out to a runtime to fill in the operand stack, rewind the handlers, and possibly to throw an exception. BUG=v8:2355 TESTS=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14066016 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-