Buggy code:
case GET_CVAR : return new GetClassVariableInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeString ( ) ) ; case GET_ENCODING : return new GetEncodingInstr ( d . decodeVariable ( ) , Encoding . load ( d . decodeString ( ) ) ) ; case GET_ERROR_INFO : return new org . jruby . ir . instructions . defined . GetErrorInfoInstr ( d . decodeVariable ( ) ) ; case GET_FIELD : return new GetFieldInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeString ( ) ) ; case GET_GLOBAL_VAR : return new GetGlobalVariableInstr ( d . decodeVariable ( ) , d . decodeString ( ) ) ; case GVAR_ALIAS : return new GVarAliasInstr ( d . decodeOperand ( ) , d . decodeOperand ( ) ) ; case INHERITANCE_SEARCH_CONST : return new InheritanceSearchConstInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeString ( ) , d . decodeBoolean ( ) ) ; case JUMP : return new JumpInstr ( ( ( Label ) ( d . decodeOperand ( ) ) ) ) ; case LABEL : return LabelInstr . decode ( d ) ; case LAMBDA : return decodeLambda ( ) ; case LEXICAL_SEARCH_CONST : return new LexicalSearchConstInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeString ( ) ) ; case LOAD_FRAME_CLOSURE : return new LoadFrameClosureInstr ( d . decodeVariable ( ) ) ; case LOAD_IMPLICIT_CLOSURE : return new LoadImplicitClosureInstr ( d . decodeVariable ( ) ) ; case LINE_NUM : return decodeLineNumber ( ) ; case MASGN_OPT : return new OptArgMultipleAsgnInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case MASGN_REQD : return new ReqdArgMultipleAsgnInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case MASGN_REST : return new RestArgMultipleAsgnInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case MATCH : return new MatchInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) ) ; case MATCH2 : return new Match2Instr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeOperand ( ) ) ; case MATCH3 : return new Match3Instr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeOperand ( ) ) ; case NONLOCAL_RETURN : return new NonlocalReturnInstr ( d . decodeOperand ( ) , d . decodeString ( ) ) ; case NOP : return NopInstr . NOP ; case NORESULT_CALL : case NORESULT_CALL_1O : return decodeNoResultCall ( ) ; case POP_BINDING : return new PopBindingInstr ( ) ; case POP_FRAME : return new PopFrameInstr ( ) ; case PROCESS_MODULE_BODY : return ProcessModuleBodyInstr . decode ( d ) ; case PUSH_BINDING : return new PushBindingInstr ( ) ; case PUSH_FRAME : return decodeFrame ( ) ; case PUT_CONST : return new PutConstInstr ( d . decodeOperand ( ) , d . decodeString ( ) , d . decodeOperand ( ) ) ; case PUT_CVAR : return new PutClassVariableInstr ( d . decodeOperand ( ) , d . decodeString ( ) , d . decodeOperand ( ) ) ; case PUT_FIELD : return new PutFieldInstr ( d . decodeOperand ( ) , d . decodeString ( ) , d . decodeOperand ( ) ) ; case PUT_GLOBAL_VAR : return new PutGlobalVarInstr ( d . decodeString ( ) , d . decodeOperand ( ) ) ; case RAISE_ARGUMENT_ERROR : return new RaiseArgumentErrorInstr ( d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case RECORD_END_BLOCK : return new RecordEndBlockInstr ( d . decodeScope ( ) , ( ( WrappedIRClosure ) ( d . decodeOperand ( ) ) ) ) ; case REIFY_CLOSURE : <START_BUG> return new ReifyClosureInstr ( d . decodeVariable ( ) , d . decodeVariable ( ) ) ; <END_BUG> case RECV_RUBY_EXC : return decodeReceiveRubyException ( ) ; case RECV_JRUBY_EXC : return decodeReceiveJRubyException ( ) ; case RECV_KW_ARG : return new ReceiveKeywordArgInstr ( d . decodeVariable ( ) , d . decodeString ( ) , d . decodeInt ( ) ) ; case RECV_KW_REST_ARG : return new ReceiveKeywordRestArgInstr ( d . decodeVariable ( ) , d . decodeInt ( ) ) ; case RECV_OPT_ARG : return new ReceiveOptArgInstr ( d . decodeVariable ( ) , d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case RECV_POST_REQD_ARG : return new ReceivePostReqdArgInstr ( d . decodeVariable ( ) , d . decodeInt ( ) , d . decodeInt ( ) , d . decodeInt ( ) ) ; case RECV_PRE_REQD_ARG : return new ReceivePreReqdArgInstr ( d . decodeVariable ( ) , d . decodeInt ( ) ) ; case RECV_REST_ARG : return decodeReceiveRestArgInstr ( ) ; case RECV_SELF : return new ReceiveSelfInstr ( d . decodeVariable ( ) ) ; case RESCUE_EQQ : return new RescueEQQInstr ( d . decodeVariable ( ) , d . decodeOperand ( ) , d . decodeOperand ( ) ) ; case RESTORE_ERROR_INFO : return new org . jruby . ir . instructions . defined . RestoreErrorInfoInstr ( d . decodeOperand ( ) ) ; case RETURN : return new ReturnInstr ( d . decodeOperand ( ) ) ; case RUNTIME_HELPER : return decodeRuntimeHelperCall ( ) ; case SEARCH_CONST : return decodeSearchConst ( ) ; case CLASS_SUPER : return decodeSuperInstr ( operation ) ; case INSTANCE_SUPER : return decodeSuperInstr ( operation ) ; case UNRESOLVED_SUPER : return decodeUnresolvedSuperInstr ( ) ;

Fix:
return ReifyClosureInstr . decode ( d ) ;