author | Dan Gohman <sunfish@google.com> |
Tue, 15 Oct 2013 20:49:43 -0700 | |
changeset 150866 | 21f1754f307bbcb16847cc296ca2665a70d94b46 |
parent 150865 | 22e6f21251c929738ed884970d4c011c032dff18 |
child 150867 | 465f94eb495238c72b56ab54e17845e144a28efe |
push id | 25469 |
push user | cbook@mozilla.com |
push date | Wed, 16 Oct 2013 10:46:01 +0000 |
treeherder | autoland@afae5911a1e0 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | nbp |
bugs | 923659 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/src/jit/RangeAnalysis.cpp +++ b/js/src/jit/RangeAnalysis.cpp @@ -1278,27 +1278,26 @@ MLoadTypedArrayElementStatic::computeRan { if (Range *range = GetTypedArrayRange(typedArray_->type())) setRange(range); } void MArrayLength::computeRange() { - Range *r = Range::NewUInt32Range(0, UINT32_MAX); - r->extendUInt32ToInt32Min(); - setRange(r); + // Array lengths can go up to UINT32_MAX, but we only create MArrayLength + // nodes when the value is known to be int32 (see the + // OBJECT_FLAG_LENGTH_OVERFLOW flag). + setRange(Range::NewUInt32Range(0, INT32_MAX)); } void MInitializedLength::computeRange() { - Range *r = Range::NewUInt32Range(0, UINT32_MAX); - r->extendUInt32ToInt32Min(); - setRange(r); + setRange(Range::NewUInt32Range(0, JSObject::NELEMENTS_LIMIT)); } void MTypedArrayLength::computeRange() { setRange(Range::NewUInt32Range(0, INT32_MAX)); }