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

Reply via email to