Explorar o código

Return old recursion limit capabilities (#1695)

Marko Lahma hai 1 ano
pai
achega
4272c3bcb0

+ 1 - 1
Jint.Tests/Runtime/EngineLimitTests.cs

@@ -9,7 +9,7 @@ public class EngineLimitTests
 {
 
 #if RELEASE
-    const int FunctionNestingCount = 840;
+    const int FunctionNestingCount = 1010;
 #else
     const int FunctionNestingCount = 510;
 #endif

+ 1 - 1
Jint/Runtime/Interpreter/Expressions/JintExpression.cs

@@ -34,7 +34,7 @@ namespace Jint.Runtime.Interpreter.Expressions
             return context.Engine.GetValue(reference, true);
         }
 
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        [MethodImpl(MethodImplOptions.AggressiveInlining | (MethodImplOptions) 512)]
         public object Evaluate(EvaluationContext context)
         {
             var oldSyntaxElement = context.LastSyntaxElement;

+ 1 - 1
Jint/Runtime/Interpreter/JintFunctionDefinition.cs

@@ -33,7 +33,7 @@ internal sealed class JintFunctionDefinition
     /// <summary>
     /// https://tc39.es/ecma262/#sec-ordinarycallevaluatebody
     /// </summary>
-    [MethodImpl(MethodImplOptions.AggressiveInlining)]
+    [MethodImpl(MethodImplOptions.AggressiveInlining | (MethodImplOptions) 512)]
     internal Completion EvaluateBody(EvaluationContext context, FunctionInstance functionObject, JsValue[] argumentsList)
     {
         Completion result;

+ 3 - 0
Jint/Runtime/Interpreter/JintStatementList.cs

@@ -1,3 +1,4 @@
+using System.Runtime.CompilerServices;
 using Esprima.Ast;
 using Jint.Native;
 using Jint.Native.Error;
@@ -63,6 +64,8 @@ namespace Jint.Runtime.Interpreter
             _jintStatements = jintStatements;
         }
 
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining | (MethodImplOptions) 512)]
         public Completion Execute(EvaluationContext context)
         {
             if (!_initialized)

+ 1 - 1
Jint/Runtime/Interpreter/Statements/JintStatement.cs

@@ -26,7 +26,7 @@ namespace Jint.Runtime.Interpreter.Statements
             _statement = statement;
         }
 
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        [MethodImpl(MethodImplOptions.AggressiveInlining | (MethodImplOptions) 512)]
         public Completion Execute(EvaluationContext context)
         {
             if (_statement.Type != Nodes.BlockStatement)