clkao / je Goto Github PK
View Code? Open in Web Editor NEWmy fork of JE: http://search.cpan.org/dist/JE/
my fork of JE: http://search.cpan.org/dist/JE/
JE, version 0.053 JE is a pure-Perl ECMAScript (JavaScript) engine. Here are some of its advantages: - Easy to install (no C compiler necessary) - Compatible with Data::Dump::Streamer, so the runtime environment can be serialised - The parser can be extended/customised to support extra (or fewer) language features (not yet complete) - All JavaScript datatypes can be manipulated directly from Perl (they all have overloaded operators) Here are its main weakness: - It's slow (well, what did you expect?). - It uses lots of memory. - It leaks memory (to be fixed). 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.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’ 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. 0.051 ----- Bug fix: On DragonFly BSD, exp(Infinity) and exp(-Infinity) now cor- rectly return Infinity and 0, respectively, instead of NaN (I hope). TO DO - Make the parser extensible/customisable - Add more helpful error messages - Determine some logical way of dealing with locale settings (for String.prototype.localeCompare, et al.) - Finish writing tests - Deal with circular references - Finish making built-in JS properties load lazily - Finish optimising JS compiled code by turning it into Perl code - Other optimisations 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 [ kevin cameron com ] for his contributions, to Max Maischein [ webmaster corion net ] for letting me use his tests, to Andy Armstrong [ andy hexten net ], Yair Lenga [ yair lenga gmail com ], Alex Robinson [ alex solidgoldpig com ], Christian Forster [ boronk boronk de ], Imre Rad [ radimre freemail hu ] and Craig MacKenna [ craig animalhead com ] for their suggestions, and to the CPAN Testers for their helpful reports. COPYRIGHT AND LICENCE Copyright (C) 2007-10 Father Chrysostomos This program is free software; you may redistribute it and/or modify it under the same terms as perl.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.