File tree Expand file tree Collapse file tree 3 files changed +26
-4
lines changed
src/ScriptEngine/Machine/Contexts Expand file tree Collapse file tree 3 files changed +26
-4
lines changed Original file line number Diff line number Diff line change @@ -65,7 +65,7 @@ protected override void OnInstanceCreation()
6565
6666 base . OnInstanceCreation ( ) ;
6767 var methId = GetScriptMethod ( OnInstanceCreationTerms . Russian , OnInstanceCreationTerms . English ) ;
68- int constructorParamsCount = ConstructorParams . Count ( ) ;
68+ int constructorParamsCount = ConstructorParams . Length ;
6969
7070 if ( methId > - 1 )
7171 {
@@ -83,7 +83,18 @@ protected override void OnInstanceCreation()
8383 else if ( parameters . Skip ( constructorParamsCount ) . Any ( param => ! param . HasDefaultValue ) )
8484 throw RuntimeException . TooFewArgumentsPassed ( ) ;
8585
86- CallScriptMethod ( methId , ConstructorParams ) ;
86+ if ( constructorParamsCount < procParamsCount )
87+ {
88+ var ctorParameters = new IValue [ procParamsCount ] ;
89+ ConstructorParams . CopyTo ( ctorParameters , 0 ) ;
90+ for ( int i = constructorParamsCount ; i < procParamsCount ; i ++ )
91+ {
92+ ctorParameters [ i ] = ( IValue ) parameters [ i ] . DefaultValue ;
93+ }
94+ CallScriptMethod ( methId , ctorParameters ) ;
95+ }
96+ else
97+ CallScriptMethod ( methId , ConstructorParams ) ;
8798 }
8899 else
89100 {
Original file line number Diff line number Diff line change 1414 Тесты.Добавить("ТестДолжен_ПроверитьВызовМетодовСПропущеннымиПараметрами" );
1515 Тесты.Добавить("ТестДолжен_ПроверитьВызовМетодовСОшибочноПропущеннымиПараметрами" );
1616 Тесты.Добавить("ТестДолжен_ПроверитьВызовМетодовСЛишнимиПараметрами" );
17-
17+ Тесты.Добавить("ТестДолжен_ПроверитьВызовКонструктораСПараметрамиПоУмолчанию" );
18+
1819 Возврат Тесты;
1920
2021КонецФункции
8687 КонецПопытки ;
8788
8889 юТест.ПроверитьИстину(ОК, "Не было исключения о лишнем параметре." + Ошибка);
89- КонецПроцедуры
90+ КонецПроцедуры
91+
92+ Процедура ТестДолжен_ПроверитьВызовКонструктораСПараметрамиПоУмолчанию () Экспорт
93+ Сценарий = Новый ПараметрыКонструктораПоУмолчанию("Парам1" );
94+ КонецПроцедуры
Original file line number Diff line number Diff line change 1+ #native
2+
3+ Процедура ПриСозданииОбъекта (Параметр1 , Параметр2 = "Парам2" )
4+
5+ КонецПроцедуры
6+
You can’t perform that action at this time.
0 commit comments