diff options
author | Ben Murdoch <benm@google.com> | 2012-05-21 14:52:42 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2012-05-21 14:52:42 +0100 |
commit | 5710ceac03e2cf7a164ad7393b5a6b6114ea45e6 (patch) | |
tree | 7aef20da44c3200a8ded383f9bae474cdb93e595 /src/array.js | |
parent | 84774f4b8cb56f14184c96dd08fb2ae119d986e0 (diff) | |
download | android_external_v8-5710ceac03e2cf7a164ad7393b5a6b6114ea45e6.tar.gz android_external_v8-5710ceac03e2cf7a164ad7393b5a6b6114ea45e6.tar.bz2 android_external_v8-5710ceac03e2cf7a164ad7393b5a6b6114ea45e6.zip |
Merge V8 at 3.9.24.28
Bug: 6519007 / 6517949 / 6518772
Change-Id: Idc3e1297aeafa0274fa9fc321e91b774091d1b50
Diffstat (limited to 'src/array.js')
-rw-r--r-- | src/array.js | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/array.js b/src/array.js index daa75d57..00a4fee5 100644 --- a/src/array.js +++ b/src/array.js @@ -823,7 +823,8 @@ function ArraySort(comparefn) { var element = a[i]; var order = %_CallFunction(receiver, element, pivot, comparefn); if (order < 0) { - %_SwapElements(a, i, low_end); + a[i] = a[low_end]; + a[low_end] = element; low_end++; } else if (order > 0) { do { @@ -832,9 +833,12 @@ function ArraySort(comparefn) { var top_elem = a[high_start]; order = %_CallFunction(receiver, top_elem, pivot, comparefn); } while (order > 0); - %_SwapElements(a, i, high_start); + a[i] = a[high_start]; + a[high_start] = element; if (order < 0) { - %_SwapElements(a, i, low_end); + element = a[i]; + a[i] = a[low_end]; + a[low_end] = element; low_end++; } } |