/** * @covers Twig_Node_Expression_Test::__construct */ public function testConstructor() { $expr = new Twig_Node_Expression_Constant('foo', 1); $name = new Twig_Node_Expression_Constant('null', 1); $args = new Twig_Node(); $node = new Twig_Node_Expression_Test($expr, $name, $args, 1); $this->assertEquals($expr, $node->getNode('node')); $this->assertEquals($args, $node->getNode('arguments')); $this->assertEquals($name, $node->getAttribute('name')); }
public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno) { parent::__construct($node, $name, $arguments, $lineno); if ($node instanceof Twig_Node_Expression_Name) { $node->setAttribute('is_defined_test', true); } elseif ($node instanceof Twig_Node_Expression_GetAttr) { $node->setAttribute('is_defined_test', true); $this->changeIgnoreStrictCheck($node); } else { throw new Twig_Error_Syntax('The "defined" test only works with simple variables', $this->getLine()); } }
public function __construct(Twig_Node $node, $name, Twig_Node $arguments = null, $lineno) { if ($node instanceof Twig_Node_Expression_Name) { $node->setAttribute('is_defined_test', true); } elseif ($node instanceof Twig_Node_Expression_GetAttr) { $node->setAttribute('is_defined_test', true); $this->changeIgnoreStrictCheck($node); } elseif ($node instanceof Twig_Node_Expression_Constant || $node instanceof Twig_Node_Expression_Array || $node instanceof Twig_Node_Expression_GetProperty || $node instanceof Twig_Node_Expression_MethodCall) { $node = new Twig_Node_Expression_Constant(true, $node->getLine()); } else { throw new Twig_Error_Syntax('The "defined" test only works with simple variables.', $this->getLine()); } parent::__construct($node, $name, $arguments, $lineno); }
public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno) { if ($node instanceof Twig_Node_Expression_Name) { $node->setAttribute('is_defined_test', true); } elseif ($node instanceof Twig_Node_Expression_GetAttr) { $node->setAttribute('is_defined_test', true); $this->changeIgnoreStrictCheck($node); } elseif ($node instanceof Twig_Node_Expression_BlockReference) { $node->setAttribute('is_defined_test', true); } elseif ($node instanceof Twig_Node_Expression_Function && 'constant' === $node->getAttribute('name')) { $node->setAttribute('is_defined_test', true); } elseif ($node instanceof Twig_Node_Expression_Constant || $node instanceof Twig_Node_Expression_Array) { $node = new Twig_Node_Expression_Constant(true, $node->getTemplateLine()); } else { throw new Twig_Error_Syntax('The "defined" test only works with simple variables.', $this->getTemplateLine()); } parent::__construct($node, $name, $arguments, $lineno); }
public function compile(JsCompiler $compiler, \Twig_Node_Expression_Test $node) { $compiler->raw('1 === ')->subcompile($node->getNode('node'))->raw(' % 2'); }
public function compile(JsCompiler $compiler, \Twig_Node_Expression_Test $node) { $compiler->raw('(')->subcompile($node->getNode('node'))->raw(' === ')->subcompile($node->getNode('arguments')->getNode(0))->raw(')'); }