Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
JE::Code(3)	      User Contributed Perl Documentation	   JE::Code(3)

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

	 use JE;

	 $j = new JE;

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


       $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.

       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

	   $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.

       "add_line_number" can optionally	be exported.


perl v5.32.0			  2014-10-20			   JE::Code(3)


Want to link to this manual page? Use this URL:

home | help