summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/ruby/test_compile_prism.rb26
1 files changed, 24 insertions, 2 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index 7e39e9d266..ef14cbaf91 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -488,8 +488,30 @@ module Prism
############################################################################
def test_ScopeNode
- test_prism_eval("a = 1; tap do; { a: }; end")
- test_prism_eval("a = 1; def foo(a); a; end")
+ assert_separately(%w[], "#{<<-'begin;'}\n#{<<-'end;'}")
+ begin;
+ def compare_eval(source)
+ ruby_eval = RubyVM::InstructionSequence.compile(source).eval
+ prism_eval = RubyVM::InstructionSequence.compile_prism(source).eval
+
+ assert_equal ruby_eval, prism_eval
+ end
+
+ def test_prism_eval(source)
+ $VERBOSE, verbose_bak = nil, $VERBOSE
+
+ begin
+ compare_eval(source)
+
+ # Test "popped" functionality
+ compare_eval("#{source}; 1")
+ ensure
+ $VERBOSE = verbose_bak
+ end
+ end
+ test_prism_eval("a = 1; tap do; { a: }; end")
+ test_prism_eval("a = 1; def foo(a); a; end")
+ end;
end
private