package JSPL::TrapHandler;
use strict;
use warnings;

use JSPL;
JSPL::_boot_(__PACKAGE__);

sub JSPL::RawRT::set_interrupt_handler {
    my ($self, $callback, $data) = @_;
    $callback = scalar(caller)->can($callback) if $callback &&  !ref $callback;
    if($callback) {
	croak("Callback not a code ref!") unless ref $callback eq 'CODE';
        $self->add_interrupt_handler(JSPL::TrapHandler->new($callback, $data));
    } else {
        $self->remove_interrupt_handler();
    }
}

1;

__END__

=head1 NAME

JSPL::TrapHandler - Add support for Traps Handling to JSPL

=over 4

=item new ( $code, $data )

Construct a new closure with $code and $data

=back
