summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sample/test.rb4
-rw-r--r--test/ruby/test_system.rb4
3 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 7717603197..48f746b64b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Feb 2 12:39:00 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * sample/test.rb (valid_syntax?), test/ruby/test_system.rb
+ (TestSystem::valid_syntax?): use catch and throw instead of
+ return inside BEGIN block.
+
Mon Feb 2 11:45:10 2009 Tanaka Akira <akr@fsij.org>
* ext/socket/rubysocket.h (cmsg_type_arg): declared.
diff --git a/sample/test.rb b/sample/test.rb
index 21656885f6..03ab435e00 100644
--- a/sample/test.rb
+++ b/sample/test.rb
@@ -1931,9 +1931,9 @@ def valid_syntax?(code, fname)
p fname
code.force_encoding("ascii-8bit")
code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) {
- "#$&#{"\n" if $1 && !$2}BEGIN{return true}\n"
+ "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
}
- eval(code, nil, fname, 0)
+ catch {|tag| eval(code, binding, fname, 0)}
rescue Exception
STDERR.puts $!.message
false
diff --git a/test/ruby/test_system.rb b/test/ruby/test_system.rb
index ec8aca74cb..4aae0d54f1 100644
--- a/test/ruby/test_system.rb
+++ b/test/ruby/test_system.rb
@@ -6,9 +6,9 @@ class TestSystem < Test::Unit::TestCase
def valid_syntax?(code, fname)
code.force_encoding("ascii-8bit")
code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) {
- "#$&#{"\n" if $1 && !$2}BEGIN{return true}\n"
+ "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
}
- eval(code, nil, fname, 0)
+ catch {|tag| eval(code, binding, fname, 0)}
end
def test_system