merge revision(s) r45405,r45408: [Backport #9669] [Backport #9740]

	* parse.y (lex_state_e, parser_params, f_arglist, parser_yylex):
	  separate EXPR_LABELARG from EXPR_BEG and let newline significant,
	  so that required keyword argument can place at the end of
	  argument list without parentheses.  [ruby-core:61658] [Bug #9669]

	* parse.y (parser_yylex): only a newline after label should be
	  significant.  [ruby-core:61658] [Bug #9669]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45553,r45554,r45557,r45558,r45561,r45566,r45567: [Backport #9718]

	* array.c (rb_ary_modify): remember shared array owner if a shared
	  array owner is promoted and a shared array is not promoted.
	  Now, shared array is WB-unprotected so that shared arrays are not
	  promoted.  All objects referred from shared array should be marked
	  correctly.
	  [ruby-core:61919] [ruby-trunk - Bug #9718]

	* test/ruby/test_array.rb: add a test for above.

	* test/ruby/test_array.rb: remove useless `assert'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e