2121using OriginalException = YantraJS . Core . JSException ;
2222using OriginalFunction = YantraJS . Core . JSFunction ;
2323using OriginalJsonObject = YantraJS . Core . JSJSON ;
24+ using OriginalKeyString = YantraJS . Core . KeyString ;
2425using OriginalTypeConverter = YantraJS . Utils . TypeConverter ;
2526using OriginalUndefined = YantraJS . Core . JSUndefined ;
2627using OriginalValue = YantraJS . Core . JSValue ;
2728
2829using JavaScriptEngineSwitcher . Core ;
2930using JavaScriptEngineSwitcher . Core . Constants ;
30- using JavaScriptEngineSwitcher . Core . Extensions ;
3131using JavaScriptEngineSwitcher . Core . Helpers ;
3232using JavaScriptEngineSwitcher . Core . Utilities ;
3333
@@ -54,7 +54,7 @@ public sealed class YantraJsEngine : JsEngineBase
5454 /// <summary>
5555 /// Version of original JS engine
5656 /// </summary>
57- private const string EngineVersion = "1.2.316 " ;
57+ private const string EngineVersion = "1.2.334 " ;
5858
5959 /// <summary>
6060 /// Regular expression for working with the error message
@@ -332,7 +332,7 @@ private WrapperException WrapJsException(OriginalException originalException)
332332 string messageWithCallStack = type == JsErrorType . Syntax ?
333333 originalException . JSStackTrace . AsStringOrDefault ( )
334334 :
335- errorValue . Stack ?? errorValue [ " stack" ] . AsStringOrDefault ( )
335+ errorValue . Stack ?? errorValue [ OriginalKeyString . stack ] . AsStringOrDefault ( )
336336 ;
337337 string rawCallStack = GetRawCallStack ( message , messageWithType , messageWithCallStack ) ;
338338
@@ -483,13 +483,15 @@ private OriginalValue InnerEvaluateWithoutResultConversion(string expression, st
483483 private OriginalValue InnerCallFunctionWithoutResultConversion ( string functionName , params object [ ] args )
484484 {
485485 OriginalValue resultValue ;
486+ OriginalKeyString functionKeyName = functionName . ToKeyString ( ) ;
486487 OriginalValue [ ] processedArgs = MapToScriptType ( args ) ;
487488
488489 try
489490 {
490491 lock ( _executionSynchronizer )
491492 {
492- resultValue = _jsContext . InvokeMethod ( functionName , new OriginalArguments ( _jsContext , processedArgs ) ) ;
493+ resultValue = _jsContext . InvokeMethod ( functionKeyName ,
494+ new OriginalArguments ( _jsContext , processedArgs ) ) ;
493495 }
494496 }
495497 catch ( OriginalException e )
@@ -515,12 +517,13 @@ private OriginalValue InnerCallFunctionWithoutResultConversion(string functionNa
515517 private OriginalValue InnerGetVariableValueWithoutResultConversion ( string variableName )
516518 {
517519 OriginalValue variableValue ;
520+ OriginalKeyString variableKeyName = variableName . ToKeyString ( ) ;
518521
519522 try
520523 {
521524 lock ( _executionSynchronizer )
522525 {
523- variableValue = _jsContext [ variableName ] ;
526+ variableValue = _jsContext [ variableKeyName ] ;
524527 }
525528 }
526529 catch ( OriginalException e )
@@ -625,10 +628,11 @@ protected override bool InnerHasVariable(string variableName)
625628 try
626629 {
627630 OriginalValue variableValue ;
631+ OriginalKeyString variableKeyName = variableName . ToKeyString ( ) ;
628632
629633 lock ( _executionSynchronizer )
630634 {
631- variableValue = _jsContext [ variableName ] ;
635+ variableValue = _jsContext [ variableKeyName ] ;
632636 }
633637
634638 result = ! variableValue . IsUndefined ;
@@ -659,13 +663,14 @@ protected override T InnerGetVariableValue<T>(string variableName)
659663
660664 protected override void InnerSetVariableValue ( string variableName , object value )
661665 {
666+ OriginalKeyString variableKeyName = variableName . ToKeyString ( ) ;
662667 OriginalValue processedValue = MapToScriptType ( value ) ;
663668
664669 try
665670 {
666671 lock ( _executionSynchronizer )
667672 {
668- _jsContext [ variableName ] = processedValue ;
673+ _jsContext [ variableKeyName ] = processedValue ;
669674 }
670675 }
671676 catch ( OriginalException e )
@@ -676,11 +681,13 @@ protected override void InnerSetVariableValue(string variableName, object value)
676681
677682 protected override void InnerRemoveVariable ( string variableName )
678683 {
684+ OriginalKeyString variableKeyName = variableName . ToKeyString ( ) ;
685+
679686 try
680687 {
681688 lock ( _executionSynchronizer )
682689 {
683- _jsContext . Delete ( variableName ) ;
690+ _jsContext . Delete ( variableKeyName ) ;
684691 }
685692 }
686693 catch ( OriginalException e )
@@ -691,7 +698,9 @@ protected override void InnerRemoveVariable(string variableName)
691698
692699 protected override void InnerEmbedHostObject ( string itemName , object value )
693700 {
701+ OriginalKeyString itemKeyName = itemName . ToKeyString ( ) ;
694702 OriginalValue processedValue ;
703+
695704 if ( value is Delegate )
696705 {
697706 processedValue = CreateEmbeddedFunction ( ( Delegate ) value ) ;
@@ -705,8 +714,7 @@ protected override void InnerEmbedHostObject(string itemName, object value)
705714 {
706715 lock ( _executionSynchronizer )
707716 {
708- _jsContext [ itemName ] = processedValue ;
709-
717+ _jsContext [ itemKeyName ] = processedValue ;
710718 }
711719 }
712720 catch ( OriginalException e )
@@ -717,13 +725,14 @@ protected override void InnerEmbedHostObject(string itemName, object value)
717725
718726 protected override void InnerEmbedHostType ( string itemName , Type type )
719727 {
728+ OriginalKeyString itemKeyName = itemName . ToKeyString ( ) ;
720729 OriginalValue processedValue = OriginalClrType . From ( type ) ;
721730
722731 try
723732 {
724733 lock ( _executionSynchronizer )
725734 {
726- _jsContext [ itemName ] = processedValue ;
735+ _jsContext [ itemKeyName ] = processedValue ;
727736 }
728737 }
729738 catch ( OriginalException e )
0 commit comments