Provided by: libje-perl_0.066-1_all bug

NAME

       JE::Code - ECMAScript parser and code executor for JE

SYNOPSIS

         use JE;

         $j = new JE;

         $code = $j->compile('1+1'); # returns a JE::Code object

         $code->execute;

METHODS

       $code->execute($this, $scope, $code_type);
           The "execute" method of a parse tree executes it. All the arguments are optional.

           The first argument will be the 'this' value of the execution context. The global
           object will be used if it is omitted or undef.

           The second argument is the scope chain.  A scope chain containing just the global
           object will be used if it is omitted or undef.

           The third arg indicates the type of code. 0 or undef indicates global code.  1 means
           eval code (code called by JavaScript's "eval" function, which has nothing to do with
           JE's "eval" method, which runs global code).  Variables created with "var" and
           function declarations inside eval code can be deleted, whereas such variables in
           global or function code cannot. A value of 2 means function code, which requires an
           explicit "return" statement for a value to be returned.

           If an error occurs, "undef" will be returned and $@ will contain the error message. If
           no error occurs, $@ will be a null string.

       $code->set_global( $thing )
           You can transfer a JE::Code object to another JavaScript environment by setting the
           global object this way. You can also set it to "undef", if, for instance, you want to
           serialise the compiled code without serialising the entire JS environment. If you do
           that, you'll need to set the global object again before you can use the code object.

FUNCTIONS

       JE::Code::add_line_number($message, $code_object, $position)
           WARNING: The parameter list is still subject to change.

           This routine append a string such as 'at file, line 76.' to the error message passed
           to it, unless it ends with a line break already.

           $code_object is a code object as returned by JE's or JE::Parser's "parse" method. If
           it is omitted, the current value of $JE::Code::code will be used (this is set while JS
           code is running). If $JE::Code::code turns out to be undefined, then $message will be
           returned unchanged (this is subject to change; later I might make it use Carp to add a
           Perl file and line number).

           $position is the position within the source code, which will be used to determine the
           line number. If this is omitted, $JE::Code::pos will be used.

EXPORTS

       "add_line_number" can optionally be exported.

SEE ALSO

       JE