| OLD | NEW | 
|    1 // Copyright 2013 the V8 project authors. All rights reserved. |    1 // Copyright 2013 the V8 project authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 var $innerArrayCopyWithin; |    5 var $innerArrayCopyWithin; | 
|    6 var $innerArrayFill; |    6 var $innerArrayFill; | 
|    7 var $innerArrayFind; |    7 var $innerArrayFind; | 
|    8 var $innerArrayFindIndex; |    8 var $innerArrayFindIndex; | 
|    9 var $arrayFrom; |    9 var $arrayFrom; | 
|   10  |   10  | 
|   11 (function(global, utils) { |   11 (function(global, exports) { | 
|   12  |   12  | 
|   13 'use strict'; |   13 'use strict'; | 
|   14  |   14  | 
|   15 %CheckIsBootstrapping(); |   15 %CheckIsBootstrapping(); | 
|   16  |   16  | 
|   17 // ------------------------------------------------------------------- |  | 
|   18 // Imports |  | 
|   19  |  | 
|   20 var GlobalArray = global.Array; |   17 var GlobalArray = global.Array; | 
|   21 var GlobalSymbol = global.Symbol; |   18 var GlobalSymbol = global.Symbol; | 
|   22  |   19  | 
|   23 var MathMax; |  | 
|   24 var MathMin; |  | 
|   25  |  | 
|   26 utils.Import(function(from) { |  | 
|   27   MathMax = from.MathMax; |  | 
|   28   MathMin = from.MathMin; |  | 
|   29 }); |  | 
|   30  |  | 
|   31 // ------------------------------------------------------------------- |   20 // ------------------------------------------------------------------- | 
|   32  |   21  | 
|   33 function InnerArrayCopyWithin(target, start, end, array, length) { |   22 function InnerArrayCopyWithin(target, start, end, array, length) { | 
|   34   target = TO_INTEGER(target); |   23   target = TO_INTEGER(target); | 
|   35   var to; |   24   var to; | 
|   36   if (target < 0) { |   25   if (target < 0) { | 
|   37     to = MathMax(length + target, 0); |   26     to = $max(length + target, 0); | 
|   38   } else { |   27   } else { | 
|   39     to = MathMin(target, length); |   28     to = $min(target, length); | 
|   40   } |   29   } | 
|   41  |   30  | 
|   42   start = TO_INTEGER(start); |   31   start = TO_INTEGER(start); | 
|   43   var from; |   32   var from; | 
|   44   if (start < 0) { |   33   if (start < 0) { | 
|   45     from = MathMax(length + start, 0); |   34     from = $max(length + start, 0); | 
|   46   } else { |   35   } else { | 
|   47     from = MathMin(start, length); |   36     from = $min(start, length); | 
|   48   } |   37   } | 
|   49  |   38  | 
|   50   end = IS_UNDEFINED(end) ? length : TO_INTEGER(end); |   39   end = IS_UNDEFINED(end) ? length : TO_INTEGER(end); | 
|   51   var final; |   40   var final; | 
|   52   if (end < 0) { |   41   if (end < 0) { | 
|   53     final = MathMax(length + end, 0); |   42     final = $max(length + end, 0); | 
|   54   } else { |   43   } else { | 
|   55     final = MathMin(end, length); |   44     final = $min(end, length); | 
|   56   } |   45   } | 
|   57  |   46  | 
|   58   var count = MathMin(final - from, length - to); |   47   var count = $min(final - from, length - to); | 
|   59   var direction = 1; |   48   var direction = 1; | 
|   60   if (from < to && to < (from + count)) { |   49   if (from < to && to < (from + count)) { | 
|   61     direction = -1; |   50     direction = -1; | 
|   62     from = from + count - 1; |   51     from = from + count - 1; | 
|   63     to = to + count - 1; |   52     to = to + count - 1; | 
|   64   } |   53   } | 
|   65  |   54  | 
|   66   while (count > 0) { |   55   while (count > 0) { | 
|   67     if (from in array) { |   56     if (from in array) { | 
|   68       array[to] = array[from]; |   57       array[to] = array[from]; | 
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  302  |  291  | 
|  303 // Set up the non-enumerable functions on the Array prototype object. |  292 // Set up the non-enumerable functions on the Array prototype object. | 
|  304 $installFunctions(GlobalArray.prototype, DONT_ENUM, [ |  293 $installFunctions(GlobalArray.prototype, DONT_ENUM, [ | 
|  305   "copyWithin", ArrayCopyWithin, |  294   "copyWithin", ArrayCopyWithin, | 
|  306   "find", ArrayFind, |  295   "find", ArrayFind, | 
|  307   "findIndex", ArrayFindIndex, |  296   "findIndex", ArrayFindIndex, | 
|  308   "fill", ArrayFill |  297   "fill", ArrayFill | 
|  309 ]); |  298 ]); | 
|  310  |  299  | 
|  311 }) |  300 }) | 
| OLD | NEW |