NAME
JavaScript::Any::Context - an environment where custom functions can be defined and Javascript evaluated
SYNOPSIS
use JavaScript::Any;
my $context = JavaScript::Any->new_context;
$context->define( say => sub { print @_, "\n" } );
$context->eval('say(1 + 2)');
DESCRIPTION
This is a Role::Tiny role defining the API for objects returned by JavaScript::Any->new_context
.
Methods
$object->implementation
-
Returns the implementation class name as a string.
$object->define($str, $coderef)
-
Defines a custom Perl function which can be called by Javascript code.
The current implementation only allows the name of the function to consist of word characters. Defining a function called, for example,
window.alert
, would not be allowed because of the dot.Roughly speaking, when the function is called by Javascript, whatever arguments are passed to it are available in
@_
to your Perl code, and whatever value your coderef returns is returned as the Javascript function's return value. The exact details are currently specific to the backend implementation. $object->define($str, $value)
-
Where
$value
is a non-reference value, defines a simple string or numeric variable. JavaScript is somewhat more typed than Perl, so be aware that currently whether$value
is considered to be a string or a number by Javascript is currently undetermined behaviour. $object->eval($str)
-
Evaluates a string of Javascript code and returns the result.
BUGS
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=JavaScript-Any.
SEE ALSO
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.