Closed Taritsyn closed 6 years ago
Hello, Paul!
Errors in unit tests for .NET Framework 4.5 version was caused by the following block of code from a Compiler/Emit/ILGenerator/ILLocalVariable.cs
file:
#if ENABLE_DEBUGGING
if (name != null)
local.SetLocalSymInfo(name);
#endif
I removed this block of code.
This is going to result in poorer debugging support though, right? What error message are you getting?
If run a Unit Tests project, that targeted on .NET Framework 4.6.1, by using the following command:
dotnet test --framework net461
Then get the following errors (see a full version in the test.log
file):
Starting test execution, please wait...
Failed UnaryPlus
Error Message:
Test method UnitTests.ExpressionTests.UnaryPlus threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateSet(ILGenerator generator, OptimizationInfo optimizationInfo, PrimitiveType valueType, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 440
at Jurassic.Compiler.AssignmentExpression.GenerateAssignment(ILGenerator generator, OptimizationInfo optimizationInfo, IReferenceExpression target) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\AssignmentExpression.cs:line 195
at Jurassic.Compiler.AssignmentExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\AssignmentExpression.cs:line 142
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.UnaryPlus() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 19
Failed UnaryMinus
Error Message:
Test method UnitTests.ExpressionTests.UnaryMinus threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateSet(ILGenerator generator, OptimizationInfo optimizationInfo, PrimitiveType valueType, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 440
at Jurassic.Compiler.AssignmentExpression.GenerateAssignment(ILGenerator generator, OptimizationInfo optimizationInfo, IReferenceExpression target) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\AssignmentExpression.cs:line 195
at Jurassic.Compiler.AssignmentExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\AssignmentExpression.cs:line 142
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.UnaryMinus() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 34
Failed BitwiseNot
Error Message:
Test method UnitTests.ExpressionTests.BitwiseNot threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.UnaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\UnaryExpression.cs:line 130
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.BitwiseNot() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 59
Failed LogicalNot
Error Message:
Test method UnitTests.ExpressionTests.LogicalNot threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.UnaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\UnaryExpression.cs:line 130
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.LogicalNot() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 80
Failed Add
Error Message:
Test method UnitTests.ExpressionTests.Add threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.BinaryExpression.GenerateAdd(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 479
at Jurassic.Compiler.BinaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 234
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.Add() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 103
Failed Subtract
Error Message:
Test method UnitTests.ExpressionTests.Subtract threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.BinaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 271
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.Subtract() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 191
Failed Multiply
Error Message:
Test method UnitTests.ExpressionTests.Multiply threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.BinaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 271
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.Multiply() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 218
Failed Divide
Error Message:
Test method UnitTests.ExpressionTests.Divide threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.BinaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 271
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.Divide() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 248
Failed Remainder
Error Message:
Test method UnitTests.ExpressionTests.Remainder threw exception:
System.NotSupportedException: Specified method is not supported.
Stack Trace:
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name, Int32 startOffset, Int32 endOffset)
at System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(String name)
at Jurassic.Compiler.ReflectionEmitILLocalVariable..ctor(LocalBuilder local, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ILLocalVariable.cs:line 122
at Jurassic.Compiler.ReflectionEmitILGenerator.DeclareVariable(Type type, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\ILGenerator\ReflectionEmitILGenerator.cs:line 282
at Jurassic.Compiler.OptimizationInfo.GetGlobalPropertyReferenceVariable(ILGenerator generator, String name) in C:\Projects\jurassic\Jurassic\Compiler\Emit\OptimizationInfo.cs:line 192
at Jurassic.Compiler.NameExpression.GenerateGet(ILGenerator generator, OptimizationInfo optimizationInfo, Boolean throwIfUnresolvable) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 222
at Jurassic.Compiler.NameExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NameExpression.cs:line 85
at Jurassic.Compiler.NewExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\NewExpression.cs:line 62
at Jurassic.Compiler.BinaryExpression.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Expressions\BinaryExpression.cs:line 271
at Jurassic.Compiler.ExpressionStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\ExpressionStatement.cs:line 74
at Jurassic.Compiler.BlockStatement.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\Statements\BlockStatement.cs:line 45
at Jurassic.Compiler.EvalMethodGenerator.GenerateCode(ILGenerator generator, OptimizationInfo optimizationInfo) in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\EvalMethodGenerator.cs:line 78
at Jurassic.Compiler.MethodGenerator.GenerateCode() in C:\Projects\jurassic\Jurassic\Compiler\MethodGenerator\MethodGenerator.cs:line 242
at Jurassic.ScriptEngine.Evaluate(ScriptSource source) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 749
at Jurassic.ScriptEngine.Evaluate(String code) in C:\Projects\jurassic\Jurassic\Core\ScriptEngine.cs:line 708
at UnitTests.TestBase.Evaluate(String script) in C:\Projects\jurassic\Unit Tests\Utils\TestBase.cs:line 32
at UnitTests.ExpressionTests.Remainder() in C:\Projects\jurassic\Unit Tests\Compiler\ExpressionTests.cs:line 277
...
Total tests: 508. Passed: 65. Failed: 426. Skipped: 17.
Test execution time: 5,1603 Seconds
Any ideas how to fix these errors?
If you're getting Specified method is not supported.
that probably means you are running on .NET core, not on .NET framework. dotnet test
is part of .NET core, so that's not too surprising, but in that case I'm not sure why there's a --framework net461
option.
This is a normal test practice for a multi-target project.
If you're getting
Specified method is not supported.
that probably means you are running on .NET core, not on .NET framework.
You can get this error in .NET Framework 4.5 version of Jurassic, even if you run the simplest console application:
using Jurassic;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
var engine = new ScriptEngine();
engine.Execute("var engines = ['Chakra', 'Jurassic', 'SpiderMonkey', 'V8'];");
}
}
}
This error is caused by the following block of code from a Compiler/Emit/ILGenerator/ILLocalVariable.cs
file:
if (name != null)
local.SetLocalSymInfo(name);
This block of code is never called in .NET Standard 2.0 version of Jurassic. For a long time this block was commented out.
You're right, I apologize. I've checked in a fix that preserves the debugging functionality (67740c18f49e1e93b0ba2af1dc1a7d9be988b5ea).
Thanks!
What errors are you seeing, exactly? I tried switching to your PR branch but I had no errors when running the unit tests.