diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f70cc85..c5d849385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ All notable changes to this project will be documented in this file. - [#1842] AS - Do not display §§dup when the value has no sideeffect - Deobfuscation icon on script toolbar did not match the deobfuscation status - [#1938] AS3 Direct editation - implied this instead of findprop +- [#1938] AS3 Direct editation - local registers coerce/convert ## [18.3.2] - 2023-01-10 ### Removed diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java index 639329789..8c9a3c02f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java @@ -214,6 +214,9 @@ public class NameAVM2Item extends AssignableAVM2Item { case "uint": ins = ins(AVM2Instructions.ConvertU); break; + case "Number": + ins = ins(AVM2Instructions.ConvertD); + break; default: int type_index = AVM2SourceGenerator.resolveType(localData, ttype, ((AVM2SourceGenerator) generator).abcIndex); ins = ins(AVM2Instructions.Coerce, type_index); @@ -254,7 +257,7 @@ public class NameAVM2Item extends AssignableAVM2Item { killTemp(localData, generator, Arrays.asList(ret_temp))); } else { - return toSourceMerge(localData, generator, assignedValue, !(("" + assignedValue.returnType()).equals("" + type) && (basicTypes.contains("" + type))) ? generateCoerce(localData, generator, type) : null, needsReturn + return toSourceMerge(localData, generator, assignedValue, generateCoerce(localData, generator, type), needsReturn ? ins(AVM2Instructions.Dup) : null, generateSetLoc(regNumber)); } } else {