function __toString() { $var_pat = "\\\$[a-zA-Z_][a-zA-Z0-9_'\"\\[\\]]*"; $fe_pat = "/\\s*({$var_pat})\\s+as(:?\\s+({$var_pat})\\s+(:?=>|:))?\\s+({$var_pat})/"; preg_match($fe_pat, $this->contents, $matches); $iterable = PhpToJs::varToJs($matches[1]); $key = $matches[3] ? substr($matches[3], 1) : 'key'; $iterator = PhpToJs::varToJs($matches[5]); $str = "(function(data) { var " . OUTPUT_VAR . " = '';\n"; $str .= "for (var {$key} in {$iterable}) { if ({$iterable}.hasOwnProperty({$key})) {"; PhpToJs::pushVar($iterator, $iterable . '[' . $key . ']'); PhpToJs::pushVar("data." . $key, $key); return $str; }