diff --git a/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java b/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java
index 39cccb1d2..d1c3cd3c0 100644
--- a/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java
+++ b/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java
@@ -1,136 +1,137 @@
-/*
- * Copyright (C) 2010-2014 JPEXS
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.jpexs.decompiler.flash.action.model;
-
-import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
-import com.jpexs.decompiler.flash.action.Action;
-import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
-import com.jpexs.decompiler.flash.action.swf4.ActionPush;
-import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
-import com.jpexs.decompiler.flash.action.swf5.ActionSetMember;
-import com.jpexs.decompiler.flash.action.swf5.ActionStoreRegister;
-import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
-import com.jpexs.decompiler.graph.CompilationException;
-import com.jpexs.decompiler.graph.GraphPart;
-import com.jpexs.decompiler.graph.GraphSourceItem;
-import com.jpexs.decompiler.graph.GraphSourceItemPos;
-import com.jpexs.decompiler.graph.GraphTargetItem;
-import com.jpexs.decompiler.graph.SourceGenerator;
-import com.jpexs.decompiler.graph.model.LocalData;
-import java.util.ArrayList;
-import java.util.List;
-
-public class SetMemberActionItem extends ActionItem implements SetTypeActionItem {
-
- public GraphTargetItem object;
- public GraphTargetItem objectName;
- //public GraphTargetItem value;
- private int tempRegister = -1;
-
- @Override
- public List getAllSubItems() {
- List ret = new ArrayList<>();
- ret.add(object);
- ret.add(value);
- return ret;
- }
-
- @Override
- public GraphPart getFirstPart() {
- return value.getFirstPart();
- }
-
- @Override
- public void setValue(GraphTargetItem value) {
- this.value = value;
- }
-
- @Override
- public int getTempRegister() {
- return tempRegister;
- }
-
- @Override
- public void setTempRegister(int tempRegister) {
- this.tempRegister = tempRegister;
- }
-
- @Override
- public GraphTargetItem getValue() {
- return value;
- }
-
- public SetMemberActionItem(GraphSourceItem instruction, GraphTargetItem object, GraphTargetItem objectName, GraphTargetItem value) {
- super(instruction, PRECEDENCE_ASSIGMENT);
- this.object = object;
- this.objectName = objectName;
- this.value = value;
- }
-
- @Override
- public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
- object.toString(writer, localData);
- if ((objectName instanceof DirectValueActionItem) && (((DirectValueActionItem) objectName).value instanceof String) && !Action.isReservedWord((String) ((DirectValueActionItem) objectName).value)) {
- writer.append(".");
- stripQuotes(objectName, localData, writer);
- } else {
- writer.append("[");
- objectName.toString(writer, localData);
- writer.append("]");
-
- }
- writer.append(" = ");
- return value.toString(writer, localData);
-
- }
-
- @Override
- public GraphTargetItem getObject() {
- return new GetMemberActionItem(src, object, objectName);
- }
-
- @Override
- public List getNeededSources() {
- List ret = super.getNeededSources();
- ret.addAll(object.getNeededSources());
- ret.addAll(objectName.getNeededSources());
- ret.addAll(value.getNeededSources());
- return ret;
- }
-
- @Override
- public boolean hasSideEffect() {
- return true;
- }
-
- @Override
- public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
- ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
- int tmpReg = asGenerator.getTempRegister(localData);
- return toSourceMerge(localData, generator, object, objectName, value, new ActionStoreRegister(tmpReg), new ActionSetMember(), new ActionPush(new RegisterNumber(tmpReg)));
- }
-
- @Override
- public List toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
- return toSourceMerge(localData, generator, object, objectName, value, new ActionSetMember());
- }
-
- @Override
- public boolean hasReturnValue() {
- return false;
- }
-}
+/*
+ * Copyright (C) 2010-2014 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.decompiler.flash.action.model;
+
+import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
+import com.jpexs.decompiler.flash.action.Action;
+import com.jpexs.decompiler.flash.action.Deobfuscation;
+import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
+import com.jpexs.decompiler.flash.action.swf4.ActionPush;
+import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
+import com.jpexs.decompiler.flash.action.swf5.ActionSetMember;
+import com.jpexs.decompiler.flash.action.swf5.ActionStoreRegister;
+import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
+import com.jpexs.decompiler.graph.CompilationException;
+import com.jpexs.decompiler.graph.GraphPart;
+import com.jpexs.decompiler.graph.GraphSourceItem;
+import com.jpexs.decompiler.graph.GraphSourceItemPos;
+import com.jpexs.decompiler.graph.GraphTargetItem;
+import com.jpexs.decompiler.graph.SourceGenerator;
+import com.jpexs.decompiler.graph.model.LocalData;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SetMemberActionItem extends ActionItem implements SetTypeActionItem {
+
+ public GraphTargetItem object;
+ public GraphTargetItem objectName;
+ //public GraphTargetItem value;
+ private int tempRegister = -1;
+
+ @Override
+ public List getAllSubItems() {
+ List ret = new ArrayList<>();
+ ret.add(object);
+ ret.add(value);
+ return ret;
+ }
+
+ @Override
+ public GraphPart getFirstPart() {
+ return value.getFirstPart();
+ }
+
+ @Override
+ public void setValue(GraphTargetItem value) {
+ this.value = value;
+ }
+
+ @Override
+ public int getTempRegister() {
+ return tempRegister;
+ }
+
+ @Override
+ public void setTempRegister(int tempRegister) {
+ this.tempRegister = tempRegister;
+ }
+
+ @Override
+ public GraphTargetItem getValue() {
+ return value;
+ }
+
+ public SetMemberActionItem(GraphSourceItem instruction, GraphTargetItem object, GraphTargetItem objectName, GraphTargetItem value) {
+ super(instruction, PRECEDENCE_ASSIGMENT);
+ this.object = object;
+ this.objectName = objectName;
+ this.value = value;
+ }
+
+ @Override
+ public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
+ object.toString(writer, localData);
+
+ if((!(objectName instanceof DirectValueActionItem)) || (!((DirectValueActionItem)objectName).isString()) ||(!Deobfuscation.isValidName(((DirectValueActionItem)objectName).toStringNoQuotes(localData)))){
+ writer.append("[");
+ objectName.toString(writer, localData);
+ writer.append("]");
+ }else{
+ writer.append(".");
+ stripQuotes(objectName, localData, writer);
+ }
+ writer.append(" = ");
+ return value.toString(writer, localData);
+
+ }
+
+ @Override
+ public GraphTargetItem getObject() {
+ return new GetMemberActionItem(src, object, objectName);
+ }
+
+ @Override
+ public List getNeededSources() {
+ List ret = super.getNeededSources();
+ ret.addAll(object.getNeededSources());
+ ret.addAll(objectName.getNeededSources());
+ ret.addAll(value.getNeededSources());
+ return ret;
+ }
+
+ @Override
+ public boolean hasSideEffect() {
+ return true;
+ }
+
+ @Override
+ public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
+ ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
+ int tmpReg = asGenerator.getTempRegister(localData);
+ return toSourceMerge(localData, generator, object, objectName, value, new ActionStoreRegister(tmpReg), new ActionSetMember(), new ActionPush(new RegisterNumber(tmpReg)));
+ }
+
+ @Override
+ public List toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
+ return toSourceMerge(localData, generator, object, objectName, value, new ActionSetMember());
+ }
+
+ @Override
+ public boolean hasReturnValue() {
+ return false;
+ }
+}
diff --git a/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java b/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java
index de1dc0876..3d201e5fd 100644
--- a/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java
+++ b/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java
@@ -1,134 +1,135 @@
-/*
- * Copyright (C) 2010-2014 JPEXS
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.jpexs.decompiler.flash.action.model;
-
-import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
-import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
-import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
-import com.jpexs.decompiler.flash.action.swf4.ActionPush;
-import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable;
-import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
-import com.jpexs.decompiler.flash.action.swf5.ActionStoreRegister;
-import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
-import com.jpexs.decompiler.graph.CompilationException;
-import com.jpexs.decompiler.graph.GraphPart;
-import com.jpexs.decompiler.graph.GraphSourceItem;
-import com.jpexs.decompiler.graph.GraphSourceItemPos;
-import com.jpexs.decompiler.graph.GraphTargetItem;
-import com.jpexs.decompiler.graph.SourceGenerator;
-import com.jpexs.decompiler.graph.model.LocalData;
-import java.util.List;
-import java.util.Set;
-
-public class SetVariableActionItem extends ActionItem implements SetTypeActionItem {
-
- public GraphTargetItem name;
- //public GraphTargetItem value;
- private int tempRegister = -1;
-
- @Override
- public GraphPart getFirstPart() {
- return value.getFirstPart();
- }
-
- @Override
- public void setValue(GraphTargetItem value) {
- this.value = value;
- }
-
- @Override
- public int getTempRegister() {
- return tempRegister;
- }
-
- @Override
- public void setTempRegister(int tempRegister) {
- this.tempRegister = tempRegister;
- }
-
- @Override
- public GraphTargetItem getValue() {
- return value;
- }
-
- public SetVariableActionItem(GraphSourceItem instruction, GraphTargetItem name, GraphTargetItem value) {
- super(instruction, PRECEDENCE_ASSIGMENT);
- this.name = name;
- this.value = value;
- }
-
- @Override
- public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
- if (name instanceof DirectValueActionItem || name instanceof VariableActionItem) {
- stripQuotes(name, localData, writer);
- writer.append(" = ");
- return value.toString(writer, localData);
- } else {
- writer.append("set");
- writer.spaceBeforeCallParenthesies(2);
- writer.append("(");
- name.toString(writer, localData);
- writer.append(",");
- value.toString(writer, localData);
- return writer.append(")");
- }
- }
-
- @Override
- public GraphTargetItem getObject() {
- return new GetVariableActionItem(src, name);
- }
-
- @Override
- public List getNeededSources() {
- List ret = super.getNeededSources();
- ret.addAll(name.getNeededSources());
- ret.addAll(value.getNeededSources());
- return ret;
- }
-
- @Override
- public boolean isCompileTime(Set dependencies) {
- if (dependencies.contains(value)) {
- return false;
- }
- dependencies.add(value);
- return value.isCompileTime(dependencies);
- }
-
- @Override
- public boolean hasSideEffect() {
- return true;
- }
-
- @Override
- public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
- ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
- int tmpReg = asGenerator.getTempRegister(localData);
- return toSourceMerge(localData, generator, name, value, new ActionStoreRegister(tmpReg), new ActionSetVariable(), new ActionPush(new RegisterNumber(tmpReg)));
- }
-
- @Override
- public List toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
- return toSourceMerge(localData, generator, name, value, new ActionSetVariable());
- }
-
- @Override
- public boolean hasReturnValue() {
- return false;
- }
-}
+/*
+ * Copyright (C) 2010-2014 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.decompiler.flash.action.model;
+
+import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
+import com.jpexs.decompiler.flash.action.Deobfuscation;
+import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator;
+import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem;
+import com.jpexs.decompiler.flash.action.swf4.ActionPush;
+import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable;
+import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
+import com.jpexs.decompiler.flash.action.swf5.ActionStoreRegister;
+import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
+import com.jpexs.decompiler.graph.CompilationException;
+import com.jpexs.decompiler.graph.GraphPart;
+import com.jpexs.decompiler.graph.GraphSourceItem;
+import com.jpexs.decompiler.graph.GraphSourceItemPos;
+import com.jpexs.decompiler.graph.GraphTargetItem;
+import com.jpexs.decompiler.graph.SourceGenerator;
+import com.jpexs.decompiler.graph.model.LocalData;
+import java.util.List;
+import java.util.Set;
+
+public class SetVariableActionItem extends ActionItem implements SetTypeActionItem {
+
+ public GraphTargetItem name;
+ //public GraphTargetItem value;
+ private int tempRegister = -1;
+
+ @Override
+ public GraphPart getFirstPart() {
+ return value.getFirstPart();
+ }
+
+ @Override
+ public void setValue(GraphTargetItem value) {
+ this.value = value;
+ }
+
+ @Override
+ public int getTempRegister() {
+ return tempRegister;
+ }
+
+ @Override
+ public void setTempRegister(int tempRegister) {
+ this.tempRegister = tempRegister;
+ }
+
+ @Override
+ public GraphTargetItem getValue() {
+ return value;
+ }
+
+ public SetVariableActionItem(GraphSourceItem instruction, GraphTargetItem name, GraphTargetItem value) {
+ super(instruction, PRECEDENCE_ASSIGMENT);
+ this.name = name;
+ this.value = value;
+ }
+
+ @Override
+ public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
+ if (((name instanceof DirectValueActionItem)&&((DirectValueActionItem)name).isString() && Deobfuscation.isValidName(((DirectValueActionItem)name).toStringNoQuotes(localData))) || name instanceof VariableActionItem) {
+ stripQuotes(name, localData, writer);
+ writer.append(" = ");
+ return value.toString(writer, localData);
+ } else {
+ writer.append("set");
+ writer.spaceBeforeCallParenthesies(2);
+ writer.append("(");
+ name.toString(writer, localData);
+ writer.append(",");
+ value.toString(writer, localData);
+ return writer.append(")");
+ }
+ }
+
+ @Override
+ public GraphTargetItem getObject() {
+ return new GetVariableActionItem(src, name);
+ }
+
+ @Override
+ public List getNeededSources() {
+ List ret = super.getNeededSources();
+ ret.addAll(name.getNeededSources());
+ ret.addAll(value.getNeededSources());
+ return ret;
+ }
+
+ @Override
+ public boolean isCompileTime(Set dependencies) {
+ if (dependencies.contains(value)) {
+ return false;
+ }
+ dependencies.add(value);
+ return value.isCompileTime(dependencies);
+ }
+
+ @Override
+ public boolean hasSideEffect() {
+ return true;
+ }
+
+ @Override
+ public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
+ ActionSourceGenerator asGenerator = (ActionSourceGenerator) generator;
+ int tmpReg = asGenerator.getTempRegister(localData);
+ return toSourceMerge(localData, generator, name, value, new ActionStoreRegister(tmpReg), new ActionSetVariable(), new ActionPush(new RegisterNumber(tmpReg)));
+ }
+
+ @Override
+ public List toSourceIgnoreReturnValue(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
+ return toSourceMerge(localData, generator, name, value, new ActionSetVariable());
+ }
+
+ @Override
+ public boolean hasReturnValue() {
+ return false;
+ }
+}