updating to next version 1.52
escape each part of substitution, not their concatenation

It's easier to think about what the compiled code will do, rather
than look at the diff alone.

Given this substitution:

  <% x(), y(), z() | escape %>

The current code does this:

  $m->print(  escape_func( join( q{}, x(), y(), z() ) ) )

After this patch, it does this:

  $m->print(  map {; escape_func($_) } ( x(), y(), z() ) );

These are both just slightly simplified.

This change is important because it allows substitutions and escapes
to interact based on type.  For example, I wrote an escape that
looks something like this:

  sub escape_html {
    my $input = shift;
    return $input->as_html if blessed $input and $input->isa('HTML::Hunk');
    return escape_entities($input);
  }

Then everything is html-escaped unless it explicitly declaring that
it is HTML.  It means less type-accounting throughout the whole
application, because the type can always be inspected.
ensure that we can write escapes that handle refs
Fix precedence error; "and" is lower precedence than "return"

Perl 5.19.4 and above produce a warning to detect this common error; it
rightly detects that use_dhandlers and use_autohandlers incorrectly
returned true when they were set to the empty string.  The behavior in
both cases was _equivalent_ to disabling the feature, because the empty
filename could never be found to be used.

Fix the precedence using explicit parens, and add explicit tests for the
return values of use_dhandlers and use_autohandlers.  This fixes
[rt.cpan.org #87050].
Don't turn on global warnings via shebang parsing in tests

A tests in t/06-compiler.t was broken because it relied on $^W being
true via the shebang being parsed. Mason actually *doesn't* turn on
warnings for you by default, and these tests were just implicitly
relying on perl setting $^W because it would parse the shebang of this
file.

Do a "use warnings" in t/06-compiler.t and other tests instead of
turning $^W on implicitly via the shebang.

fix tests that were relying on global warnings not to not do
so (Mason *won't* warn about runtime warnings like "$x + undef" by
default), and add new tests to show that the previous behavior only
kicks in if you add an explicit "use warnings".

Remove the shebangs for all tests except t/12-taint.t, where it's
actually used to enable taint support.

This is needed because I was going to add a use_warnings option similar
to use_strict, but couldn't actually test for it because it didn't do
anything, because warnings were globally enabled!
Implement a use_warnings flag for the Mason compiler

This allows you to catch runtime warnings in all Mason templates by
enabling a global use_warnings switch, similar to the use_strict
switch. Unlike use_strict this is off by default, so it's fully
backwards compatible.

I have a huge codebase where I'd like to enable warnings by default, and
not have to turn them on one-by-one for each template, which would
be *really* painful.
HTML::Mason::Params: Correct lies about complier_class default

The default is actually HTML::Mason::Compiler::ToObject as noted a few
lines above, not HTML::Mason::Compiler. Go copy/paste!
RT #49031 - Ignore 'Software caused connection abort'
RT #88708 - sort hash keys to deal with Perl 5.18+ hash randomization
1.52
Merge pull request #2 from alexmv/precedence

Fix precedence error; "and" is lower precedence than "return"
Merge pull request #1 from rjbs/escape-each-item

escape each part of substitution, not their concatenation
Merge pull request #3 from avar/do-not-use-global-warnings-in-tests

Don't turn on global warnings via shebang parsing in tests
Merge pull request #4 from avar/implement-use_warnings-switch

Implement use warnings switch
Merge pull request #5 from avar/html-mason-params-correct-docs-for-compiler_class-default

HTML::Mason::Params: Correct lies about complier_class default
1.52
updating date for 1.52