aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-10 08:34:18 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-10 08:34:18 +0000
commit883d35566c261f8e88b98fa6f9a8256fefb44072 (patch)
tree94a8ce38dab0243bb6e6133bd66fc95a1b5e82af /parse.y
parent373730beb65f8663a67e251a5ee9f88c5aedeb19 (diff)
downloadruby-883d35566c261f8e88b98fa6f9a8256fefb44072.tar.gz
iseq.h: coverage_enabled flag
* iseq.c (prepare_iseq_build): enable coverage by coverage_enabled option, not by parse_in_eval flag in the thread context. * iseq.h (rb_compile_option_struct): add coverage_enabled flag. * parse.y (yycompile0): set coverage_enabled flag if coverage array is made. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 6 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 3b5f5f8ed8..d9663853b3 100644
--- a/parse.y
+++ b/parse.y
@@ -5516,6 +5516,7 @@ yycompile0(VALUE arg)
int n;
NODE *tree;
struct parser_params *parser = (struct parser_params *)arg;
+ VALUE cov = Qfalse;
if (!compile_for_eval && rb_safe_level() == 0) {
ruby_debug_lines = debug_lines(ruby_sourcefile_string);
@@ -5529,6 +5530,7 @@ yycompile0(VALUE arg)
if (!e_option_supplied(parser)) {
ruby_coverage = coverage(ruby_sourcefile_string, ruby_sourceline);
+ cov = Qtrue;
}
}
@@ -5559,7 +5561,10 @@ yycompile0(VALUE arg)
tree = NEW_NIL();
}
else {
- tree->nd_body = NEW_PRELUDE(ruby_eval_tree_begin, tree->nd_body, parser->compile_option);
+ VALUE opt = parser->compile_option;
+ if (!opt) opt = rb_obj_hide(rb_ident_hash_new());
+ rb_hash_aset(opt, rb_sym_intern_ascii_cstr("coverage_enabled"), cov);
+ tree->nd_body = NEW_PRELUDE(ruby_eval_tree_begin, tree->nd_body, opt);
}
return (VALUE)tree;
}