public static function compile(&$context, $template)
{
$tmpContext = $context;
$tmpContext['inlinepartial'] = array();
$tmpContext['partialblock'] = array();
$code = Compiler::compileTemplate($tmpContext, str_replace('function', static::$TMP_JS_FUNCTION_STR, $template));
Context::merge($context, $tmpContext);
if (!$context['flags']['noind']) {
$sp = ', $sp';
$code = preg_replace('/^/m', "'{$context['ops']['seperator']}\$sp{$context['ops']['seperator']}'", $code);
// callbacks inside partial should be aware of $sp
$code = preg_replace('/\\bfunction\\s*\\(([^\\(]*?)\\)\\s*{/', 'function(\\1)use($sp){', $code);
} else {
$sp = '';
}
$code = str_replace(static::$TMP_JS_FUNCTION_STR, 'function', $code);
return "function (\$cx, \$in{$sp}) {{$context['ops']['op_start']}'{$code}'{$context['ops']['op_end']}}";
}