Changeset 132759 in webkit for trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp
- Timestamp:
- Oct 28, 2012, 9:02:08 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp
r132745 r132759 43 43 return ArrayMode(Array::SelectUsingPredictions); 44 44 case asArrayModes(NonArrayWithContiguous): 45 return ArrayMode(Array::Contiguous, Array::NonArray, Array::AsIs).with Speculation(profile, makeSafe);45 return ArrayMode(Array::Contiguous, Array::NonArray, Array::AsIs).withProfile(profile, makeSafe); 46 46 case asArrayModes(ArrayWithContiguous): 47 return ArrayMode(Array::Contiguous, Array::Array, Array::AsIs).with Speculation(profile, makeSafe);47 return ArrayMode(Array::Contiguous, Array::Array, Array::AsIs).withProfile(profile, makeSafe); 48 48 case asArrayModes(NonArrayWithContiguous) | asArrayModes(ArrayWithContiguous): 49 return ArrayMode(Array::Contiguous, Array::PossiblyArray, Array::AsIs).with Speculation(profile, makeSafe);49 return ArrayMode(Array::Contiguous, Array::PossiblyArray, Array::AsIs).withProfile(profile, makeSafe); 50 50 case asArrayModes(NonArrayWithArrayStorage): 51 return ArrayMode(Array::ArrayStorage, Array::NonArray, Array::AsIs).with Speculation(profile, makeSafe);51 return ArrayMode(Array::ArrayStorage, Array::NonArray, Array::AsIs).withProfile(profile, makeSafe); 52 52 case asArrayModes(NonArrayWithSlowPutArrayStorage): 53 53 case asArrayModes(NonArrayWithArrayStorage) | asArrayModes(NonArrayWithSlowPutArrayStorage): 54 return ArrayMode(Array::SlowPutArrayStorage, Array::NonArray, Array::AsIs).with Speculation(profile, makeSafe);54 return ArrayMode(Array::SlowPutArrayStorage, Array::NonArray, Array::AsIs).withProfile(profile, makeSafe); 55 55 case asArrayModes(ArrayWithArrayStorage): 56 return ArrayMode(Array::ArrayStorage, Array::Array, Array::AsIs).with Speculation(profile, makeSafe);56 return ArrayMode(Array::ArrayStorage, Array::Array, Array::AsIs).withProfile(profile, makeSafe); 57 57 case asArrayModes(ArrayWithSlowPutArrayStorage): 58 58 case asArrayModes(ArrayWithArrayStorage) | asArrayModes(ArrayWithSlowPutArrayStorage): 59 return ArrayMode(Array::SlowPutArrayStorage, Array::Array, Array::AsIs).with Speculation(profile, makeSafe);59 return ArrayMode(Array::SlowPutArrayStorage, Array::Array, Array::AsIs).withProfile(profile, makeSafe); 60 60 case asArrayModes(NonArrayWithArrayStorage) | asArrayModes(ArrayWithArrayStorage): 61 return ArrayMode(Array::ArrayStorage, Array::PossiblyArray, Array::AsIs).with Speculation(profile, makeSafe);61 return ArrayMode(Array::ArrayStorage, Array::PossiblyArray, Array::AsIs).withProfile(profile, makeSafe); 62 62 case asArrayModes(NonArrayWithSlowPutArrayStorage) | asArrayModes(ArrayWithSlowPutArrayStorage): 63 63 case asArrayModes(NonArrayWithArrayStorage) | asArrayModes(ArrayWithArrayStorage) | asArrayModes(NonArrayWithSlowPutArrayStorage) | asArrayModes(ArrayWithSlowPutArrayStorage): 64 return ArrayMode(Array::SlowPutArrayStorage, Array::PossiblyArray, Array::AsIs).with Speculation(profile, makeSafe);64 return ArrayMode(Array::SlowPutArrayStorage, Array::PossiblyArray, Array::AsIs).withProfile(profile, makeSafe); 65 65 case asArrayModes(NonArrayWithContiguous) | asArrayModes(NonArrayWithArrayStorage): 66 return ArrayMode(Array::ArrayStorage, Array::NonArray, Array::Convert).with Speculation(profile, makeSafe);66 return ArrayMode(Array::ArrayStorage, Array::NonArray, Array::Convert).withProfile(profile, makeSafe); 67 67 case asArrayModes(ArrayWithContiguous) | asArrayModes(ArrayWithArrayStorage): 68 return ArrayMode(Array::ArrayStorage, Array::Array, Array::Convert).with Speculation(profile, makeSafe);68 return ArrayMode(Array::ArrayStorage, Array::Array, Array::Convert).withProfile(profile, makeSafe); 69 69 case asArrayModes(NonArrayWithContiguous) | asArrayModes(NonArrayWithArrayStorage) | asArrayModes(ArrayWithContiguous) | asArrayModes(ArrayWithArrayStorage): 70 return ArrayMode(Array::ArrayStorage, Array::PossiblyArray, Array::Convert).with Speculation(profile, makeSafe);70 return ArrayMode(Array::ArrayStorage, Array::PossiblyArray, Array::Convert).withProfile(profile, makeSafe); 71 71 case asArrayModes(NonArray) | asArrayModes(NonArrayWithContiguous): 72 72 if (action == Array::Write && !profile->mayInterceptIndexedAccesses()) … … 163 163 164 164 case Array::Contiguous: 165 if ( arrayClass() == Array::Array) {165 if (isJSArray()) { 166 166 if (arrayModesAlreadyChecked(value.m_arrayModes, asArrayModes(ArrayWithContiguous))) 167 167 return true; … … 176 176 177 177 case Array::ArrayStorage: 178 if ( arrayClass() == Array::Array) {178 if (isJSArray()) { 179 179 if (arrayModesAlreadyChecked(value.m_arrayModes, asArrayModes(ArrayWithArrayStorage))) 180 180 return true; … … 189 189 190 190 case Array::SlowPutArrayStorage: 191 if ( arrayClass() == Array::Array) {191 if (isJSArray()) { 192 192 if (arrayModesAlreadyChecked(value.m_arrayModes, asArrayModes(ArrayWithArrayStorage) | asArrayModes(ArrayWithSlowPutArrayStorage))) 193 193 return true; … … 293 293 case Array::Array: 294 294 return "Array"; 295 case Array::OriginalArray: 296 return "OriginalArray"; 295 297 case Array::NonArray: 296 298 return "NonArray";
Note:
See TracChangeset
for help on using the changeset viewer.