@SuppressWarnings("unchecked")
public Object execute(final Context context) {
KeyIter iter = CollectionUtil.toKeyIter(mapExpr.execute(context), this);
if (iter != null && functionDeclareExpr != null) {
iter = new KeyIterMethodFilter(context, functionDeclareExpr.execute(context), iter);
}
if (iter != null && iter.hasNext()) {
final int preIndex = context.indexer;
context.indexer = indexer;
final Statement[] stats = this.statements;