Files
mruby-mruby/test/t
Kouhei Sutou 8cb40fcda7 Fix ensure with yield context on break and return
How to reproduce:

    class A
      def x
        yield
      ensure
        y
      end

      def y
      end
    end

    # Work
    A.new.x do
    end

    # Not work
    # trace:
    # 	[2] /tmp/a.rb:5:in A.x
    # 	[0] /tmp/a.rb:15
    # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError)
    A.new.x do
      break
    end

    # trace:
    # 	[2] /tmp/a.rb:5:in A.call
    # 	[0] /tmp/a.rb:19
    # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError)
    lambda do
      A.new.x do
        return
      end
    end.call

`self` in ensure is broken when yield and break/return are used.
2015-02-05 22:40:25 +09:00
..
2014-05-06 23:30:02 +09:00
2013-06-14 21:35:49 +08:00
2014-06-19 01:55:39 +09:00
2013-09-22 18:14:40 +09:00
2014-04-30 09:50:14 +09:00
2014-08-25 17:18:24 +09:00
2014-12-17 14:01:39 +09:00
2014-12-23 21:16:01 +09:00