The surroundings of the code generator have some dead code that should be pruned: - MethodEmitter.registerReturn is unused - CodeGenerator.enterEmptyNode is unnecessary - BranchOptimizer has a case for a boolean UnaryNode that is not a NOT. There are no such nodes (or they're transformed to RuntimeNode earlier, e.g. the DELETE one) - the Emitter interface is unused