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.