// evaluate the body of the catch clause, with the finally block.
// that is, at the end of the catch block we want to run the finally block,
// and if any jump occurs from within (such as an exception thrown or a break statement),
// then we need to run the finally block first.
return new Next(
new TryCatchBlock(Collections.<CatchExpression>emptyList(), c.handler, finally_),
b, k);
}
});
}
// evaluate the body with the new environment
return new Next(body,f,f.withFinally(k));
}