public dynamic Invoke(Scope scope) { switch (Operator) { case "++": if(Argument is MemberExpression) { if (((MemberExpression)Argument).Object is ThisExpression) { var val = ((IOperation) Argument).Invoke(scope); return scope.Handle( ((Identifier)((MemberExpression) Argument).Property).Id, true, HandleHelp(val)); } else return new NaN(); } break; default: throw new Exception("Invalid operator: " + Operator); } return new Undefined(); }