| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library tree_ir.optimization.pull_into_initializers; | 5 library tree_ir.optimization.pull_into_initializers; |
| 6 | 6 |
| 7 import 'optimization.dart' show Pass; | 7 import 'optimization.dart' show Pass; |
| 8 import '../tree_ir_nodes.dart'; | 8 import '../tree_ir_nodes.dart'; |
| 9 | 9 |
| 10 /// Where a variable has been assigned. | 10 /// Where a variable has been assigned. |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 ++impureCounter; | 252 ++impureCounter; |
| 253 return node; | 253 return node; |
| 254 } | 254 } |
| 255 | 255 |
| 256 Expression visitInvokeConstructor(InvokeConstructor node) { | 256 Expression visitInvokeConstructor(InvokeConstructor node) { |
| 257 super.visitInvokeConstructor(node); | 257 super.visitInvokeConstructor(node); |
| 258 ++impureCounter; | 258 ++impureCounter; |
| 259 return node; | 259 return node; |
| 260 } | 260 } |
| 261 | 261 |
| 262 Expression visitOneShotInterceptor(OneShotInterceptor node) { |
| 263 super.visitOneShotInterceptor(node); |
| 264 ++impureCounter; |
| 265 return node; |
| 266 } |
| 267 |
| 262 Expression visitConditional(Conditional node) { | 268 Expression visitConditional(Conditional node) { |
| 263 node.condition = visitExpression(node.condition); | 269 node.condition = visitExpression(node.condition); |
| 264 // Visit the branches to detect impure subexpressions, but do not pull | 270 // Visit the branches to detect impure subexpressions, but do not pull |
| 265 // expressions out of the branch. | 271 // expressions out of the branch. |
| 266 ++branchCounter; | 272 ++branchCounter; |
| 267 node.thenExpression = visitExpression(node.thenExpression); | 273 node.thenExpression = visitExpression(node.thenExpression); |
| 268 node.elseExpression = visitExpression(node.elseExpression); | 274 node.elseExpression = visitExpression(node.elseExpression); |
| 269 --branchCounter; | 275 --branchCounter; |
| 270 return node; | 276 return node; |
| 271 } | 277 } |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 | 372 |
| 367 @override | 373 @override |
| 368 Expression visitForeignExpression(ForeignExpression node) { | 374 Expression visitForeignExpression(ForeignExpression node) { |
| 369 rewriteList(node.arguments); | 375 rewriteList(node.arguments); |
| 370 if (node.nativeBehavior.sideEffects.hasSideEffects()) { | 376 if (node.nativeBehavior.sideEffects.hasSideEffects()) { |
| 371 ++impureCounter; | 377 ++impureCounter; |
| 372 } | 378 } |
| 373 return node; | 379 return node; |
| 374 } | 380 } |
| 375 } | 381 } |
| OLD | NEW |