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 (function(global, utils) { | 5 (function(global, utils) { |
6 | 6 |
7 "use strict"; | 7 "use strict"; |
8 | 8 |
9 %CheckIsBootstrapping(); | 9 %CheckIsBootstrapping(); |
10 | 10 |
11 // ------------------------------------------------------------------- | 11 // ------------------------------------------------------------------- |
12 // Imports | 12 // Imports |
13 | 13 |
14 var ArrayValues; | 14 var ArrayValues; |
15 var GlobalArray = global.Array; | 15 var GlobalArray = global.Array; |
16 var GlobalArrayBuffer = global.ArrayBuffer; | 16 var GlobalArrayBuffer = global.ArrayBuffer; |
17 var GlobalDataView = global.DataView; | 17 var GlobalDataView = global.DataView; |
18 var GlobalObject = global.Object; | 18 var GlobalObject = global.Object; |
19 var InternalArray = utils.InternalArray; | 19 var InternalArray = utils.InternalArray; |
20 var iteratorSymbol = utils.ImportNow("iterator_symbol"); | 20 var iteratorSymbol = utils.ImportNow("iterator_symbol"); |
21 var ToPositiveInteger; | 21 var ToPositiveInteger; |
22 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); | 22 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
| 23 var MaxSimple; |
| 24 var MinSimple; |
| 25 |
| 26 utils.Import(function(from) { |
| 27 MaxSimple = from.MaxSimple; |
| 28 MinSimple = from.MinSimple; |
| 29 }); |
23 | 30 |
24 macro TYPED_ARRAYS(FUNCTION) | 31 macro TYPED_ARRAYS(FUNCTION) |
25 // arrayIds below should be synchronized with Runtime_TypedArrayInitialize. | 32 // arrayIds below should be synchronized with Runtime_TypedArrayInitialize. |
26 FUNCTION(1, Uint8Array, 1) | 33 FUNCTION(1, Uint8Array, 1) |
27 FUNCTION(2, Int8Array, 1) | 34 FUNCTION(2, Int8Array, 1) |
28 FUNCTION(3, Uint16Array, 2) | 35 FUNCTION(3, Uint16Array, 2) |
29 FUNCTION(4, Int16Array, 2) | 36 FUNCTION(4, Int16Array, 2) |
30 FUNCTION(5, Uint32Array, 4) | 37 FUNCTION(5, Uint32Array, 4) |
31 FUNCTION(6, Int32Array, 4) | 38 FUNCTION(6, Int32Array, 4) |
32 FUNCTION(7, Float32Array, 4) | 39 FUNCTION(7, Float32Array, 4) |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 var beginInt = TO_INTEGER(begin); | 213 var beginInt = TO_INTEGER(begin); |
207 if (!IS_UNDEFINED(end)) { | 214 if (!IS_UNDEFINED(end)) { |
208 var endInt = TO_INTEGER(end); | 215 var endInt = TO_INTEGER(end); |
209 var srcLength = %_TypedArrayGetLength(this); | 216 var srcLength = %_TypedArrayGetLength(this); |
210 } else { | 217 } else { |
211 var srcLength = %_TypedArrayGetLength(this); | 218 var srcLength = %_TypedArrayGetLength(this); |
212 var endInt = srcLength; | 219 var endInt = srcLength; |
213 } | 220 } |
214 | 221 |
215 if (beginInt < 0) { | 222 if (beginInt < 0) { |
216 beginInt = MAX_SIMPLE(0, srcLength + beginInt); | 223 beginInt = MaxSimple(0, srcLength + beginInt); |
217 } else { | 224 } else { |
218 beginInt = MIN_SIMPLE(beginInt, srcLength); | 225 beginInt = MinSimple(beginInt, srcLength); |
219 } | 226 } |
220 | 227 |
221 if (endInt < 0) { | 228 if (endInt < 0) { |
222 endInt = MAX_SIMPLE(0, srcLength + endInt); | 229 endInt = MaxSimple(0, srcLength + endInt); |
223 } else { | 230 } else { |
224 endInt = MIN_SIMPLE(endInt, srcLength); | 231 endInt = MinSimple(endInt, srcLength); |
225 } | 232 } |
226 | 233 |
227 if (endInt < beginInt) { | 234 if (endInt < beginInt) { |
228 endInt = beginInt; | 235 endInt = beginInt; |
229 } | 236 } |
230 | 237 |
231 var newLength = endInt - beginInt; | 238 var newLength = endInt - beginInt; |
232 var beginByteOffset = | 239 var beginByteOffset = |
233 %_ArrayBufferViewGetByteOffset(this) + beginInt * ELEMENT_SIZE; | 240 %_ArrayBufferViewGetByteOffset(this) + beginInt * ELEMENT_SIZE; |
234 return new GlobalNAME(%TypedArrayGetBuffer(this), | 241 return new GlobalNAME(%TypedArrayGetBuffer(this), |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 "setUint32", DataViewSetUint32JS, | 511 "setUint32", DataViewSetUint32JS, |
505 | 512 |
506 "getFloat32", DataViewGetFloat32JS, | 513 "getFloat32", DataViewGetFloat32JS, |
507 "setFloat32", DataViewSetFloat32JS, | 514 "setFloat32", DataViewSetFloat32JS, |
508 | 515 |
509 "getFloat64", DataViewGetFloat64JS, | 516 "getFloat64", DataViewGetFloat64JS, |
510 "setFloat64", DataViewSetFloat64JS | 517 "setFloat64", DataViewSetFloat64JS |
511 ]); | 518 ]); |
512 | 519 |
513 }) | 520 }) |
OLD | NEW |