From 6eac885ebef2b5189bb68acadcba0530bcc4bfb1 Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 17 Dec 2014 01:20:22 +0000 Subject: * compile.c (iseq_compile_each): check iseq->compile_data->option->specialized_instruction for opt_* insn. * test/ruby/test_iseq.rb: check no specialized_instructions option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_iseq.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_iseq.rb b/test/ruby/test_iseq.rb index d7d15c7703..ede333fd14 100644 --- a/test/ruby/test_iseq.rb +++ b/test/ruby/test_iseq.rb @@ -124,4 +124,14 @@ class TestISeq < Test::Unit::TestCase ISeq.of(c.instance_method(:foobar)).label assert_same a, b end + + def test_diable_opt + src = "a['foo'] = a['bar']; 'a'.freeze" + _,_,_,_,_,_,_,_,_,_,_,_,_,body= RubyVM::InstructionSequence.compile(src, __FILE__, __FILE__, __LINE__, false).to_a + body.each{|insn| + next if Integer === insn + op = insn.first + assert(!op.to_s.match(/^opt_/), "#{op}") + } + end end -- cgit v1.2.3