diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-10 08:34:18 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-10 08:34:18 +0000 |
commit | cf09c0c351d15968819bbe73a5a9d9dc41a3e0d9 (patch) | |
tree | 94a8ce38dab0243bb6e6133bd66fc95a1b5e82af /parse.y | |
parent | 2d39d11436b5cae57f8d87e424f9f30bb97b7e20 (diff) |
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.y | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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; } |