Skip to content

Commit

Permalink
Introduce Engine.Evaluate
Browse files Browse the repository at this point in the history
  • Loading branch information
lahma committed May 18, 2021
1 parent 1d9df51 commit 1da9137
Show file tree
Hide file tree
Showing 21 changed files with 269 additions and 283 deletions.
2 changes: 1 addition & 1 deletion Jint.Benchmark/EngineConstructionBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public EngineConstructionBenchmark()
public double BuildEngine()
{
var engine = new Engine();
return engine.Execute(_program).GetCompletionValue().AsNumber();
return engine.Evaluate(_program).AsNumber();
}
}
}
6 changes: 3 additions & 3 deletions Jint.Repl/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ private static void Main(string[] args)
engine
.SetValue("print", new Action<object>(Console.WriteLine))
.SetValue("load", new Func<string, object>(
path => engine.Execute(File.ReadAllText(path)).GetCompletionValue())
path => engine.Evaluate(File.ReadAllText(path)))
);

var filename = args.Length > 0 ? args[0] : "";
Expand All @@ -31,7 +31,7 @@ private static void Main(string[] args)
}

var script = File.ReadAllText(filename);
var result = engine.GetValue(engine.Execute(script).GetCompletionValue());
engine.Evaluate(script);
return;
}

Expand Down Expand Up @@ -64,7 +64,7 @@ private static void Main(string[] args)

try
{
var result = engine.GetValue(engine.Execute(input, parserOptions).GetCompletionValue());
var result = engine.Evaluate(input, parserOptions);
if (!result.IsNull() && !result.IsUndefined())
{
var str = TypeConverter.ToString(engine.Json.Stringify(engine.Json, Arguments.From(result, Undefined.Instance, " ")));
Expand Down
4 changes: 1 addition & 3 deletions Jint.Tests.Test262/Test262Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,7 @@ protected void RunTestCode(string code, bool strict)
var parser = new JavaScriptParser(args.At(0).AsString(), options);
var script = parser.ParseScript(strict);
var value = engine.Execute(script).GetCompletionValue();
return value;
return engine.Evaluate(script);
}), true, true, true));
engine.SetValue("$262", o);

Expand Down
12 changes: 6 additions & 6 deletions Jint.Tests/Runtime/ArrayTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,31 +25,31 @@ private void RunTest(string source)
[Fact]
public void ArrayPrototypeToStringWithArray()
{
var result = _engine.Execute("Array.prototype.toString.call([1,2,3]);").GetCompletionValue().AsString();
var result = _engine.Evaluate("Array.prototype.toString.call([1,2,3]);").AsString();

Assert.Equal("1,2,3", result);
}

[Fact]
public void ArrayPrototypeToStringWithNumber()
{
var result = _engine.Execute("Array.prototype.toString.call(1);").GetCompletionValue().AsString();
var result = _engine.Evaluate("Array.prototype.toString.call(1);").AsString();

Assert.Equal("[object Number]", result);
}

[Fact]
public void ArrayPrototypeToStringWithObject()
{
var result = _engine.Execute("Array.prototype.toString.call({});").GetCompletionValue().AsString();
var result = _engine.Evaluate("Array.prototype.toString.call({});").AsString();

Assert.Equal("[object Object]", result);
}

[Fact]
public void EmptyStringKey()
{
var result = _engine.Execute("var x=[];x[\"\"]=8;x[\"\"];").GetCompletionValue().AsNumber();
var result = _engine.Evaluate("var x=[];x[\"\"]=8;x[\"\"];").AsNumber();

Assert.Equal(8, result);
}
Expand Down Expand Up @@ -126,8 +126,8 @@ class MyArr extends Array {
}";

_engine.Execute(script);
_engine.Execute("const a = new MyArr(1,2);");
Assert.True(_engine.Execute("a instanceof MyArr").GetCompletionValue().AsBoolean());
_engine.Evaluate("const a = new MyArr(1,2);");
Assert.True(_engine.Evaluate("a instanceof MyArr").AsBoolean());
}
}
}
14 changes: 7 additions & 7 deletions Jint.Tests/Runtime/DateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,49 +18,49 @@ public DateTests()
[Fact]
public void NaNToString()
{
var value = _engine.Execute("new Date(NaN).toString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void NaNToDateString()
{
var value = _engine.Execute("new Date(NaN).toDateString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toDateString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void NaNToTimeString()
{
var value = _engine.Execute("new Date(NaN).toTimeString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toTimeString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void NaNToLocaleString()
{
var value = _engine.Execute("new Date(NaN).toLocaleString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toLocaleString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void NaNToLocaleDateString()
{
var value = _engine.Execute("new Date(NaN).toLocaleDateString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toLocaleDateString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void NaNToLocaleTimeString()
{
var value = _engine.Execute("new Date(NaN).toLocaleTimeString();").GetCompletionValue().AsString();
var value = _engine.Evaluate("new Date(NaN).toLocaleTimeString();").AsString();
Assert.Equal("Invalid Date", value);
}

[Fact]
public void ToJsonFromNaNObject()
{
var result = _engine.Execute("JSON.stringify({ date: new Date(NaN) });").GetCompletionValue();
var result = _engine.Evaluate("JSON.stringify({ date: new Date(NaN) });");
Assert.Equal("{\"date\":null}", result.ToString());
}
}
Expand Down

0 comments on commit 1da9137

Please sign in to comment.