Changeset 163418 in webkit for trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp
- Timestamp:
- Feb 4, 2014, 5:03:21 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGArrayMode.cpp
r163027 r163418 50 50 if (action == Array::Write && !profile->mayInterceptIndexedAccesses(locker)) 51 51 return ArrayMode(Array::Undecided, nonArray, Array::OutOfBounds, Array::Convert); 52 return ArrayMode(Array::SelectUsingPredictions, nonArray) ;52 return ArrayMode(Array::SelectUsingPredictions, nonArray).withSpeculationFromProfile(locker, profile, makeSafe); 53 53 54 54 case asArrayModes(ArrayWithUndecided): … … 60 60 if (action == Array::Write && !profile->mayInterceptIndexedAccesses(locker)) 61 61 return ArrayMode(Array::Undecided, Array::PossiblyArray, Array::OutOfBounds, Array::Convert); 62 return ArrayMode(Array::SelectUsingPredictions) ;62 return ArrayMode(Array::SelectUsingPredictions).withSpeculationFromProfile(locker, profile, makeSafe); 63 63 64 64 case asArrayModes(NonArrayWithInt32): … … 101 101 default: 102 102 if ((observed & asArrayModes(NonArray)) && profile->mayInterceptIndexedAccesses(locker)) 103 return ArrayMode(Array::SelectUsingPredictions) ;103 return ArrayMode(Array::SelectUsingPredictions).withSpeculationFromProfile(locker, profile, makeSafe); 104 104 105 105 Array::Type type; … … 200 200 201 201 ArrayMode result; 202 if (graph.hasExitSite(codeOrigin, OutOfBounds) )202 if (graph.hasExitSite(codeOrigin, OutOfBounds) || !isInBounds()) 203 203 result = withSpeculation(Array::OutOfBounds); 204 204 else 205 result = *this;205 result = withSpeculation(Array::InBounds); 206 206 207 207 if (isInt8ArraySpeculation(base))
Note:
See TracChangeset
for help on using the changeset viewer.