system/View/Parser.php
public function setData(array $data = [], string $context = null): RendererInterface
	{
		if (! empty($context))
		{
			foreach ($data as $key => &$value)
			{
				if (is_array($value))
				{
					foreach ($value as &$obj)
					{
						$obj = $this->objectToArray($obj);
					}
				}
				else
				{
					$value = $this->objectToArray($value);
				}

				$this->dataContexts[$key] = $context;
			}
		}

		$this->data = array_merge($this->data, $data);

		return $this;
	}
public function setData(array $data = [], string $context = null): RendererInterface
	{
		if (! empty($context))
		{
			foreach ($data as $key => &$value)
			{
				if (is_array($value))
				{
					foreach ($value as &$obj)
					{
						$obj = $this->objectToArray($obj);
					}
				}
				else
				{
					$value = $this->objectToArray($value);
				}

				$this->dataContexts[$key] = $context;
			}
		}

		$this->data = array_merge($this->data, $data);

		return $this;
	}
Sets several pieces of view data at once.
In the Parser, we need to store the context here
so that the variable is correctly handled within the
parsing itself, and contexts (including raw) are respected.

@param array  $data
@param string $context The context to escape it for: html, css, js, url, raw
If 'raw', no escaping will happen

@return RendererInterface