JE, version 0.54

JE is a pure-Perl ECMAScript (JavaScript) engine. Here are some of its advantages:

Here are its main weakness:

This is still an alpha release, but it fully implements ECMAScript v3, except for a few seldom-used features like -0.

If you have the time and the interest, please experiment with this module (or maybe even lend a hand :-). If you have any ideas as to how the API could be improved or reworked, please e-mail me.

RECENT CHANGES

0.054

JE::Object::Errors thrown from within store handlers now propagate instead of turning into â€~Cannot assign to a non-lvalueâ€TM messages. (Thanks to Chia-liang Kao for fixing this!)

0.053

• The regular expression module was relying on a bug in perl that is fixed in 5.13.8.
• The match and search methods of strings now work if no regular expressions have been used yet. (A â€~requireâ€TM was missing.)

0.052

Bug fix: The return value of JE::LValue->can can now be used and will delegate properly to the referent.
Test fix: t/parse08-regexps.t has been fixed to work with the new (?^u:...) stringification of internally-UTF8 regular expressions in perl 5.13.8.

TO DO

INSTALLATION

The easiest way to install this module is to use the CPAN module or the cpan script:

[sudo] perl -MCPAN -e "install JE"

[sudo] cpan
cpan> install JE

Or you can use the following:

perl Makefile.PL
make
make test
[sudo] make install

PREREQUISITES

This module requires perl 5.8.3 or higher and the following modules: • Scalar::Util version 1.14 or later
• The TimeDate distribution (more precisely, Time::Zone, Date::Format and Date::Parse)
• Encode 2.08 or later

For perl versions earlier than 5.9.4 it also requires Tie::RefHash::Weak.

Later it will probably require Unicode::Collate.

There is a slight incompatibility with perl version 5.8.3. If you try to create a regular expression with invalid modifiers, you will get a warning as well as a SyntaxError. This causes one of the test scripts (parse08-regexps.t) to fail.

DOCUMENTATION

After installing, you can find documentation for this module with the perldoc command.

perldoc JE

Or try using man (it's faster, in my experience):

man JE

ACKNOWLEDGEMENTS

Thanks to Kevin Cameron and Chia-liang Kao for their contributions,

to Max Maischein for letting me use his tests,

to Andy Armstrong, Yair Lenga, Alex Robinson, Christian Forster, Imre Rad and Craig MacKenna for their suggestions,

and to the CPAN Testers for their helpful reports.

COPYRIGHT AND LICENCE

Copyright (C) 2007-11 Father Chrysostomos

This program is free software; you may redistribute it and/or modify it under the same terms as perl.