Issue #576 AS1/2 direct editation: DefineFunction2 fix

AS1/2 property fix
This commit is contained in:
Jindra Petk
2014-05-08 22:48:35 +02:00
parent 18baeed3df
commit c9e20ecc1e
3 changed files with 9 additions and 1 deletions

View File

@@ -279,7 +279,7 @@ public class FunctionActionItem extends ActionItem {
suppressThisFlag,
preloadThisFlag,
preloadGlobalFlag,
registerNames.size() - 1, len, SWF.DEFAULT_VERSION, paramNames, paramRegs));
registerNames.size(), len, SWF.DEFAULT_VERSION, paramNames, paramRegs));
}
return ret;

View File

@@ -43,6 +43,10 @@ public class ActionGetProperty extends Action {
if (index instanceof DirectValueActionItem) {
if (((DirectValueActionItem) index).value instanceof Long) {
indexInt = (int) (long) (Long) ((DirectValueActionItem) index).value;
} else if (((DirectValueActionItem) index).value instanceof Double) {
indexInt = (int) Math.round((Double) ((DirectValueActionItem) index).value);
} else if (((DirectValueActionItem) index).value instanceof Float) {
indexInt = (int) Math.round((Float) ((DirectValueActionItem) index).value);
}
}
stack.push(new GetPropertyActionItem(this, target, indexInt));

View File

@@ -53,6 +53,10 @@ public class ActionSetProperty extends Action {
if (index instanceof DirectValueActionItem) {
if (((DirectValueActionItem) index).value instanceof Long) {
indexInt = (int) (long) (Long) ((DirectValueActionItem) index).value;
} else if (((DirectValueActionItem) index).value instanceof Double) {
indexInt = (int) Math.round((Double) ((DirectValueActionItem) index).value);
} else if (((DirectValueActionItem) index).value instanceof Float) {
indexInt = (int) Math.round((Float) ((DirectValueActionItem) index).value);
}
}
if (value.getThroughDuplicate() instanceof IncrementActionItem) {