Revert "merged branch m0ppers/master (PR #611)"
authorFabien Potencier <fabien.potencier@gmail.com>
Sun, 19 Feb 2012 10:03:22 +0000 (11:03 +0100)
committerFabien Potencier <fabien.potencier@gmail.com>
Sun, 19 Feb 2012 10:03:22 +0000 (11:03 +0100)
This reverts commit 5f4e6d7a0eae30791e9e1433c90b157bcb5dc8f7, reversing
changes made to a61d42084caeadc4cc8c3bd1caded87631c12636.

lib/Twig/Node/Expression/Name.php

index a8d206f..4b8d541 100644 (file)
@@ -35,18 +35,29 @@ class Twig_Node_Expression_Name extends Twig_Node_Expression
         } elseif ($this->isSpecial()) {
             $compiler->raw($this->specialVars[$name]);
         } else {
-            $compiler
-                ->raw('$this->getContext($context, ')
-                ->string($name)
-            ;
+            if (version_compare(phpversion(), '5.4.0RC1', '>=') && ($this->getAttribute('ignore_strict_check') || !$compiler->getEnvironment()->isStrictVariables())) {
+                // PHP 5.4 ternary operator performance was optimized
+                $compiler
+                    ->raw('(isset($context[')
+                    ->string($name)
+                    ->raw(']) ? $context[')
+                    ->string($name)
+                    ->raw('] : null)')
+                ;
+            } else {
+                $compiler
+                    ->raw('$this->getContext($context, ')
+                    ->string($name)
+                ;
 
-            if ($this->getAttribute('ignore_strict_check')) {
-                $compiler->raw(', true');
-            }
+                if ($this->getAttribute('ignore_strict_check')) {
+                    $compiler->raw(', true');
+                }
 
-            $compiler
-                ->raw(')')
-            ;
+                $compiler
+                    ->raw(')')
+                ;
+            }
         }
     }