Change bargull-20110225-G1H by bargull@Bargull02 on 2011-02-25 17:13:58
in /home/anba/src/svn/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Rewrite for-each loop to workaround ASC-3852 / ASC-4204
Bugs Fixed: LPP-9782 (can't return from for each in+ swf10 + backtrace),
LPP-9779 (OL 5.0.x - DHTML - IE7 - smokecheck failed)
Technical Reviewer: ptw
QA Reviewer: (pending)
Details:
SWF9Generator:
- visitForInStatement():
Rewrite needs to happen outside of for-in context
- visitForEachStatement(), visitForEachVarStatement():
Rewrite for-each loops just like it's already done for for-in loops
- visitReturnStatement():
Handle ASTForEachStatement, only consider returns inside for-in/each
loops which are wrapped in try-blocks, that means returns inside
try-blocks inside for-in/each don't need to be special-cased
e4x-foreach.lzl, ecma-forin.lzl:
- added more test cases to cover for-in/each loops in functions and
try-catch-finally blocks
- updated to filter entries inherited from prototype for Number/Boolean
to cover LPP-9779
Tests:
smokecheck (dhtml, swf10) x (ie7, ie8, firefox) x (debug, backtrace)
Files:
M test/smoke/e4x-foreach.lzl
M test/smoke/ecma-forin.lzl
M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
Changeset:
http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110225-G1H.tar