Lines Matching refs:node
16 #define REWRITE_THIS(node) \
18 if (!RewriteExpression(node)) return; \
54 VariableDeclaration* node) {
61 FunctionDeclaration* node) {
63 AST_REWRITE_PROPERTY(FunctionLiteral, node, fun);
67 void AstExpressionRewriter::VisitImportDeclaration(ImportDeclaration* node) {
73 void AstExpressionRewriter::VisitExportDeclaration(ExportDeclaration* node) {
79 void AstExpressionRewriter::VisitBlock(Block* node) {
80 VisitStatements(node->statements());
85 ExpressionStatement* node) {
86 AST_REWRITE_PROPERTY(Expression, node, expression);
90 void AstExpressionRewriter::VisitEmptyStatement(EmptyStatement* node) {
96 SloppyBlockFunctionStatement* node) {
97 AST_REWRITE_PROPERTY(Statement, node, statement);
101 void AstExpressionRewriter::VisitIfStatement(IfStatement* node) {
102 AST_REWRITE_PROPERTY(Expression, node, condition);
103 AST_REWRITE_PROPERTY(Statement, node, then_statement);
104 AST_REWRITE_PROPERTY(Statement, node, else_statement);
108 void AstExpressionRewriter::VisitContinueStatement(ContinueStatement* node) {
113 void AstExpressionRewriter::VisitBreakStatement(BreakStatement* node) {
118 void AstExpressionRewriter::VisitReturnStatement(ReturnStatement* node) {
119 AST_REWRITE_PROPERTY(Expression, node, expression);
123 void AstExpressionRewriter::VisitWithStatement(WithStatement* node) {
124 AST_REWRITE_PROPERTY(Expression, node, expression);
125 AST_REWRITE_PROPERTY(Statement, node, statement);
129 void AstExpressionRewriter::VisitSwitchStatement(SwitchStatement* node) {
130 AST_REWRITE_PROPERTY(Expression, node, tag);
131 ZoneList<CaseClause*>* clauses = node->cases();
138 void AstExpressionRewriter::VisitDoWhileStatement(DoWhileStatement* node) {
139 AST_REWRITE_PROPERTY(Expression, node, cond);
140 AST_REWRITE_PROPERTY(Statement, node, body);
144 void AstExpressionRewriter::VisitWhileStatement(WhileStatement* node) {
145 AST_REWRITE_PROPERTY(Expression, node, cond);
146 AST_REWRITE_PROPERTY(Statement, node, body);
150 void AstExpressionRewriter::VisitForStatement(ForStatement* node) {
151 if (node->init() != nullptr) {
152 AST_REWRITE_PROPERTY(Statement, node, init);
154 if (node->cond() != nullptr) {
155 AST_REWRITE_PROPERTY(Expression, node, cond);
157 if (node->next() != nullptr) {
158 AST_REWRITE_PROPERTY(Statement, node, next);
160 AST_REWRITE_PROPERTY(Statement, node, body);
164 void AstExpressionRewriter::VisitForInStatement(ForInStatement* node) {
165 AST_REWRITE_PROPERTY(Expression, node, each);
166 AST_REWRITE_PROPERTY(Expression, node, subject);
167 AST_REWRITE_PROPERTY(Statement, node, body);
171 void AstExpressionRewriter::VisitForOfStatement(ForOfStatement* node) {
172 AST_REWRITE_PROPERTY(Expression, node, assign_iterator);
173 AST_REWRITE_PROPERTY(Expression, node, next_result);
174 AST_REWRITE_PROPERTY(Expression, node, result_done);
175 AST_REWRITE_PROPERTY(Expression, node, assign_each);
176 AST_REWRITE_PROPERTY(Statement, node, body);
180 void AstExpressionRewriter::VisitTryCatchStatement(TryCatchStatement* node) {
181 AST_REWRITE_PROPERTY(Block, node, try_block);
183 AST_REWRITE_PROPERTY(Block, node, catch_block);
188 TryFinallyStatement* node) {
189 AST_REWRITE_PROPERTY(Block, node, try_block);
190 AST_REWRITE_PROPERTY(Block, node, finally_block);
194 void AstExpressionRewriter::VisitDebuggerStatement(DebuggerStatement* node) {
199 void AstExpressionRewriter::VisitFunctionLiteral(FunctionLiteral* node) {
200 REWRITE_THIS(node);
201 VisitDeclarations(node->scope()->declarations());
202 ZoneList<Statement*>* body = node->body();
207 void AstExpressionRewriter::VisitClassLiteral(ClassLiteral* node) {
208 REWRITE_THIS(node);
210 if (node->extends() != nullptr) {
211 AST_REWRITE_PROPERTY(Expression, node, extends);
213 AST_REWRITE_PROPERTY(FunctionLiteral, node, constructor);
214 ZoneList<typename ClassLiteral::Property*>* properties = node->properties();
222 NativeFunctionLiteral* node) {
223 REWRITE_THIS(node);
228 void AstExpressionRewriter::VisitConditional(Conditional* node) {
229 REWRITE_THIS(node);
230 AST_REWRITE_PROPERTY(Expression, node, condition);
231 AST_REWRITE_PROPERTY(Expression, node, then_expression);
232 AST_REWRITE_PROPERTY(Expression, node, else_expression);
236 void AstExpressionRewriter::VisitVariableProxy(VariableProxy* node) {
237 REWRITE_THIS(node);
242 void AstExpressionRewriter::VisitLiteral(Literal* node) {
243 REWRITE_THIS(node);
248 void AstExpressionRewriter::VisitRegExpLiteral(RegExpLiteral* node) {
249 REWRITE_THIS(node);
254 void AstExpressionRewriter::VisitObjectLiteral(ObjectLiteral* node) {
255 REWRITE_THIS(node);
256 ZoneList<typename ObjectLiteral::Property*>* properties = node->properties();
271 void AstExpressionRewriter::VisitArrayLiteral(ArrayLiteral* node) {
272 REWRITE_THIS(node);
273 VisitExpressions(node->values());
277 void AstExpressionRewriter::VisitAssignment(Assignment* node) {
278 REWRITE_THIS(node);
279 AST_REWRITE_PROPERTY(Expression, node, target);
280 AST_REWRITE_PROPERTY(Expression, node, value);
284 void AstExpressionRewriter::VisitYield(Yield* node) {
285 REWRITE_THIS(node);
286 AST_REWRITE_PROPERTY(Expression, node, generator_object);
287 AST_REWRITE_PROPERTY(Expression, node, expression);
291 void AstExpressionRewriter::VisitThrow(Throw* node) {
292 REWRITE_THIS(node);
293 AST_REWRITE_PROPERTY(Expression, node, exception);
297 void AstExpressionRewriter::VisitProperty(Property* node) {
298 REWRITE_THIS(node);
299 if (node == nullptr) return;
300 AST_REWRITE_PROPERTY(Expression, node, obj);
301 AST_REWRITE_PROPERTY(Expression, node, key);
305 void AstExpressionRewriter::VisitCall(Call* node) {
306 REWRITE_THIS(node);
307 AST_REWRITE_PROPERTY(Expression, node, expression);
308 VisitExpressions(node->arguments());
312 void AstExpressionRewriter::VisitCallNew(CallNew* node) {
313 REWRITE_THIS(node);
314 AST_REWRITE_PROPERTY(Expression, node, expression);
315 VisitExpressions(node->arguments());
319 void AstExpressionRewriter::VisitCallRuntime(CallRuntime* node) {
320 REWRITE_THIS(node);
321 VisitExpressions(node->arguments());
325 void AstExpressionRewriter::VisitUnaryOperation(UnaryOperation* node) {
326 REWRITE_THIS(node);
327 AST_REWRITE_PROPERTY(Expression, node, expression);
331 void AstExpressionRewriter::VisitCountOperation(CountOperation* node) {
332 REWRITE_THIS(node);
333 AST_REWRITE_PROPERTY(Expression, node, expression);
337 void AstExpressionRewriter::VisitBinaryOperation(BinaryOperation* node) {
338 REWRITE_THIS(node);
339 AST_REWRITE_PROPERTY(Expression, node, left);
340 AST_REWRITE_PROPERTY(Expression, node, right);
344 void AstExpressionRewriter::VisitCompareOperation(CompareOperation* node) {
345 REWRITE_THIS(node);
346 AST_REWRITE_PROPERTY(Expression, node, left);
347 AST_REWRITE_PROPERTY(Expression, node, right);
351 void AstExpressionRewriter::VisitSpread(Spread* node) {
352 REWRITE_THIS(node);
353 AST_REWRITE_PROPERTY(Expression, node, expression);
357 void AstExpressionRewriter::VisitThisFunction(ThisFunction* node) {
358 REWRITE_THIS(node);
364 SuperPropertyReference* node) {
365 REWRITE_THIS(node);
366 AST_REWRITE_PROPERTY(VariableProxy, node, this_var);
367 AST_REWRITE_PROPERTY(Expression, node, home_object);
371 void AstExpressionRewriter::VisitSuperCallReference(SuperCallReference* node) {
372 REWRITE_THIS(node);
373 AST_REWRITE_PROPERTY(VariableProxy, node, this_var);
374 AST_REWRITE_PROPERTY(VariableProxy, node, new_target_var);
375 AST_REWRITE_PROPERTY(VariableProxy, node, this_function_var);
379 void AstExpressionRewriter::VisitCaseClause(CaseClause* node) {
380 if (!node->is_default()) {
381 AST_REWRITE_PROPERTY(Expression, node, label);
383 VisitStatements(node->statements());
387 void AstExpressionRewriter::VisitEmptyParentheses(EmptyParentheses* node) {
392 void AstExpressionRewriter::VisitDoExpression(DoExpression* node) {
393 REWRITE_THIS(node);
394 AST_REWRITE_PROPERTY(Block, node, block);
395 AST_REWRITE_PROPERTY(VariableProxy, node, result);
400 RewritableExpression* node) {
401 REWRITE_THIS(node);
402 AST_REWRITE(Expression, node->expression(), node->Rewrite(replacement));