# define VMG_COMPAT_ARRAY_UNDEF_CLEAR 0
#endif
-#if XSH_HAS_PERL(5, 11, 0)
-# define VMG_COMPAT_HASH_DELETE_NOUVAR_VOID 1
-#else
-# define VMG_COMPAT_HASH_DELETE_NOUVAR_VOID 0
-#endif
+#define VMG_COMPAT_HASH_DELETE_NOUVAR_VOID 0
#if XSH_HAS_PERL(5, 17, 0)
# define VMG_COMPAT_CODE_COPY_CLONE 1
mg->mg_obj, key);
break;
case HV_DELETE:
+ case (HV_DELETE|G_DISCARD):
if (w->cb_delete)
vmg_cb_call2(w->cb_delete, w->opinfo | VMG_CB_CALL_GUARD, sv,
mg->mg_obj, key);
};
my @calls = qw<eat shoot leave roam yawn roam>;
- my (@fetch, @store);
+ my (@fetch, @store, @delete);
if ("$]" >= 5.011_002 && "$]" < 5.021_004) {
@fetch = @calls;
@store = map { ($_) x 2 } @calls;
@fetch = @calls;
@store = @calls;
}
-
- is $@, "ok\n", 'stash: function calls compiled fine';
- is_deeply \%mg, {
+ my %expected = (
fetch => \@fetch,
store => \@store,
- }, 'stash: function calls';
+ );
+ if ("$]" >= 5.012 && "$]" < 5.021_004) {
+ $expected{delete} = [qw<roam yawn yawn roam>];
+ } elsif ("$]" >= 5.021_004) {
+ $expected{delete} = [qw<yawn roam>];
+ }
+
+ is $@, "ok\n", 'stash: function calls compiled fine';
+ is_deeply \%mg, \%expected, 'stash: function calls';
}
{
CB
} qw<fetch store exists delete>);
-my $uo_exp = "$]" >= 5.011_002 && "$]" < 5.021_004 ? 3 : 2;
+my $uo_exp =
+ "$]" < 5.011_002 ? 2 :
+ "$]" >= 5.012 && "$]" < 5.021_004 ? 5 :
+ 3;
$code .= ', data => sub { +{ guard => 0 } }';