NAME
   JavaScript::Any - evaluate some javascript using the best available
   Javascript implementation

SYNOPSIS
     use JavaScript::Any qw( jseval );

     my $sum = jseval('1 + 2');   # 3

   Or:

     use JavaScript::Any;

     my $context = JavaScript::Any->new_context;
     $context->define( say => sub { print @_, "\n" } );
     $context->eval('say(1 + 2)');

DESCRIPTION
   This module is a thin wrapper around JavaScript::V8, JavaScript::Duktape,
   and JE, allowing you to evaluate strings of Javascript code from Perl.

 Status
   This is a very early alpha version. The API still needs documenting and
   cleaning up a lot.

   In particular, the API for defining custom Javascript functions exposes
   differences between the alternative Javascript implementations. Future
   versions of JavaScript::Any will smooth some of these out.

 Functional Interface
   This module can export one function. It is not exported by default.

   `jseval($str)`
       Evaluates the string of Javascript in a fresh context and returns the
       result.

 Object-Oriented Interface
   For more advanced features, use the object-oriented interface.

   `JavaScript::Any->new_context(%opts)`
       Factory method returning an object which implements the
       JavaScript::Any::Context API.

BUGS
   Please report any bugs to
   <http://rt.cpan.org/Dist/Display.html?Queue=JavaScript-Any>.

SEE ALSO
   JavaScript::Any::Context.

   JavaScript::V8, JavaScript::Duktape, JE.

AUTHOR
   Toby Inkster <[email protected]>.

COPYRIGHT AND LICENCE
   This software is copyright (c) 2017 by Toby Inkster.

   This is free software; you can redistribute it and/or modify it under the
   same terms as the Perl 5 programming language system itself.

DISCLAIMER OF WARRANTIES
   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
   WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
   MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.