Ошибка, которую вы, ребята, получаете, связана с библиотекой Jurassic , которая используется Chirpy Add-In.
Я сделал краткий поиск в источниках Chirpy и Jurassic и нашел точное место, где выдается исключение и вызывает описанную вами проблему.
В источниках Jurassic перейдите в каталог Jurassic\Compiler\Binders
и откройте файл JSBinder.cs
. Проблема возникает в методе protected override void GenerateStub(ILGenerator generator, int argumentCount)
, который сам используется для генерации другого метода ... yadayadayada. Это довольно сложно.
Во всяком случае. Вот код из этого файла, который отвечает за ошибки, которые вы получаете:
// Line 156 (Change Set df266524321d)
// Convert to the target type.
EmitTypeConversion(generator, typeof(object), argument.Type);
if (argument.Type != typeof(ObjectInstance) && inheritsFromObjectInstance == true)
{
// EmitConversionToObjectInstance can emit null if the toType is derived from ObjectInstance.
// Therefore, if the value emitted is null it means that the "thisObject" is a type derived
// from ObjectInstance (e.g. FunctionInstance) and the value provided is a different type
// (e.g. ArrayInstance). In this case, throw an exception explaining that the function is
// not generic.
var endOfThrowLabel = generator.CreateLabel();
generator.Duplicate();
generator.BranchIfNotNull(endOfThrowLabel);
generator.LoadArgument(0);
EmitHelpers.EmitThrow(generator, "TypeError", string.Format("The method '{0}' is not generic", binderMethod.Name));
generator.DefineLabelPosition(endOfThrowLabel);
}
Если вы хотите покопаться немного глубже, вы можете взглянуть на Jurassic\Library\Array\ArrayInstance.cs
и Jurassic\Library\Object\ObjectInstance.cs
, где реализован public static string ToStringJS(ScriptEngine engine, object thisObject)
. Также в Chirpy lib файл CSSLint.cs
содержит несколько интересных строк кода (места, где используется Jurassic ).
Должен признать, я не знаю точно, почему вы получаете "фатальную ошибку" или как проблему можно исправить. Это потребует немало усилий по тестированию / отладке. Кто-нибудь?
Во всяком случае, не вините Решарпера! Это отличное программное обеспечение; -)