: WARNING - support of the decompiler is now VERY LIMITED. There are no active developers. This means waiting times in the issue tracker are very long and mostly depend on community. Sorry for the inconvenience.

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)
user
PS: Please, ignore code itself, it can hurt your eyes.
admin
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
user
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): things.as, Line 28 There is no property with the name 'register0'.
admin
State: new→opened
admin
version 1.7.0 was released this should be better, try it
State: opened→upgraded
user
Looks great now, thanks!
admin
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