<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>jint Wiki &amp; Documentation Rss Feed</title><link>http://jint.codeplex.com/Wiki/View.aspx?title=Home</link><description>jint Wiki Rss Description</description><item><title>New Comment on "Exposing Javascript functions to the CLR"</title><link>http://jint.codeplex.com/wikipage?title=Exposing Javascript functions to the CLR&amp;ANCHOR#C25858</link><description>&amp;#64;artyprog I think you are looking at this from the wrong view. All that code is meant to run AS Javascript. The &amp;#123;..&amp;#125; is interpreted by the Jint engine which converts it to &amp;#60;..&amp;#62;&amp;#10;I was also confused with it. The problem with the example is that it does not show the code assigned to a string and passed to the Jint engine.</description><author>CarbonMan</author><pubDate>Mon, 10 Dec 2012 10:47:20 GMT</pubDate><guid isPermaLink="false">New Comment on "Exposing Javascript functions to the CLR" 20121210104720A</guid></item><item><title>New Comment on "Exposing Javascript functions to the CLR"</title><link>http://jint.codeplex.com/wikipage?title=Exposing Javascript functions to the CLR&amp;ANCHOR#C22473</link><description>Idem&amp;#58;&amp;#10;list &amp;#61; list.ConvertAll&amp;#60;System.Double&amp;#62;&amp;#40; function &amp;#40;x&amp;#41; &amp;#123; return x &amp;#42; x&amp;#59; &amp;#125;&amp;#41;&amp;#59;</description><author>artyprog</author><pubDate>Mon, 06 Feb 2012 08:47:36 GMT</pubDate><guid isPermaLink="false">New Comment on "Exposing Javascript functions to the CLR" 20120206084736A</guid></item><item><title>New Comment on "Exposing Javascript functions to the CLR"</title><link>http://jint.codeplex.com/wikipage?title=Exposing Javascript functions to the CLR&amp;ANCHOR#C22472</link><description>A little typo &amp;#58;-&amp;#41;&amp;#10;var list &amp;#61; new System.Collections.Generic.List&amp;#60;System.Int32&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#10;Regards</description><author>artyprog</author><pubDate>Mon, 06 Feb 2012 08:46:37 GMT</pubDate><guid isPermaLink="false">New Comment on "Exposing Javascript functions to the CLR" 20120206084637A</guid></item><item><title>New Comment on "Passing external functions to scripts"</title><link>http://jint.codeplex.com/wikipage?title=Passing external functions to scripts&amp;ANCHOR#C20476</link><description>You have to call jintEngine.AddPermission&amp;#40;new System.Security.Permissions.UIPermission&amp;#40;System.Security.Permissions.UIPermissionWindow.SafeTopLevelWindows&amp;#41;&amp;#41;&amp;#59;&amp;#10;Or else simply call jintEngine.DisableSecurity&amp;#40;&amp;#41;&amp;#59;</description><author>zhihongwang</author><pubDate>Wed, 27 Jul 2011 19:48:18 GMT</pubDate><guid isPermaLink="false">New Comment on "Passing external functions to scripts" 20110727074818P</guid></item><item><title>Updated Wiki: Debugging</title><link>http://jint.codeplex.com/wikipage?title=Debugging&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Debugging&lt;/h2&gt;
&lt;h3&gt;Defining debug mode &lt;/h3&gt;By default, scripts are executed in Release mode and are not impacted by any debugging overhead. To enable debugging in Jint, the &lt;b&gt;DebugMode&lt;/b&gt; property must be set to &lt;b&gt;true&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
JintEngine engine = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine();
engine.SetDebugMode(&lt;span style="color:Blue;"&gt;true&lt;/span&gt;);
&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;Debug information&lt;/h4&gt;Every debugging feature gives access to some information represented by the class &lt;b&gt;Jint.Debugger.DebugInformation&lt;/b&gt;. This class gives access to:
&lt;ul&gt;&lt;li&gt;The executed statement&lt;/li&gt;
&lt;li&gt;The call stack&lt;/li&gt;
&lt;li&gt;The local variables&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Executing step by step&lt;/h3&gt;The debugger enables to execute the scripts step by step. It exposes an event named &lt;b&gt;Step&lt;/b&gt; which is called when any statement is executed. It returns the engine as the sender argument, and a &lt;b&gt;DebugInformation&lt;/b&gt; instance. The example below demonstrates how to trace all the executed statements to the console.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
JintEngine jint = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine();
jint.SetDebugMode(&lt;span style="color:Blue;"&gt;true&lt;/span&gt;);

jint.Step += (sender, info) =&amp;gt;
{
   Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;{0}: Line {1}, Char {2}&amp;quot;&lt;/span&gt;, info.CurrentStatement.ToString(), info.Location.Start.Line, info.Location.Start.Char);
};
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Evaluating local variables&lt;/h2&gt;In the debug information, the local variables are accessible through a dictionary indexed by their names.&lt;br /&gt;
&lt;h2&gt;Setting breakpoints&lt;/h2&gt;Breakpoints are added to the &lt;b&gt;BreakPoints&lt;/b&gt; collection of the engine. The class &lt;b&gt;Jint.Debugger.BreakPoint&lt;/b&gt; is used to represent a located point in a script string, and optionally define a condition to break the execution.&lt;br /&gt;&lt;br /&gt;The example below demonstrates how to stop on a statement inside a function, only if a parameter as a specific value.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
JintEngine jint = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine();
jint.SetDebugMode(&lt;span style="color:Blue;"&gt;true&lt;/span&gt;);
jint.BreakPoints.Add(&lt;span style="color:Blue;"&gt;new&lt;/span&gt; BreakPoint(4, 22, &lt;span style="color:#A31515;"&gt;&amp;quot;x == 2;&amp;quot;&lt;/span&gt;)); &lt;span style="color:Green;"&gt;// Line 4, Char 22 =&amp;gt; return x*x; only if x == 2&lt;/span&gt;

jint.Break += (sender, info) =&amp;gt;
{
    Console.WriteLine(info.Locals[&lt;span style="color:#A31515;"&gt;&amp;quot;x&amp;quot;&lt;/span&gt;].Value); &lt;span style="color:Green;"&gt;// Displays 2&lt;/span&gt;
};

jint.Run(&lt;span style="color:#A31515;"&gt;@&amp;quot;
    var i = 3; 
    function square(x) { 
        return x*x; // breakpoint here
    }
    
    square(1);
    square(2); // will break only on this line
    square(3);
&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Extensibility&lt;/h2&gt;This allows any standard application to handle simple debugging, but also to create a very simple graphical editor which would display a script, break points, and steps while executing. This application would just need to register to the Step event to get every step executed and display it to the editor, as the locals, watch list and call stack.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sebastienros</author><pubDate>Tue, 19 Jul 2011 00:50:50 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Debugging 20110719125050A</guid></item><item><title>New Comment on "Quick Start"</title><link>http://jint.codeplex.com/wikipage?title=Quick Start&amp;ANCHOR#C20082</link><description>The example code on this page contains a lot of small errors - like missing closing brackets all over the place.</description><author>tormaroe</author><pubDate>Thu, 23 Jun 2011 10:05:45 GMT</pubDate><guid isPermaLink="false">New Comment on "Quick Start" 20110623100545A</guid></item><item><title>Updated Wiki: Home</title><link>http://jint.codeplex.com/wikipage?version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Project Description&lt;/h2&gt;Jint is a script engine based on the Javascript language. Using Jint, developers can provide fully scriptable applications, execute .NET code without compiling, or create external configuration logic, using the most used script language.&lt;br /&gt;Jint aims at providing &lt;b&gt;every JavaScript functionalities to .NET applications&lt;/b&gt;, and bindings to .NET languages can be done in both sides. Jint scripts can use any .NET object from your application, and use every part of the .NET base class library.
&lt;h3&gt;Differences with other script engines&lt;/h3&gt;Jint is different as it doesn&amp;#39;t use &lt;b&gt;CodeDomProvider&lt;/b&gt; technique which is using compilation under the hood and thus leads to memory leaks as the compiled assemblies can&amp;#39;t be unloaded. Moreover, using this technique prevents using dynamically types variables the way JavaScript does, allowing more flexibility in your scripts. On the opposite, Jint embeds it&amp;#39;s own parsing logic, and &lt;b&gt;really interprets the scripts&lt;/b&gt;. Jint uses the famous ANTLR (&lt;a href="http://www.antlr.org" class="externalLink"&gt;http://www.antlr.org&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;) library for this purpose.&lt;br /&gt;As it uses Javascript as its language you don&amp;#39;t have to learn a new language, it has proven to be very powerful for scripting purposes, and you can use several text editors for syntax checking.&lt;br /&gt;
&lt;h2&gt;Usage scenarios&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Create applications users can automate by providing a programmable interface. A good example is what VBA is for Microsoft Office applications&lt;/li&gt;
&lt;li&gt;Enhance configurability to change your application&amp;#39;s behavior and logic without compiling or deploying binaries&lt;/li&gt;
&lt;li&gt;Evaluate dynamic code or expressions&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Sample usage&lt;/h2&gt;Here is a sample in C#, but any .NET language can use Jint. Jint is able to handle all advanced JavaScript techniques decribed on this MSDN article: &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163419.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/magazine/cc163419.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. It currently implements all concepts defined in ECMAScript version 3.0.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
script= &lt;span style="color:#A31515;"&gt;@&amp;quot;
  function square(x) { 
    return x * x; 
  };
  
  return square(number);
  &amp;quot;&lt;/span&gt;;
  
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine()
  .SetParameter(&lt;span style="color:#A31515;"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;, 3)
  .Run(script));

Assert.AreEqual(9, result);
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can also check the actual implemented &lt;a href="http://jint.codeplex.com/wikipage?title=test%20suite&amp;referringTitle=Home"&gt;test suite&lt;/a&gt; for more samples.&lt;br /&gt;
&lt;h2&gt;Implemented artifacts&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Standard Javascript elements: 
&lt;ul&gt;&lt;li&gt;Objects and methods&lt;/li&gt;
&lt;li&gt;Loops (do, while, for)&lt;/li&gt;
&lt;li&gt;Code blocks and scopes&lt;/li&gt;
&lt;li&gt;Conditional statements (if, switch/case)&lt;/li&gt;
&lt;li&gt;Json&lt;/li&gt;
&lt;li&gt;Property indexers&lt;/li&gt;
&lt;li&gt;Dynamic properties&lt;/li&gt;
&lt;li&gt;Javascript native classes (Math, String, Object, Number)&lt;/li&gt;
&lt;li&gt;Regular expressions&lt;/li&gt;
&lt;li&gt;Functions (declarations plus anonymous functions)&lt;/li&gt;
&lt;li&gt;Prototypes and constructors&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;.NET bindings
&lt;ul&gt;&lt;li&gt;External objects and values&lt;/li&gt;
&lt;li&gt;External functions to enhance the script resources&lt;/li&gt;
&lt;li&gt;Return value to .NET code &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Out of the box Jint Shell application
&lt;ul&gt;&lt;li&gt;Use Jint on the command line&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Deployment&lt;/h2&gt;Jint is deployed as a part of your application and fits inside a single assembly. Nothing as to be installed on the client machine.&lt;br /&gt;
&lt;h2&gt;Roadmap&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;0.8 - All javascript languages artifacts as of ECMAScript 3.0&lt;/li&gt;
&lt;li&gt;0.9 - Beta phase - All javascript core methods are implemented (Math, slice, ...)&lt;/li&gt;
&lt;li&gt;1.0 - Positive feedback from Beta&lt;/li&gt;
&lt;li&gt;1.1 - ECMAScript 5.0 elements &lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sebastienros</author><pubDate>Fri, 10 Jun 2011 18:40:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110610064038P</guid></item><item><title>New Comment on "Documentation"</title><link>http://jint.codeplex.com/documentation?&amp;ANCHOR#C19916</link><description>Hi anybody i having some strange trouble situation. I don&amp;#39;t know where is problem can be.&amp;#10;The objective is to store some objects in Array variable. Objects is type of my own class described in JavaScript.&amp;#10;&amp;#10;&amp;#47;&amp;#47; Array defenition&amp;#58;&amp;#10;var Users &amp;#61; &amp;#91;&amp;#93;&amp;#59;&amp;#10;&amp;#10;&amp;#47;&amp;#47; Class defenition&amp;#58;&amp;#10;var DOUser &amp;#61; function&amp;#40;userSet, id&amp;#41;&amp;#10;&amp;#123;    &amp;#10;    &amp;#47;&amp;#47; &amp;#40;Constructor code&amp;#41;&amp;#10;    &amp;#10;&amp;#10;    var MemberCode &amp;#61; -1&amp;#59;&amp;#10;    &amp;#10;    var XCode &amp;#61; -1&amp;#59;&amp;#10;    &amp;#10;    var Nickname &amp;#61; &amp;#34;&amp;#63;&amp;#63;&amp;#63;&amp;#34;&amp;#59;&amp;#10;    var ID &amp;#61; -1&amp;#59;&amp;#10;    var UIN &amp;#61; -1&amp;#59;&amp;#10;    &amp;#10;    var Sent &amp;#61; -1&amp;#59;&amp;#10;    var Money &amp;#61; -1&amp;#59;&amp;#10;    var Respect &amp;#61; -1&amp;#59;&amp;#10;&amp;#125;&amp;#10;&amp;#10;&amp;#47;&amp;#47; So, i trying to store few objects of type DOUser in my array Users. I using Array.push&amp;#40;&amp;#60;object&amp;#62;&amp;#41; to add objects to array&amp;#58;&amp;#10;var user &amp;#61; &amp;#47;&amp;#47; DOUser instance creation ....&amp;#10;Users.push&amp;#40;user&amp;#41;&amp;#59;&amp;#10;&amp;#10;Well, anything is fine. BUT&amp;#33; Object is not exists in array after that. I don&amp;#39;t know what to do IT IS A VERY BIG PROBLEM&amp;#33;&amp;#33;&amp;#33;&amp;#10;&amp;#40;I mean, 4 objects of class DOUser were added to array Users, but after that Users is empty &amp;#40;size is 4, but all items &amp;#61;&amp;#61; undefined&amp;#47;null&amp;#41;,&amp;#10;&amp;#10;PLEASE, HELP ME, DEVELOPER&amp;#33; I think this is some bug&amp;#33;&amp;#10;P.S i use v0.8 binaries. I don&amp;#39;t want to update.</description><author>agehack</author><pubDate>Wed, 08 Jun 2011 21:42:28 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20110608094228P</guid></item><item><title>Updated Wiki: Returning values</title><link>http://jint.codeplex.com/wikipage?title=Returning values&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Returning values&lt;/h2&gt;Scripts can return values to the host application. The &lt;b&gt;return&lt;/b&gt; keywords is used for this purpose.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
JintEngine engine = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine();
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = engine.Run(&lt;span style="color:#A31515;"&gt;&amp;quot;return 0;&amp;quot;&lt;/span&gt;);
Console.WriteLine(result); &lt;span style="color:Green;"&gt;// Displays 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Also, if a statement is evaluated, the return value will be the value of this statement:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
Console.WriteLine(engine.Run(&lt;span style="color:#A31515;"&gt;&amp;quot;var a = true;&amp;quot;&lt;/span&gt;)); &lt;span style="color:Green;"&gt;// Displays true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sebastienros</author><pubDate>Tue, 10 May 2011 22:06:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Returning values 20110510100601P</guid></item><item><title>New Comment on "Quick Start"</title><link>http://jint.codeplex.com/wikipage?title=Quick Start&amp;ANCHOR#C19284</link><description>Ahh... looks like I just needed to make my class public so JInt could see it&amp;#33;  Oops.</description><author>brainslugs83</author><pubDate>Fri, 15 Apr 2011 07:16:33 GMT</pubDate><guid isPermaLink="false">New Comment on "Quick Start" 20110415071633A</guid></item><item><title>New Comment on "Quick Start"</title><link>http://jint.codeplex.com/wikipage?title=Quick Start&amp;ANCHOR#C19283</link><description>I&amp;#39;m having a hard time exposing custom .NET objects to JInt scripts using engine.SetParameter... maybe there is another way.  Time to hit the manual.</description><author>brainslugs83</author><pubDate>Fri, 15 Apr 2011 07:10:40 GMT</pubDate><guid isPermaLink="false">New Comment on "Quick Start" 20110415071040A</guid></item><item><title>New Comment on "Passing external functions to scripts"</title><link>http://jint.codeplex.com/wikipage?title=Passing external functions to scripts&amp;ANCHOR#C18205</link><description>When I run the MessageBox example below I get security exception&amp;#59; Does any one know why&amp;#63; Is it because Jint does not know how to handle the DialogResult return type&amp;#63;&amp;#10;&amp;#10;            engine.SetFunction&amp;#40;&amp;#34;alert&amp;#34;, new Jint.Delegates.Func&amp;#60;string, DialogResult&amp;#62;&amp;#40;MessageBox.Show&amp;#41;&amp;#41;&amp;#59;&amp;#10;            engine.Run&amp;#40;&amp;#64;&amp;#34;&amp;#10;          function square&amp;#40;x&amp;#41; &amp;#123; &amp;#10;            alert&amp;#40;&amp;#39;Hi Mike&amp;#39;&amp;#41;&amp;#59;&amp;#10;            return x &amp;#42; x&amp;#59;&amp;#10;          &amp;#125;&amp;#34;&amp;#41;&amp;#59;&amp;#10;        engine.Run&amp;#40;&amp;#34;square&amp;#40;5&amp;#41;&amp;#59;&amp;#34;&amp;#41;&amp;#59;</description><author>jstrider39</author><pubDate>Tue, 11 Jan 2011 04:53:40 GMT</pubDate><guid isPermaLink="false">New Comment on "Passing external functions to scripts" 20110111045340A</guid></item><item><title>New Comment on "Overview"</title><link>http://jint.codeplex.com/wikipage?title=Overview&amp;ANCHOR#C18101</link><description>So what are the straightforward &amp;#40;simplified&amp;#41; benefits for one utilizing JavaScript already&amp;#63;&amp;#10;Lauren</description><author>InfertilityTreat</author><pubDate>Sun, 02 Jan 2011 06:07:01 GMT</pubDate><guid isPermaLink="false">New Comment on "Overview" 20110102060701A</guid></item><item><title>New Comment on "Overview"</title><link>http://jint.codeplex.com/wikipage?title=Overview&amp;ANCHOR#C18100</link><description>So what are the straightforward &amp;#40;simplified&amp;#41; benefits for one utilizing JavaScript already&amp;#63;&amp;#10;Lauren - &amp;#60;a  href&amp;#61;&amp;#34;http&amp;#58;&amp;#47;&amp;#47;infertilitytreatments4women.com&amp;#47;&amp;#34;&amp;#62;Infertility Treatments 4 Women&amp;#60;&amp;#47;a&amp;#62;</description><author>InfertilityTreat</author><pubDate>Sun, 02 Jan 2011 06:06:20 GMT</pubDate><guid isPermaLink="false">New Comment on "Overview" 20110102060620A</guid></item><item><title>New Comment on "Using .NET classes from scripts"</title><link>http://jint.codeplex.com/wikipage?title=Using .NET classes from scripts&amp;ANCHOR#C18095</link><description>In .NET 4.0 the security model has changed, most .NET classes that will be added to Jint using the SetParameter&amp;#40;&amp;#41; function should be tagged with the SecurityTransparent&amp;#40;&amp;#41; attribute to avoid causing an elevation of privileges &amp;#40;unless your class needs a specific permission, such as writing to the file system&amp;#41;. See the following example&amp;#58;&amp;#10;&amp;#10;&amp;#47;&amp;#47; The assembly will be similar to the following&amp;#58;&amp;#10;&amp;#10;using System.Security&amp;#59;&amp;#10;&amp;#10;&amp;#91;assembly&amp;#58; SecurityTransparent&amp;#40;&amp;#41;&amp;#93;&amp;#10;namespace Sample &amp;#123;&amp;#10;  public class SampleClass &amp;#123;&amp;#10;    public void DoSomething&amp;#40;&amp;#41; &amp;#123;&amp;#10;      &amp;#47;&amp;#47; Do something interesting.&amp;#10;    &amp;#125;&amp;#10;  &amp;#125;&amp;#10;&amp;#125;&amp;#10;&amp;#10;&amp;#47;&amp;#47; The application will contain code similar to the following&amp;#58;&amp;#10;&amp;#10;SampleClass sample &amp;#61; new SampleClass&amp;#40;&amp;#41;&amp;#59;&amp;#10;jint.SetParameter&amp;#40;&amp;#34;sample&amp;#34;, sample&amp;#41;&amp;#59;</description><author>Verious</author><pubDate>Fri, 31 Dec 2010 17:05:01 GMT</pubDate><guid isPermaLink="false">New Comment on "Using .NET classes from scripts" 20101231050501P</guid></item><item><title>New Comment on "Quick Start"</title><link>http://jint.codeplex.com/wikipage?title=Quick Start&amp;ANCHOR#C18067</link><description>Interesting to know that the Javascript is getting integrated as dll....cool&amp;#33;&amp;#33;&amp;#33; but, &amp;#10;Tested &amp;#40;VS 2005 console app&amp;#41; with each sample mentioned in this page all works fine. except the last one which is not compiling at line below.&amp;#10;&amp;#10;engine.SetFunction&amp;#40;&amp;#34;square&amp;#34;, new Func&amp;#60;double, double&amp;#62;&amp;#40;a &amp;#61;&amp;#62; &amp;#123; return a &amp;#42; a&amp;#59; &amp;#125;&amp;#41;&amp;#41;&amp;#10;&amp;#10;Hope a negative approach on comment is not abuse. I was just highlighting and playin around.</description><author>samshulie</author><pubDate>Tue, 28 Dec 2010 19:53:24 GMT</pubDate><guid isPermaLink="false">New Comment on "Quick Start" 20101228075324P</guid></item><item><title>New Comment on "Returning values"</title><link>http://jint.codeplex.com/wikipage?title=Returning values&amp;ANCHOR#C17347</link><description>Technically it is not be an error, but very bad style, and a lot of fun when you minify scripts that contain missing semicolons.</description><author>mwawrusch</author><pubDate>Sun, 17 Oct 2010 13:57:31 GMT</pubDate><guid isPermaLink="false">New Comment on "Returning values" 20101017015731P</guid></item><item><title>Updated Wiki: Home</title><link>http://jint.codeplex.com/wikipage?version=17</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Project Description&lt;/h2&gt;Jint is a script engine based on the Javascript language. Using Jint, developers can provide fully scriptable applications, execute .NET code without compiling, or create external configuration logic, using the most used script language.&lt;br /&gt;Jint aims at providing &lt;b&gt;every JavaScript functionalities to .NET applications&lt;/b&gt;, and bindings to .NET languages can be done in both sides. Jint scripts can use any .NET object from your application, and use every part of the .NET base class library.
&lt;h3&gt;Differences with other script engines&lt;/h3&gt;Jint is different as it doesn&amp;#39;t use &lt;b&gt;CodeDomProvider&lt;/b&gt; technique which is using compilation under the hood and thus leads to memory leaks as the compiled assemblies can&amp;#39;t be unloaded. Moreover, using this technique prevents using dynamically types variables the way JavaScript does, allowing more flexibility in your scripts. On the opposite, Jint embeds it&amp;#39;s own parsing logic, and &lt;b&gt;really interprets the scripts&lt;/b&gt;. Jint uses the famous ANTLR (&lt;a href="http://www.antlr.org" class="externalLink"&gt;http://www.antlr.org&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;) library for this purpose.&lt;br /&gt;As it uses Javascript as its language you don&amp;#39;t have to learn a new language, it has proven to be very powerful for scripting purposes, and you can use several text editors for syntax checking.&lt;br /&gt;
&lt;h2&gt;Usage scenarios&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Create applications users can automate by providing a programmable interface. A good example is what VBA is for Microsoft Office applications&lt;/li&gt;
&lt;li&gt;Enhance configurability to change your application&amp;#39;s behavior and logic without compiling or deploying binaries&lt;/li&gt;
&lt;li&gt;Evaluate dynamic code or expressions&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Sample usage&lt;/h2&gt;Here is a sample in C#, but any .NET language can use Jint. Jint is able to handle all advanced JavaScript techniques decribed on this MSDN article: &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163419.aspx" class="externalLink"&gt;http://msdn.microsoft.com/en-us/magazine/cc163419.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. It currently implements all concepts defined in ECMAScript version 3.0.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
script= &lt;span style="color:#A31515;"&gt;@&amp;quot;
  function square(x) { 
    return x * x; 
  };
  
  return square(number);
  &amp;quot;&lt;/span&gt;;
  
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; JintEngine()
  .SetParameter(&lt;span style="color:#A31515;"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;, 3)
  .Run(script));

Assert.AreEqual(9, result);
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can also check the actual implemented &lt;a href="http://jint.codeplex.com/wikipage?title=test%20suite&amp;referringTitle=Home"&gt;test suite&lt;/a&gt; for more samples.&lt;br /&gt;
&lt;h2&gt;Implemented artifacts&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Standard Javascript elements: 
&lt;ul&gt;&lt;li&gt;Objects and methods&lt;/li&gt;
&lt;li&gt;Loops (do, while, for)&lt;/li&gt;
&lt;li&gt;Code blocks and scopes&lt;/li&gt;
&lt;li&gt;Conditional statements (if, switch/case)&lt;/li&gt;
&lt;li&gt;Json&lt;/li&gt;
&lt;li&gt;Property indexers&lt;/li&gt;
&lt;li&gt;Dynamic properties&lt;/li&gt;
&lt;li&gt;Javascript native classes (Math, String, Object, Number)&lt;/li&gt;
&lt;li&gt;Regular expressions&lt;/li&gt;
&lt;li&gt;Functions (declarations plus anonymous functions)&lt;/li&gt;
&lt;li&gt;Prototypes and constructors&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;.NET bindings
&lt;ul&gt;&lt;li&gt;External objects and values&lt;/li&gt;
&lt;li&gt;External functions to enhance the script resources&lt;/li&gt;
&lt;li&gt;Return value to .NET code &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Out of the box Jint Shell application
&lt;ul&gt;&lt;li&gt;Use Jint on the command line&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Deployment&lt;/h2&gt;Jint is deployed as a part of your application and fits inside a single assembly. Nothing as to be installed on the client machine.&lt;br /&gt;
&lt;h2&gt;Roadmap&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;0.8 - All javascript languages artifacts as of ECMAScript 3.0&lt;/li&gt;
&lt;li&gt;0.9 - Beta phase - All javascript core methods are implemented (Math, slice, ...)&lt;/li&gt;
&lt;li&gt;1.0 - Positive feedback from Beta&lt;/li&gt;
&lt;li&gt;1.1 - ECMAScript 5.0 elements &lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;People behind Jint&lt;/h2&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=jint&amp;DownloadId=84606" alt="evaluant.gif" title="evaluant.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Jint is a project managed by the people of &lt;a href="http://www.evaluant.com" class="externalLink"&gt;Evaluant&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is a part of its &lt;a href="http://www.codeplex.com/Project/ProjectDirectory.aspx?TagName=Evaluant" class="externalLink"&gt;R&amp;amp;D developments&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sebastienros</author><pubDate>Fri, 27 Aug 2010 18:16:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100827061626P</guid></item><item><title>New Comment on "Returning values"</title><link>http://jint.codeplex.com/wikipage?title=Returning values&amp;ANCHOR#C16427</link><description>Actually, the semicolon is optional...</description><author>janus03</author><pubDate>Thu, 22 Jul 2010 06:41:11 GMT</pubDate><guid isPermaLink="false">New Comment on "Returning values" 20100722064111A</guid></item><item><title>New Comment on "Exposing Javascript functions to the CLR"</title><link>http://jint.codeplex.com/wikipage?title=Exposing Javascript functions to the CLR&amp;ANCHOR#C15381</link><description>I&amp;#39;m really trying to find the way to use this method.&amp;#10;But... i can&amp;#39;t use them. Can you help me&amp;#63;</description><author>tom_peres</author><pubDate>Tue, 06 Apr 2010 15:49:39 GMT</pubDate><guid isPermaLink="false">New Comment on "Exposing Javascript functions to the CLR" 20100406034939P</guid></item></channel></rss>