Sha256: 74c3d261be2397e508d3ad21155e544dae5d37ff8067a4c6a9efe05532d79322

Contents?: true

Size: 701 Bytes

Versions: 5

Compression:

Stored size: 701 Bytes

Contents

require 'internal/vm'

if defined?(RubyVM::InstructionSequence) then
  require 'internal/vm/bytedecoder'

  class RubyVM
    class InstructionSequence
      def as_expression
        env = Nodewrap::ByteDecoder::Environment.new(local_table())
        opt_pc = self.opt_pc
        self.bytedecode(env, opt_pc)
        expressions = env.expressions + env.stack
        if expressions.length == 0 then
          return nil
        elsif expressions.length == 1 and
           expressions[0].is_a?(Nodewrap::ByteDecoder::Expression::Literal) and
           expressions[0].value == nil then
          return nil
        else
          return expressions.join('; ')
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ruby-internal-0.7.3 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.7.2 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.7.1 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.7.0 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.6.0 lib/internal/vm/iseq/as_expression.rb