Make happy path (strings) faster by avoiding the cast, same perfs for the other cases
authorJordi Boggiano <j.boggiano@seld.be>
Mon, 6 May 2013 12:32:20 +0000 (14:32 +0200)
committerJordi Boggiano <j.boggiano@seld.be>
Mon, 6 May 2013 12:32:20 +0000 (14:32 +0200)
lib/Twig/Extension/Core.php

index 657c3d8..c3ca51a 100644 (file)
@@ -851,16 +851,18 @@ function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html',
         return $string;
     }
 
-    if (!is_string($string) && !(is_object($string) && method_exists($string, '__toString'))) {
-        return $string;
+    if (!is_string($string)) {
+        if (is_object($string) && method_exists($string, '__toString')) {
+            $string = (string) $string;
+        } else {
+            return $string;
+        }
     }
 
     if (null === $charset) {
         $charset = $env->getCharset();
     }
 
-    $string = (string) $string;
-
     switch ($strategy) {
         case 'html':
             // see http://php.net/htmlspecialchars