@@ -215,7 +215,7 @@ public object InvokeMember(string name, BindingFlags invokeFlags, object[] args,
215215 AdjustInvokeFlags ( ref invokeFlags ) ;
216216
217217 object result ;
218- if ( target . TryInvokeAuxMember ( name , invokeFlags , args , bindArgs , out result ) )
218+ if ( target . TryInvokeAuxMember ( engine , name , invokeFlags , args , bindArgs , out result ) )
219219 {
220220 if ( target is IHostVariable )
221221 {
@@ -668,7 +668,7 @@ private object InvokePropertyBagMember(string name, BindingFlags invokeFlags, ob
668668 }
669669
670670 object result ;
671- if ( InvokeHelpers . TryInvokeObject ( value , invokeFlags , args , bindArgs , true , out result ) )
671+ if ( InvokeHelpers . TryInvokeObject ( engine , value , invokeFlags , args , bindArgs , true , out result ) )
672672 {
673673 return result ;
674674 }
@@ -710,7 +710,7 @@ private object InvokeListElement(int index, BindingFlags invokeFlags, object[] a
710710 if ( invokeFlags . HasFlag ( BindingFlags . InvokeMethod ) )
711711 {
712712 object result ;
713- if ( InvokeHelpers . TryInvokeObject ( targetList [ index ] , invokeFlags , args , bindArgs , true , out result ) )
713+ if ( InvokeHelpers . TryInvokeObject ( engine , targetList [ index ] , invokeFlags , args , bindArgs , true , out result ) )
714714 {
715715 return result ;
716716 }
@@ -761,7 +761,7 @@ private object InvokeHostMember(string name, BindingFlags invokeFlags, object[]
761761 // ReSharper disable CoVariantArrayConversion
762762
763763 object result ;
764- if ( hostType . TryInvoke ( BindingFlags . InvokeMethod , typeArgs , typeArgs , out result ) )
764+ if ( hostType . TryInvoke ( engine , BindingFlags . InvokeMethod , typeArgs , typeArgs , out result ) )
765765 {
766766 hostType = result as HostType ;
767767 if ( hostType != null )
@@ -805,7 +805,7 @@ private object InvokeHostMember(string name, BindingFlags invokeFlags, object[]
805805 if ( targetDynamicMetaObject != null )
806806 {
807807 object result ;
808- if ( targetDynamicMetaObject . TryCreateInstance ( args , out result ) )
808+ if ( targetDynamicMetaObject . TryCreateInstance ( engine , args , out result ) )
809809 {
810810 return result ;
811811 }
@@ -820,7 +820,7 @@ private object InvokeHostMember(string name, BindingFlags invokeFlags, object[]
820820 if ( name == SpecialMemberNames . Default )
821821 {
822822 object result ;
823- if ( InvokeHelpers . TryInvokeObject ( target , invokeFlags , args , bindArgs , targetDynamicMetaObject != null , out result ) )
823+ if ( InvokeHelpers . TryInvokeObject ( engine , target , invokeFlags , args , bindArgs , targetDynamicMetaObject != null , out result ) )
824824 {
825825 return result ;
826826 }
@@ -836,7 +836,7 @@ private object InvokeHostMember(string name, BindingFlags invokeFlags, object[]
836836 if ( ( targetDynamicMetaObject != null ) && ( targetDynamicMetaObject . GetDynamicMemberNames ( ) . Contains ( name ) ) )
837837 {
838838 object result ;
839- if ( targetDynamicMetaObject . TryInvokeMember ( name , invokeFlags , args , out result ) )
839+ if ( targetDynamicMetaObject . TryInvokeMember ( engine , name , invokeFlags , args , out result ) )
840840 {
841841 return result ;
842842 }
@@ -851,14 +851,14 @@ private object InvokeHostMember(string name, BindingFlags invokeFlags, object[]
851851 if ( ( property != null ) && ( typeof ( Delegate ) . IsAssignableFrom ( property . PropertyType ) ) )
852852 {
853853 var del = ( Delegate ) property . GetValue ( target . InvokeTarget , invokeFlags | BindingFlags . GetProperty , Type . DefaultBinder , MiscHelpers . GetEmptyArray < object > ( ) , culture ) ;
854- return InvokeHelpers . InvokeDelegate ( del , args ) ;
854+ return InvokeHelpers . InvokeDelegate ( engine , del , args ) ;
855855 }
856856
857857 var field = target . Type . GetScriptableField ( name , GetCommonBindFlags ( ) ) ;
858858 if ( ( field != null ) && ( typeof ( Delegate ) . IsAssignableFrom ( field . FieldType ) ) )
859859 {
860860 var del = ( Delegate ) field . GetValue ( target . InvokeTarget ) ;
861- return InvokeHelpers . InvokeDelegate ( del , args ) ;
861+ return InvokeHelpers . InvokeDelegate ( engine , del , args ) ;
862862 }
863863
864864 if ( invokeFlags . HasFlag ( BindingFlags . GetField ) )
@@ -911,7 +911,7 @@ private object GetHostProperty(string name, BindingFlags invokeFlags, object[] a
911911 if ( property != null )
912912 {
913913 var result = property . GetValue ( target . InvokeTarget , invokeFlags , Type . DefaultBinder , args , culture ) ;
914- return property . IsRestrictedForScript ( ) ? HostObject . WrapResult ( result , property . PropertyType ) : result ;
914+ return engine . PrepareResult ( result , property . PropertyType , property . IsRestrictedForScript ( ) ) ;
915915 }
916916
917917 if ( target . Type . GetScriptableProperties ( name , invokeFlags ) . Any ( ) )
@@ -935,7 +935,7 @@ private object GetHostProperty(string name, BindingFlags invokeFlags, object[] a
935935 if ( field != null )
936936 {
937937 var result = field . GetValue ( target . InvokeTarget ) ;
938- return field . IsRestrictedForScript ( ) ? HostObject . WrapResult ( result , field . FieldType ) : result ;
938+ return engine . PrepareResult ( result , field . FieldType , field . IsRestrictedForScript ( ) ) ;
939939 }
940940
941941 var eventInfo = target . Type . GetScriptableEvent ( name , invokeFlags ) ;
@@ -973,7 +973,7 @@ private object SetHostProperty(string name, BindingFlags invokeFlags, object[] a
973973 // special case to enable JScript/VBScript "x(a) = b" syntax when x is a host indexed property
974974
975975 object result ;
976- if ( InvokeHelpers . TryInvokeObject ( target , invokeFlags , args , bindArgs , false , out result ) )
976+ if ( InvokeHelpers . TryInvokeObject ( engine , target , invokeFlags , args , bindArgs , false , out result ) )
977977 {
978978 return result ;
979979 }
0 commit comments