JintFunctionDefinitionTest.cs 838 B

12345678910111213141516171819202122
  1. using Jint.Runtime.Interpreter;
  2. namespace Jint.Tests.Runtime.Interpreter;
  3. public class JintFunctionDefinitionTest
  4. {
  5. [Theory]
  6. [InlineData("function f(_ = probeParams = function() { return 42; }) { }", true)]
  7. [InlineData("function* g(_ = probeParams = function() { return 42; }) { }", true)]
  8. [InlineData("function x(t = {}) {}", false)]
  9. [InlineData("function x(e, t = {}) {}", false)]
  10. [InlineData("function x([t, e]) { }", false)]
  11. public void ShouldDetectParameterExpression(string functionCode, bool hasExpressions)
  12. {
  13. var parser = new Parser();
  14. var script = parser.ParseScript(functionCode);
  15. var function = (IFunction) script.Body.First();
  16. var state = JintFunctionDefinition.BuildState(function);
  17. state.HasParameterExpressions.Should().Be(hasExpressions);
  18. }
  19. }