paulbartrum / jurassic

A .NET library to parse and execute JavaScript code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ScriptEngine.ExecuteFile hangs permanently instead of throwing JavaScriptException

Metalnem opened this issue · comments

ScriptEngine.ExecuteFile sometimes hangs permanently instead of throwing JavaScriptException when encountering syntactically invalid JavaScript code. Here is the full program that reproduces such behavior:

namespace Jurassic.Run
{
  public class Program
  {
    public static void Main(string[] args)
    {
      new ScriptEngine().Execute("for(a=0;a<2;a++[1])1");
    }
  }
}

Chrome and Safari display the following error when running this JavaScript snippet:

SyntaxError: Unexpected token '['.

Found via SharpFuzz.

The issue here is not that the loop hangs, it's that a++[1] doesn't produce a syntax error (it should).

A good catch, thanks!