|
{
sub foo { 63 }
sub bar { 444 }
sub baz { (5,9,6,3) }
my $code = sub {
my $x = foo() + 5900;
my $y = bar() + 888;
my @a = baz();
};
my $cv = B::svref_2object( $code );
my @entersub = op_grep { $_ ->name eq 'entersub' } $cv ->ROOT;
is 0+ @entersub , 3;
my @buf ;
for my $op ( @entersub ) {
tap( $op , $cv ->ROOT, \ @buf );
}
$code ->();
is_deeply(
\ @buf ,
[
[G_SCALAR, 63],
[G_SCALAR, 444],
[G_ARRAY, [5,9,6,3]],
]
);
if (1) {
my $walker = B::Concise::compile( '' , '' , $code );
B::Concise::walk_output(\ my $buf );
$walker ->();
::diag( $buf );
}
}
done_testing;
|