Chromium Code Reviews| Index: pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart |
| diff --git a/pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart b/pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart |
| index 32a8cffb065d6e313599dec255ff5bc4a3d16b9f..fb69832b0009e7044a3436479313c5e32c27acfa 100644 |
| --- a/pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart |
| +++ b/pkg/compiler/lib/src/tree_ir/optimization/variable_merger.dart |
| @@ -421,6 +421,7 @@ Map<Variable, Variable> _computeRegisterAllocation(List<Block> blocks, |
| // cannot be merged with each other. Ensure that they are not substituted. |
| // Other variables can still be substituted by a parameter. |
| for (Variable parameter in parameters) { |
| + if (parameter.isCaptured) continue; |
|
asgerf
2015/04/15 10:43:39
This is a bug that snuck in with the last change.
|
| subst[parameter] = parameter; |
| registers[group(parameter)] = <Variable>[parameter]; |
| } |