Home | History | Annotate | Download | only in ast

Lines Matching refs:node

17 #define REWRITE_THIS(node)                \
19 if (!RewriteExpression(node)) return; \
54 VariableDeclaration* node) {
61 FunctionDeclaration* node) {
63 AST_REWRITE_PROPERTY(FunctionLiteral, node, fun);
67 void AstExpressionRewriter::VisitBlock(Block* node) {
68 VisitStatements(node->statements());
73 ExpressionStatement* node) {
74 AST_REWRITE_PROPERTY(Expression, node, expression);
78 void AstExpressionRewriter::VisitEmptyStatement(EmptyStatement* node) {
84 SloppyBlockFunctionStatement* node) {
85 AST_REWRITE_PROPERTY(Statement, node, statement);
89 void AstExpressionRewriter::VisitIfStatement(IfStatement* node) {
90 AST_REWRITE_PROPERTY(Expression, node, condition);
91 AST_REWRITE_PROPERTY(Statement, node, then_statement);
92 AST_REWRITE_PROPERTY(Statement, node, else_statement);
96 void AstExpressionRewriter::VisitContinueStatement(ContinueStatement* node) {
101 void AstExpressionRewriter::VisitBreakStatement(BreakStatement* node) {
106 void AstExpressionRewriter::VisitReturnStatement(ReturnStatement* node) {
107 AST_REWRITE_PROPERTY(Expression, node, expression);
111 void AstExpressionRewriter::VisitWithStatement(WithStatement* node) {
112 AST_REWRITE_PROPERTY(Expression, node, expression);
113 AST_REWRITE_PROPERTY(Statement, node, statement);
117 void AstExpressionRewriter::VisitSwitchStatement(SwitchStatement* node) {
118 AST_REWRITE_PROPERTY(Expression, node, tag);
119 ZoneList<CaseClause*>* clauses = node->cases();
126 void AstExpressionRewriter::VisitDoWhileStatement(DoWhileStatement* node) {
127 AST_REWRITE_PROPERTY(Expression, node, cond);
128 AST_REWRITE_PROPERTY(Statement, node, body);
132 void AstExpressionRewriter::VisitWhileStatement(WhileStatement* node) {
133 AST_REWRITE_PROPERTY(Expression, node, cond);
134 AST_REWRITE_PROPERTY(Statement, node, body);
138 void AstExpressionRewriter::VisitForStatement(ForStatement* node) {
139 if (node->init() != nullptr) {
140 AST_REWRITE_PROPERTY(Statement, node, init);
142 if (node->cond() != nullptr) {
143 AST_REWRITE_PROPERTY(Expression, node, cond);
145 if (node->next() != nullptr) {
146 AST_REWRITE_PROPERTY(Statement, node, next);
148 AST_REWRITE_PROPERTY(Statement, node, body);
152 void AstExpressionRewriter::VisitForInStatement(ForInStatement* node) {
153 AST_REWRITE_PROPERTY(Expression, node, each);
154 AST_REWRITE_PROPERTY(Expression, node, subject);
155 AST_REWRITE_PROPERTY(Statement, node, body);
159 void AstExpressionRewriter::VisitForOfStatement(ForOfStatement* node) {
160 AST_REWRITE_PROPERTY(Expression, node, assign_iterator);
161 AST_REWRITE_PROPERTY(Expression, node, next_result);
162 AST_REWRITE_PROPERTY(Expression, node, result_done);
163 AST_REWRITE_PROPERTY(Expression, node, assign_each);
164 AST_REWRITE_PROPERTY(Statement, node, body);
168 void AstExpressionRewriter::VisitTryCatchStatement(TryCatchStatement* node) {
169 AST_REWRITE_PROPERTY(Block, node, try_block);
171 AST_REWRITE_PROPERTY(Block, node, catch_block);
176 TryFinallyStatement* node) {
177 AST_REWRITE_PROPERTY(Block, node, try_block);
178 AST_REWRITE_PROPERTY(Block, node, finally_block);
182 void AstExpressionRewriter::VisitDebuggerStatement(DebuggerStatement* node) {
187 void AstExpressionRewriter::VisitFunctionLiteral(FunctionLiteral* node) {
188 REWRITE_THIS(node);
189 VisitDeclarations(node->scope()->declarations());
190 ZoneList<Statement*>* body = node->body();
195 void AstExpressionRewriter::VisitClassLiteral(ClassLiteral* node) {
196 REWRITE_THIS(node);
198 if (node->extends() != nullptr) {
199 AST_REWRITE_PROPERTY(Expression, node, extends);
201 AST_REWRITE_PROPERTY(FunctionLiteral, node, constructor);
202 ZoneList<typename ClassLiteral::Property*>* properties = node->properties();
209 NativeFunctionLiteral* node) {
210 REWRITE_THIS(node);
215 void AstExpressionRewriter::VisitConditional(Conditional* node) {
216 REWRITE_THIS(node);
217 AST_REWRITE_PROPERTY(Expression, node, condition);
218 AST_REWRITE_PROPERTY(Expression, node, then_expression);
219 AST_REWRITE_PROPERTY(Expression, node, else_expression);
223 void AstExpressionRewriter::VisitVariableProxy(VariableProxy* node) {
224 REWRITE_THIS(node);
229 void AstExpressionRewriter::VisitLiteral(Literal* node) {
230 REWRITE_THIS(node);
235 void AstExpressionRewriter::VisitRegExpLiteral(RegExpLiteral* node) {
236 REWRITE_THIS(node);
241 void AstExpressionRewriter::VisitObjectLiteral(ObjectLiteral* node) {
242 REWRITE_THIS(node);
243 ZoneList<typename ObjectLiteral::Property*>* properties = node->properties();
256 void AstExpressionRewriter::VisitArrayLiteral(ArrayLiteral* node) {
257 REWRITE_THIS(node);
258 VisitExpressions(node->values());
262 void AstExpressionRewriter::VisitAssignment(Assignment* node) {
263 REWRITE_THIS(node);
264 AST_REWRITE_PROPERTY(Expression, node, target);
265 AST_REWRITE_PROPERTY(Expression, node, value);
269 void AstExpressionRewriter::VisitYield(Yield* node) {
270 REWRITE_THIS(node);
271 AST_REWRITE_PROPERTY(Expression, node, generator_object);
272 AST_REWRITE_PROPERTY(Expression, node, expression);
276 void AstExpressionRewriter::VisitThrow(Throw* node) {
277 REWRITE_THIS(node);
278 AST_REWRITE_PROPERTY(Expression, node, exception);
282 void AstExpressionRewriter::VisitProperty(Property* node) {
283 REWRITE_THIS(node);
284 if (node == nullptr) return;
285 AST_REWRITE_PROPERTY(Expression, node, obj);
286 AST_REWRITE_PROPERTY(Expression, node, key);
290 void AstExpressionRewriter::VisitCall(Call* node) {
291 REWRITE_THIS(node);
292 AST_REWRITE_PROPERTY(Expression, node, expression);
293 VisitExpressions(node->arguments());
297 void AstExpressionRewriter::VisitCallNew(CallNew* node) {
298 REWRITE_THIS(node);
299 AST_REWRITE_PROPERTY(Expression, node, expression);
300 VisitExpressions(node->arguments());
304 void AstExpressionRewriter::VisitCallRuntime(CallRuntime* node) {
305 REWRITE_THIS(node);
306 VisitExpressions(node->arguments());
310 void AstExpressionRewriter::VisitUnaryOperation(UnaryOperation* node) {
311 REWRITE_THIS(node);
312 AST_REWRITE_PROPERTY(Expression, node, expression);
316 void AstExpressionRewriter::VisitCountOperation(CountOperation* node) {
317 REWRITE_THIS(node);
318 AST_REWRITE_PROPERTY(Expression, node, expression);
322 void AstExpressionRewriter::VisitBinaryOperation(BinaryOperation* node) {
323 REWRITE_THIS(node);
324 AST_REWRITE_PROPERTY(Expression, node, left);
325 AST_REWRITE_PROPERTY(Expression, node, right);
329 void AstExpressionRewriter::VisitCompareOperation(CompareOperation* node) {
330 REWRITE_THIS(node);
331 AST_REWRITE_PROPERTY(Expression, node, left);
332 AST_REWRITE_PROPERTY(Expression, node, right);
336 void AstExpressionRewriter::VisitSpread(Spread* node) {
337 REWRITE_THIS(node);
338 AST_REWRITE_PROPERTY(Expression, node, expression);
342 void AstExpressionRewriter::VisitThisFunction(ThisFunction* node) {
343 REWRITE_THIS(node);
349 SuperPropertyReference* node) {
350 REWRITE_THIS(node);
351 AST_REWRITE_PROPERTY(VariableProxy, node, this_var);
352 AST_REWRITE_PROPERTY(Expression, node, home_object);
356 void AstExpressionRewriter::VisitSuperCallReference(SuperCallReference* node) {
357 REWRITE_THIS(node);
358 AST_REWRITE_PROPERTY(VariableProxy, node, this_var);
359 AST_REWRITE_PROPERTY(VariableProxy, node, new_target_var);
360 AST_REWRITE_PROPERTY(VariableProxy, node, this_function_var);
364 void AstExpressionRewriter::VisitCaseClause(CaseClause* node) {
365 if (!node->is_default()) {
366 AST_REWRITE_PROPERTY(Expression, node, label);
368 VisitStatements(node->statements());
372 void AstExpressionRewriter::VisitEmptyParentheses(EmptyParentheses* node) {
376 void AstExpressionRewriter::VisitGetIterator(GetIterator* node) {
377 AST_REWRITE_PROPERTY(Expression, node, iterable);
380 void AstExpressionRewriter::VisitDoExpression(DoExpression* node) {
381 REWRITE_THIS(node);
382 AST_REWRITE_PROPERTY(Block, node, block);
383 AST_REWRITE_PROPERTY(VariableProxy, node, result);
388 RewritableExpression* node) {
389 REWRITE_THIS(node);
390 AST_REWRITE(Expression, node->expression(), node->Rewrite(replacement));