@@ -123,7 +123,6 @@ public override EdgeJsValue MapToScriptType(object value)
123123 public override object MapToHostType ( EdgeJsValue value )
124124 {
125125 JsValueType valueType = value . ValueType ;
126- EdgeJsValue processedValue ;
127126 object result ;
128127
129128 switch ( valueType )
@@ -135,16 +134,13 @@ public override object MapToHostType(EdgeJsValue value)
135134 result = Undefined . Value ;
136135 break ;
137136 case JsValueType . Boolean :
138- processedValue = value . ConvertToBoolean ( ) ;
139- result = processedValue . ToBoolean ( ) ;
137+ result = value . ToBoolean ( ) ;
140138 break ;
141139 case JsValueType . Number :
142- processedValue = value . ConvertToNumber ( ) ;
143- result = NumericHelpers . CastDoubleValueToCorrectType ( processedValue . ToDouble ( ) ) ;
140+ result = NumericHelpers . CastDoubleValueToCorrectType ( value . ToDouble ( ) ) ;
144141 break ;
145142 case JsValueType . String :
146- processedValue = value . ConvertToString ( ) ;
147- result = processedValue . ToString ( ) ;
143+ result = value . ToString ( ) ;
148144 break ;
149145 case JsValueType . Object :
150146 case JsValueType . Function :
@@ -154,7 +150,8 @@ public override object MapToHostType(EdgeJsValue value)
154150 result = value . HasExternalData ?
155151 GCHandle . FromIntPtr ( value . ExternalData ) . Target : value . ConvertToObject ( ) ;
156152#else
157- processedValue = value . ConvertToObject ( ) ;
153+ EdgeJsValue processedValue = valueType != JsValueType . Object ?
154+ value . ConvertToObject ( ) : value ;
158155 object obj = processedValue . ToObject ( ) ;
159156 var hostObj = obj as HostObject ;
160157 result = hostObj != null ? hostObj . Target : obj ;
0 commit comments