소스 검색

#451 faster code paths for JsString.Create (#511)

Marko Lahma 7 년 전
부모
커밋
c860632898
1개의 변경된 파일8개의 추가작업 그리고 18개의 파일을 삭제
  1. 8 18
      Jint/Native/JsString.cs

+ 8 - 18
Jint/Native/JsString.cs

@@ -59,27 +59,17 @@ namespace Jint.Native
 
 
         internal static JsString Create(string value)
         internal static JsString Create(string value)
         {
         {
-            if (value.Length <= 1)
+            switch (value.Length)
             {
             {
-                if (value == "")
-                {
+                case 0:
                     return Empty;
                     return Empty;
-                }
-
-                if (value.Length == 1)
-                {
-                    if (value[0] >= 0 && value[0] <= AsciiMax)
-                    {
-                        return _charToStringJsValue[value[0]];
-                    }
-                }
-            }
-            else if (value == Native.Null.Text)
-            {
-                return NullString;
+                case 1 when value[0] >= 0 && value[0] <= AsciiMax:
+                    return _charToStringJsValue[value[0]];
+                case 4 when value == Native.Null.Text:
+                    return NullString;
+                default:
+                    return new JsString(value);
             }
             }
-
-            return new JsString(value);
         }
         }
 
 
         internal static JsString Create(char value)
         internal static JsString Create(char value)