List of issuesList of issues

#258 AS1/2 chained assignments
Author: user focus
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2
State: closed Help

Try to open attached file and decompile class "things". Interesting part at function move(): things.arr[0]._yscale=register0=(things.arr[0]._y + 20) / 3; things.arr[0]._xscale=register0; Originally: arr [0]._xscale = arr [0]._yscale = (arr [0]._y + 20) / 3;
Downloadship.swf (6 KiB)
PS: Please, ignore code itself, it can hurt your eyes.
The "things." prefix is OK I think as arr is static variable. Register0 is there because it is chained assignment. This is how FFDec currently decompiles chained assignments. It is how it intended to be. To decompile it as things.arr[0]._xscale=things.arr[0]._yscale=(things.arr[0]._y + 20) / 3; I will need to find out whether the register is temporary only (not user elsewhere), and if it is, then remove it.
Title: AS2 Decompilation issue→AS1/2 chained assignments
I see.. would be great to see cleaner version in future, such code not so readable. And it will not compile back (register0 is not declared):, Line 28 There is no property with the name 'register0'.
State: new→opened
version 1.7.0 was released this should be better, try it
State: opened→upgraded
Looks great now, thanks!
State: upgraded→closed
Google Translate: Translate to Czech Translate to Slovak Translate to Russian Translate to Hungarian Translate to Swedish Translate to French Translate to German Translate to Spanish Translate to Italian
Change style: oceanic classic