From 4aa8e0f64f649c152d35d1f606249304a7749a24 Mon Sep 17 00:00:00 2001 From: shugo Date: Thu, 3 Dec 2009 18:25:57 +0000 Subject: * compile.c (compile_cpath, iseq_compile_each): reverted constant/class variable lookup in instance_eval etc. to the behavior of 1.8. * eval.c (rb_mod_nesting): ditto. * insns.def (putspecialobject, defineclass): ditto. * node.h (NODE_FL_CREF_PUSHED_BY_EVAL): ditto. * vm_core.h (VM_SPECIAL_OBJECT_CONST_BASE): ditto. * vm_eval.c (yield_under, eval_under): ditto. * vm_insnhelper.c (vm_cref_push, vm_get_const_base, vm_get_ev_const, vm_get_cvar_base): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_object.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/ruby/test_object.rb') diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb index e90ca3b6d..ebc10fc65 100644 --- a/test/ruby/test_object.rb +++ b/test/ruby/test_object.rb @@ -416,12 +416,20 @@ class TestObject < Test::Unit::TestCase end end + class InstanceExec + INSTANCE_EXEC = 123 + end + def test_instance_exec x = 1.instance_exec(42) {|a| self + a } assert_equal(43, x) x = "foo".instance_exec("bar") {|a| self + a } assert_equal("foobar", x) + + assert_raise(NameError) do + InstanceExec.new.instance_exec { INSTANCE_EXEC } + end end def test_extend -- cgit