aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ext/rubyvm/lib/forwardable/impl.rb5
-rw-r--r--lib/forwardable.rb2
-rw-r--r--lib/forwardable/impl.rb8
-rw-r--r--template/prelude.c.tmpl2
4 files changed, 3 insertions, 14 deletions
diff --git a/ext/rubyvm/lib/forwardable/impl.rb b/ext/rubyvm/lib/forwardable/impl.rb
index e9ada26e74..e9bde2f299 100644
--- a/ext/rubyvm/lib/forwardable/impl.rb
+++ b/ext/rubyvm/lib/forwardable/impl.rb
@@ -1,7 +1,5 @@
# :stopdoc:
module Forwardable
- FILTER_EXCEPTION = ""
-
def self._valid_method?(method)
iseq = RubyVM::InstructionSequence.compile("().#{method}", nil, nil, 0, false)
rescue SyntaxError
@@ -12,8 +10,7 @@ module Forwardable
def self._compile_method(src, file, line)
RubyVM::InstructionSequence.compile(src, file, file, line,
- trace_instruction: false,
- tailcall_optimization: true)
+ trace_instruction: false)
.eval
end
end
diff --git a/lib/forwardable.rb b/lib/forwardable.rb
index 7791a97b06..bcd462a97c 100644
--- a/lib/forwardable.rb
+++ b/lib/forwardable.rb
@@ -222,7 +222,7 @@ module Forwardable
#{pre}
begin
#{accessor}
- end#{method_call}#{FILTER_EXCEPTION}
+ end#{method_call}
end
end
end;
diff --git a/lib/forwardable/impl.rb b/lib/forwardable/impl.rb
index 220d25aa95..58a9dfb69c 100644
--- a/lib/forwardable/impl.rb
+++ b/lib/forwardable/impl.rb
@@ -1,13 +1,5 @@
# :stopdoc:
module Forwardable
- FILE_REGEXP = %r"#{Regexp.quote(File.dirname(__FILE__))}"
- FILTER_EXCEPTION = <<-'END'
-
- rescue ::Exception
- $@.delete_if {|s| ::Forwardable::FILE_REGEXP =~ s} unless ::Forwardable::debug
- ::Kernel::raise
- END
-
def self._valid_method?(method)
catch {|tag|
eval("BEGIN{throw tag}; ().#{method}", binding, __FILE__, __LINE__)
diff --git a/template/prelude.c.tmpl b/template/prelude.c.tmpl
index f642398921..aa760dc054 100644
--- a/template/prelude.c.tmpl
+++ b/template/prelude.c.tmpl
@@ -148,7 +148,7 @@ prelude_eval(VALUE code, VALUE name, int line)
static const rb_compile_option_t optimization = {
TRUE, /* int inline_const_cache; */
TRUE, /* int peephole_optimization; */
- TRUE, /* int tailcall_optimization; */
+ FALSE,/* int tailcall_optimization; */
TRUE, /* int specialized_instruction; */
TRUE, /* int operands_unification; */
TRUE, /* int instructions_unification; */