|
@@ -606,7 +606,7 @@ namespace Jint.Tests.Runtime
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
[Fact]
|
|
- public void ShouldThrowRecursionDiscarded()
|
|
|
|
|
|
+ public void ShouldDiscardRecursion()
|
|
{
|
|
{
|
|
var script = @"var factorial = function(n) {
|
|
var script = @"var factorial = function(n) {
|
|
if (n>1) {
|
|
if (n>1) {
|
|
@@ -622,6 +622,25 @@ namespace Jint.Tests.Runtime
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ [Fact]
|
|
|
|
+ public void ShouldDiscardHiddenRecursion()
|
|
|
|
+ {
|
|
|
|
+ var script = @"var renamedFunc;
|
|
|
|
+ var exec = function(callback) {
|
|
|
|
+ renamedFunc = callback;
|
|
|
|
+ callback();
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ var result = exec(function() {
|
|
|
|
+ renamedFunc();
|
|
|
|
+ });
|
|
|
|
+ ";
|
|
|
|
+
|
|
|
|
+ Assert.Throws<RecursionDiscardedException>(
|
|
|
|
+ () => new Engine(cfg => cfg.DiscardRecursion()).Execute(script)
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+
|
|
[Fact]
|
|
[Fact]
|
|
public void ShouldConvertDoubleToStringWithoutLosingPrecision()
|
|
public void ShouldConvertDoubleToStringWithoutLosingPrecision()
|
|
{
|
|
{
|