SHOW:
|
|
- or go back to the newest paste.
| 1 | // Just add -inline to the asc2 arguments to see this break. | |
| 2 | // | |
| 3 | ||
| 4 | // A decompiler explains what is going on: | |
| 5 | // public static function getNameByKey(value:int):string{ var _local2 = value; while (_local2._key === // (_local2 = StaticMember)) { return ("It works as expected"); }; return (("Broken: " + value)); }
| |
| 6 | ||
| 7 | package | |
| 8 | {
| |
| 9 | import flash.display.Sprite; | |
| 10 | import flash.text.TextField; | |
| 11 | import flash.text.TextFieldAutoSize; | |
| 12 | ||
| 13 | public final class Application extends Sprite | |
| 14 | {
| |
| 15 | public function Application() | |
| 16 | {
| |
| 17 | const textField: TextField = new TextField(); | |
| 18 | textField.autoSize = TextFieldAutoSize.LEFT; | |
| 19 | textField.text = IssuedClass.StaticMember.toString(); | |
| 20 | addChild( textField ); | |
| 21 | } | |
| 22 | } | |
| 23 | } | |
| 24 | ||
| 25 | package | |
| 26 | {
| |
| 27 | public final class IssuedClass | |
| 28 | {
| |
| 29 | public static const StaticMember: IssuedClass = new IssuedClass( 1 ); | |
| 30 | ||
| 31 | public static function getNameByKey( value: int ): String | |
| 32 | {
| |
| 33 | // There are at least 2 workarounds. | |
| 34 | ||
| 35 | // A Comment in the next line | |
| 36 | // StaticMember.key; | |
| 37 | ||
| 38 | // B access private member StaticMember._key directly in case statement | |
| 39 | ||
| 40 | switch( value ) | |
| 41 | {
| |
| 42 | case StaticMember.key: | |
| 43 | return 'It works as expected'; | |
| 44 | } | |
| 45 | ||
| 46 | return 'Broken: ' + value; // this should never happen! Most of weirdness: value is one! | |
| 47 | } | |
| 48 | ||
| 49 | private var _key: int; | |
| 50 | ||
| 51 | public function IssuedClass( key: int ) | |
| 52 | {
| |
| 53 | _key = key; | |
| 54 | } | |
| 55 | ||
| 56 | public function get key(): int | |
| 57 | {
| |
| 58 | return _key; | |
| 59 | } | |
| 60 | ||
| 61 | public function toString(): String | |
| 62 | {
| |
| 63 | return '[IssuedClass key: ' + getNameByKey( _key ) + ']'; | |
| 64 | } | |
| 65 | } | |
| 66 | } |