@@ -673,12 +673,21 @@ def concatstrings(number)
673673 push ( ConcatStrings . new ( number ) )
674674 end
675675
676+ def defineclass ( name , class_iseq , flags )
677+ push ( DefineClass . new ( name , class_iseq , flags ) )
678+ end
679+
676680 def defined ( type , name , message )
677681 push ( Defined . new ( type , name , message ) )
678682 end
679683
680- def defineclass ( name , class_iseq , flags )
681- push ( DefineClass . new ( name , class_iseq , flags ) )
684+ def defined_ivar ( name , cache , message )
685+ if RUBY_VERSION < "3.3"
686+ push ( PutNil . new )
687+ push ( Defined . new ( Defined ::TYPE_IVAR , name , message ) )
688+ else
689+ push ( DefinedIVar . new ( name , cache , message ) )
690+ end
682691 end
683692
684693 def definemethod ( name , method_iseq )
@@ -1058,6 +1067,8 @@ def self.from(source, options = Compiler::Options.new, parent_iseq = nil)
10581067 iseq . defineclass ( opnds [ 0 ] , from ( opnds [ 1 ] , options , iseq ) , opnds [ 2 ] )
10591068 when :defined
10601069 iseq . defined ( opnds [ 0 ] , opnds [ 1 ] , opnds [ 2 ] )
1070+ when :defined_ivar
1071+ iseq . defined_ivar ( opnds [ 0 ] , opnds [ 1 ] , opnds [ 2 ] )
10611072 when :definemethod
10621073 iseq . definemethod ( opnds [ 0 ] , from ( opnds [ 1 ] , options , iseq ) )
10631074 when :definesmethod
0 commit comments