diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScript3SimpleParser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScript3SimpleParser.java index 640f57573..1cb1a3a72 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScript3SimpleParser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScript3SimpleParser.java @@ -452,7 +452,7 @@ public class ActionScript3SimpleParser implements SimpleParser { lexer.pushback(s); } List subvariables = new ArrayList<>(); - if (functionName != null && !functionName.isEmpty()) { + if (!isMethod && functionName != null && !functionName.isEmpty()) { subvariables.add(new Variable(true, functionName, functionNamePos)); } for (int i = 0; i < paramNames.size() - (hasRest ? 1 : 0); i++) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2SimpleParser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2SimpleParser.java index b34ec6200..ca5c973d3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2SimpleParser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2SimpleParser.java @@ -193,7 +193,7 @@ public class ActionScript2SimpleParser implements SimpleParser { List subvariables = new ArrayList<>(); Reference subHasEval = new Reference<>(false); - if (!functionName.isEmpty()) { + if (!isMethod && !functionName.isEmpty()) { variables.add(0, new Variable(true, functionName, functionNamePosition)); } @@ -243,17 +243,20 @@ public class ActionScript2SimpleParser implements SimpleParser { s = lex(); } - if (expectedIdentifier(errors, s, lexer.yyline())) { - if (!isInterface) { - variables.add(function(errors, !isInterface, isStatic ? className + "." + s.value.toString() : "this." + s.value.toString(), isStatic ? -1 : s.position, true, traitVariables, inTellTarget, hasEval, isStatic)); - } + if (!expectedIdentifier(errors, s, lexer.yyline())) { + break; } + traitVariables.add(new Variable(true, isStatic ? className + "." + s.value.toString() : "this." + s.value.toString(), s.position, isStatic)); + if (!isInterface) { + variables.add(function(errors, !isInterface, isStatic ? className + "." + s.value.toString() : "this." + s.value.toString(), isStatic ? -1 : s.position, true, traitVariables, inTellTarget, hasEval, isStatic)); + } break; case VAR: s = lex(); - if (expectedIdentifier(errors, s, lexer.yyline())) { - traitVariables.add(new Variable(true, isStatic ? className + "." + s.value.toString() : "this." + s.value.toString(), s.position, isStatic)); + if (!expectedIdentifier(errors, s, lexer.yyline())) { + break; } + traitVariables.add(new Variable(true, isStatic ? className + "." + s.value.toString() : "this." + s.value.toString(), s.position, isStatic)); s = lex(); if (s.type == SymbolType.COLON) { type(errors, false, variables); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/simpleparser/SimpleParser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/simpleparser/SimpleParser.java index 6c39bb081..0cbaf743c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/simpleparser/SimpleParser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/simpleparser/SimpleParser.java @@ -18,7 +18,6 @@ package com.jpexs.decompiler.flash.simpleparser; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List;