diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-09-26 09:34:46 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-09-26 09:34:46 +0000 |
commit | 1bebb22ce16c6129a805adad83e0f1e29f3874a0 (patch) | |
tree | 5b6f7577de49c048fab45e5c293b01824f494e03 /test | |
parent | 24793ac32db538306899aed7ba588b7231f93a95 (diff) | |
download | ruby-1bebb22ce16c6129a805adad83e0f1e29f3874a0.tar.gz |
* insns.def: add new instruction `opt_empty_p' for optimize `empty?'
method. Apply a patch proposed at [ruby-dev:46120]
[ruby-trunk - Feature #6972] by Glass_saga (Masaki Matsushita).
* compile.c (iseq_specialized_instruction), vm.c, vm_insnhelper.h:
ditto.
* id.c, template/id.h.tmpl: ditto.
* test/ruby/test_optimization.rb: test for this changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_optimization.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/ruby/test_optimization.rb b/test/ruby/test_optimization.rb index 1b0c730996..a3b4aedcdc 100644 --- a/test/ruby/test_optimization.rb +++ b/test/ruby/test_optimization.rb @@ -85,6 +85,14 @@ class TestRubyOptimization < Test::Unit::TestCase assert_equal 6, "string".length end + def test_string_empty? + assert_equal true, "".empty? + assert_equal false, "string".empty? + assert_nil redefine_method('String', 'empty?') { "string".empty? } + assert_equal true, "".empty? + assert_equal false, "string".empty? + end + def test_string_plus assert_equal "", "" + "" assert_equal "x", "x" + "" @@ -116,11 +124,21 @@ class TestRubyOptimization < Test::Unit::TestCase assert_equal 3, [1,2,3].length end + def test_array_empty? + assert_equal true, [].empty? + assert_equal false, [1,2,3].empty? + end + def test_hash_length assert_equal 0, {}.length assert_equal 1, {1=>1}.length end + def test_hash_empty? + assert_equal true, {}.empty? + assert_equal false, {1=>1}.empty? + end + class MyObj def ==(other) true |