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 <tobyink@cpan.org>.

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.