| 6118 | } |
| 6119 | |
| 6120 | function statements() { |
| 6121 | var statements = []; |
| 6122 | while(true) { |
| 6123 | if (tokens.length > 0 && !peek('}', ')', ';', ']')) |
| 6124 | statements.push(filterChain()); |
| 6125 | if (!expect(';')) { |
| 6126 | // optimize for the common case where there is only one statement. |
| 6127 | // TODO(size): maybe we should not support multiple statements? |
| 6128 | return statements.length == 1 |
| 6129 | ? statements[0] |
| 6130 | : function(self, locals){ |
| 6131 | var value; |
| 6132 | for ( var i = 0; i < statements.length; i++) { |
| 6133 | var statement = statements[i]; |
| 6134 | if (statement) |
| 6135 | value = statement(self, locals); |
| 6136 | } |
| 6137 | return value; |
| 6138 | }; |
| 6139 | } |
| 6140 | } |
| 6141 | } |
| 6142 | |
| 6143 | function _filterChain() { |
| 6144 | var left = expression(); |