diff --git a/core/lib/Drupal/Core/Template/Attribute.php b/core/lib/Drupal/Core/Template/Attribute.php index 017ac58..b2498b1 100644 --- a/core/lib/Drupal/Core/Template/Attribute.php +++ b/core/lib/Drupal/Core/Template/Attribute.php @@ -91,6 +91,13 @@ protected function createAttributeValue($name, $value) { elseif (!is_object($value)) { $value = new AttributeString($name, $value); } + elseif (is_object($value) && !($value instanceof AttributeValueBase) && !method_exists($value, '__toString')) { + throw new Exception(t('"@attribute_name" attribute value of type "@class" can not be converted to string', array( + '@attribute_name' => $name, + '@class' => get_class($value) + ))); + } + return $value; } diff --git a/core/lib/Drupal/Core/Template/TwigNodeExpressionFunction.php b/core/lib/Drupal/Core/Template/TwigNodeExpressionFunction.php index 0405fd5..3902abd 100644 --- a/core/lib/Drupal/Core/Template/TwigNodeExpressionFunction.php +++ b/core/lib/Drupal/Core/Template/TwigNodeExpressionFunction.php @@ -48,3 +48,4 @@ public function compile(\Twig_Compiler $compiler) { $this->compileCallable($compiler); } } + diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine index 10fab5d..c20da07 100644 --- a/core/themes/engines/twig/twig.engine +++ b/core/themes/engines/twig/twig.engine @@ -144,7 +144,7 @@ function twig_render_var($arg_name, $arg) { return (string) $arg; } else { - throw new Exception(t('@arg_name of type "@class" doesn\' implement __toString.', array('@arg_name' => $arg_name, '@class' => get_class($arg)))); + throw new Exception(t('@arg_name of type "@class" doesn\'t implement __toString.', array('@arg_name' => $arg_name, '@class' => get_class($arg)))); } }