| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; | 5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; | 
| 6 import '../common/names.dart' show Selectors; | 6 import '../common/names.dart' show Selectors; | 
| 7 import '../common/tasks.dart' show CompilerTask; | 7 import '../common/tasks.dart' show CompilerTask; | 
| 8 import '../compiler.dart' show Compiler; | 8 import '../compiler.dart' show Compiler; | 
| 9 import '../constants/constant_system.dart'; | 9 import '../constants/constant_system.dart'; | 
| 10 import '../constants/values.dart'; | 10 import '../constants/values.dart'; | 
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 161 /// Returns `true` if [mask] represents only types that have a length that | 161 /// Returns `true` if [mask] represents only types that have a length that | 
| 162 /// cannot change.  The current implementation is conservative for the purpose | 162 /// cannot change.  The current implementation is conservative for the purpose | 
| 163 /// of identifying gvn-able lengths and mis-identifies some unions of fixed | 163 /// of identifying gvn-able lengths and mis-identifies some unions of fixed | 
| 164 /// length indexables (see TODO) as not fixed length. | 164 /// length indexables (see TODO) as not fixed length. | 
| 165 bool isFixedLength(mask, ClosedWorld closedWorld) { | 165 bool isFixedLength(mask, ClosedWorld closedWorld) { | 
| 166   if (mask.isContainer && mask.length != null) { | 166   if (mask.isContainer && mask.length != null) { | 
| 167     // A container on which we have inferred the length. | 167     // A container on which we have inferred the length. | 
| 168     return true; | 168     return true; | 
| 169   } | 169   } | 
| 170   // TODO(sra): Recognize any combination of fixed length indexables. | 170   // TODO(sra): Recognize any combination of fixed length indexables. | 
| 171   if (mask.containsOnly(closedWorld.backendClasses.fixedListClass) || | 171   if (mask.containsOnly(closedWorld.commonElements.jsFixedArrayClass) || | 
| 172       mask.containsOnly(closedWorld.backendClasses.constListClass) || | 172       mask.containsOnly(closedWorld.commonElements.jsUnmodifiableArrayClass) || | 
| 173       mask.containsOnlyString(closedWorld) || | 173       mask.containsOnlyString(closedWorld) || | 
| 174       closedWorld.commonMasks.isTypedArray(mask)) { | 174       closedWorld.commonMasks.isTypedArray(mask)) { | 
| 175     return true; | 175     return true; | 
| 176   } | 176   } | 
| 177   return false; | 177   return false; | 
| 178 } | 178 } | 
| 179 | 179 | 
| 180 /** | 180 /** | 
| 181  * If both inputs to known operations are available execute the operation at | 181  * If both inputs to known operations are available execute the operation at | 
| 182  * compile-time. | 182  * compile-time. | 
| (...skipping 2678 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2861 | 2861 | 
| 2862     keyedValues.forEach((receiver, values) { | 2862     keyedValues.forEach((receiver, values) { | 
| 2863       result.keyedValues[receiver] = | 2863       result.keyedValues[receiver] = | 
| 2864           new Map<HInstruction, HInstruction>.from(values); | 2864           new Map<HInstruction, HInstruction>.from(values); | 
| 2865     }); | 2865     }); | 
| 2866 | 2866 | 
| 2867     result.nonEscapingReceivers.addAll(nonEscapingReceivers); | 2867     result.nonEscapingReceivers.addAll(nonEscapingReceivers); | 
| 2868     return result; | 2868     return result; | 
| 2869   } | 2869   } | 
| 2870 } | 2870 } | 
| OLD | NEW | 
|---|