| Index: lib/compiler/implementation/ssa/variable_allocator.dart
|
| diff --git a/lib/compiler/implementation/ssa/variable_allocator.dart b/lib/compiler/implementation/ssa/variable_allocator.dart
|
| index 8844a8c63c1ecb8e061fdda21edce8139dde40b4..cf149b17d3a1f9dac9387f3e974130a11c81c1db 100644
|
| --- a/lib/compiler/implementation/ssa/variable_allocator.dart
|
| +++ b/lib/compiler/implementation/ssa/variable_allocator.dart
|
| @@ -432,10 +432,14 @@ class VariableNamer {
|
| VariableNamer(LiveEnvironment environment, this.names, this.parameterNames)
|
| : usedNames = new Set<String>(),
|
| freeTemporaryNames = new List<String>() {
|
| - // [VariableNames.swapTemp] and [VariableNames.stateName] are being used
|
| - // throughout the function. Therefore we make sure no one uses it at any
|
| - // time.
|
| + // [VariableNames.swapTemp] is used when there is a cycle in a copy handler.
|
| + // Therefore we make sure no one uses it.
|
| usedNames.add(names.swapTemp);
|
| + // [VariableNames.stateName] is being used throughout a bailout function.
|
| + // Whenever a bailout-target is reached we set the state-variable to 0. We
|
| + // must therefore not have any local variable that could clash with the
|
| + // state variable.
|
| + // Therefore we make sure no one uses it at any time.
|
| usedNames.add(names.stateName);
|
|
|
| // All liveIns instructions must have a name at this point, so we
|
|
|