diff -r 6d109e3804ac -r 9a001a04b634 Twig-1.3.0/lib/Twig/Node/Expression/Name.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Twig-1.3.0/lib/Twig/Node/Expression/Name.php Tue Oct 25 23:56:28 2011 +0200 @@ -0,0 +1,58 @@ + $name, 'output' => false), $lineno); + } + + public function compile(Twig_Compiler $compiler) + { + static $specialVars = array( + '_self' => '$this', + '_context' => '$context', + '_charset' => '$this->env->getCharset()', + ); + + $name = $this->getAttribute('name'); + + if ($this->hasAttribute('is_defined_test')) { + if (isset($specialVars[$name])) { + $compiler->repr(true); + } else { + $compiler->raw('array_key_exists(')->repr($name)->raw(', $context)'); + } + } elseif (isset($specialVars[$name])) { + $compiler->raw($specialVars[$name]); + } elseif ($this->getAttribute('output')) { + $compiler + ->addDebugInfo($this) + ->write('if (isset($context[') + ->string($name) + ->raw("])) {\n") + ->indent() + ->write('echo $context[') + ->string($name) + ->raw("];\n") + ->outdent() + ->write("}\n") + ; + } else { + $compiler + ->raw('$this->getContext($context, ') + ->string($name) + ->raw(')') + ; + } + } +}