BEGIN {
my $tests = 11;
- $tests += 3 * (4 + (MGf_LOCAL ? 1 : 0) + (VMG_UVAR ? 4 : 0));
+ $tests += 4 * (4 + (MGf_LOCAL ? 1 : 0) + (VMG_UVAR ? 4 : 0));
plan tests => $tests;
}
$type{$_} = 'array' for qw<clear>;
$type{$_} = 'hash' for qw<fetch store exists delete>;
+sub void { }
+
my %trigger = (
get => 'my $y = $x',
set => '$x = 2',
clear => '@a = ()',
- free => '',
+ free => 'void()',
local => 'local $X = 2',
fetch => 'my $v = $h{a}',
store => '$h{a} = 2',
my $init = $init{$type{$meth}};
my $trigger = $trigger{$meth};
+ my $deinit = '';
if ($meth eq 'free') {
- $init = "{\n$init";
- $trigger = '}';
+ $init = "{\n$init";
+ $deinit = '}';
}
my $code = join ";\n", grep length, (
$init,
'is $destroyed, 0, "return from $meth, before trigger"',
- $trigger,
+ $trigger . ', is($destroyed, 0, "return from $meth, after trigger")',
+ $deinit,
'is $destroyed, 1, "return from $meth, after trigger"',
);