Giter Site home page Giter Site logo

je's Introduction

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.

je's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.