If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler
NEW : We have got a new blog where we post some interesting SWF internals info.

#75 If ... return, Commands in while condition (comma operator)
Author:
pepka

Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2Decompilation
State: closed 

> What steps will reproduce the problem?
When Return appears last in true branch of "single branch if" it decompiles like
fullweight if-else clause.
(external_call.sfw, DoInitAction 67, position 143)
Push register2 register3
GetMember
Push register4
Equals2
Not
If loc031c
Push 1 register3 2 register2 "splice"
...
Return
loc031c:Jump loc02c2
> What is the expected output? What do you see instead?
do
{
register3=register3-1;
if(register3)
{
if(register2[register3]==register4)
{
register2.splice(register3,1);
if(!register2.length)
{
register1.broadcastMessage=undefined;
}
return true;
}
else
{
continue; << here
}
}
else
{
return false;
}
}
while(true); << also please mention an improper loop
Also in DoInitAction 1, lines 139-146
if(register3.length>0)
{
register2=undefined;
do
{
register2=register3.shift();
}
while(!(register3.shift()==undefined));
register2.obj.register2.fn();
continue loop0;
}
should look more like
if (_loc3.length > 0)
{
var _loc2;
while (_loc2 = _loc3.shift(), _loc3.shift() != undefined)
{
_loc2.obj[_loc2.fn]();
} // end while
} // end if
> What version of the product are you using? On what operating system?
1.4.3u2
Title: If ... return→If ... return, Commands in while condition (comma operator)
State: new→opened
version 1.5.0 was released.
I made some changes about both problems.
It should be better know.
Let me know so I can close the issue.
State: opened→upgraded
State: upgraded→closed