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 |
(...skipping 10 matching lines...) Expand all Loading... | |
21 var GlobalArrayBufferPrototype = GlobalArrayBuffer.prototype; | 21 var GlobalArrayBufferPrototype = GlobalArrayBuffer.prototype; |
22 var GlobalDataView = global.DataView; | 22 var GlobalDataView = global.DataView; |
23 var GlobalObject = global.Object; | 23 var GlobalObject = global.Object; |
24 var InnerArrayCopyWithin; | 24 var InnerArrayCopyWithin; |
25 var InnerArrayEvery; | 25 var InnerArrayEvery; |
26 var InnerArrayFill; | 26 var InnerArrayFill; |
27 var InnerArrayFilter; | 27 var InnerArrayFilter; |
28 var InnerArrayFind; | 28 var InnerArrayFind; |
29 var InnerArrayFindIndex; | 29 var InnerArrayFindIndex; |
30 var InnerArrayForEach; | 30 var InnerArrayForEach; |
31 var InnerArrayIndexOf; | |
32 var InnerArrayJoin; | 31 var InnerArrayJoin; |
33 var InnerArrayLastIndexOf; | 32 var InnerArrayLastIndexOf; |
34 var InnerArrayReduce; | 33 var InnerArrayReduce; |
35 var InnerArrayReduceRight; | 34 var InnerArrayReduceRight; |
36 var InnerArraySome; | 35 var InnerArraySome; |
37 var InnerArraySort; | 36 var InnerArraySort; |
38 var InnerArrayToLocaleString; | 37 var InnerArrayToLocaleString; |
39 var InternalArray = utils.InternalArray; | 38 var InternalArray = utils.InternalArray; |
40 var IsNaN; | 39 var IsNaN; |
41 var MaxSimple; | 40 var MaxSimple; |
(...skipping 30 matching lines...) Expand all Loading... | |
72 ArrayValues = from.ArrayValues; | 71 ArrayValues = from.ArrayValues; |
73 GetIterator = from.GetIterator; | 72 GetIterator = from.GetIterator; |
74 GetMethod = from.GetMethod; | 73 GetMethod = from.GetMethod; |
75 InnerArrayCopyWithin = from.InnerArrayCopyWithin; | 74 InnerArrayCopyWithin = from.InnerArrayCopyWithin; |
76 InnerArrayEvery = from.InnerArrayEvery; | 75 InnerArrayEvery = from.InnerArrayEvery; |
77 InnerArrayFill = from.InnerArrayFill; | 76 InnerArrayFill = from.InnerArrayFill; |
78 InnerArrayFilter = from.InnerArrayFilter; | 77 InnerArrayFilter = from.InnerArrayFilter; |
79 InnerArrayFind = from.InnerArrayFind; | 78 InnerArrayFind = from.InnerArrayFind; |
80 InnerArrayFindIndex = from.InnerArrayFindIndex; | 79 InnerArrayFindIndex = from.InnerArrayFindIndex; |
81 InnerArrayForEach = from.InnerArrayForEach; | 80 InnerArrayForEach = from.InnerArrayForEach; |
82 InnerArrayIndexOf = from.InnerArrayIndexOf; | |
83 InnerArrayJoin = from.InnerArrayJoin; | 81 InnerArrayJoin = from.InnerArrayJoin; |
84 InnerArrayLastIndexOf = from.InnerArrayLastIndexOf; | 82 InnerArrayLastIndexOf = from.InnerArrayLastIndexOf; |
85 InnerArrayReduce = from.InnerArrayReduce; | 83 InnerArrayReduce = from.InnerArrayReduce; |
86 InnerArrayReduceRight = from.InnerArrayReduceRight; | 84 InnerArrayReduceRight = from.InnerArrayReduceRight; |
87 InnerArraySome = from.InnerArraySome; | 85 InnerArraySome = from.InnerArraySome; |
88 InnerArraySort = from.InnerArraySort; | 86 InnerArraySort = from.InnerArraySort; |
89 InnerArrayToLocaleString = from.InnerArrayToLocaleString; | 87 InnerArrayToLocaleString = from.InnerArrayToLocaleString; |
90 IsNaN = from.IsNaN; | 88 IsNaN = from.IsNaN; |
91 MaxSimple = from.MaxSimple; | 89 MaxSimple = from.MaxSimple; |
92 MinSimple = from.MinSimple; | 90 MinSimple = from.MinSimple; |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
565 | 563 |
566 return InnerArraySort(this, length, comparefn); | 564 return InnerArraySort(this, length, comparefn); |
567 } | 565 } |
568 | 566 |
569 | 567 |
570 // ES6 section 22.2.3.13 | 568 // ES6 section 22.2.3.13 |
571 function TypedArrayIndexOf(element, index) { | 569 function TypedArrayIndexOf(element, index) { |
572 if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray); | 570 if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray); |
573 | 571 |
574 var length = %_TypedArrayGetLength(this); | 572 var length = %_TypedArrayGetLength(this); |
575 return InnerArrayIndexOf(this, element, index, length); | 573 |
Benedikt Meurer
2016/08/11 04:02:24
You could do this change to typedarray.js as a sep
mattloring
2016/08/11 17:32:57
Opened here: https://codereview.chromium.org/22435
| |
574 if (length === 0) return -1; | |
575 var n = TO_INTEGER(index); | |
576 | |
577 var k; | |
578 if (n >= 0) { | |
579 k = n; | |
580 } else { | |
581 k = length + n; | |
582 if (k < 0) { | |
583 k = 0; | |
584 } | |
585 } | |
586 | |
587 while (k < length) { | |
588 var elementK = this[k]; | |
589 if (k in this && element === elementK) { | |
590 return k; | |
591 } | |
592 ++k; | |
593 } | |
594 return -1; | |
576 } | 595 } |
577 %FunctionSetLength(TypedArrayIndexOf, 1); | 596 %FunctionSetLength(TypedArrayIndexOf, 1); |
578 | 597 |
579 | 598 |
580 // ES6 section 22.2.3.16 | 599 // ES6 section 22.2.3.16 |
581 function TypedArrayLastIndexOf(element, index) { | 600 function TypedArrayLastIndexOf(element, index) { |
582 if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray); | 601 if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray); |
583 | 602 |
584 var length = %_TypedArrayGetLength(this); | 603 var length = %_TypedArrayGetLength(this); |
585 | 604 |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
922 "setUint32", DataViewSetUint32JS, | 941 "setUint32", DataViewSetUint32JS, |
923 | 942 |
924 "getFloat32", DataViewGetFloat32JS, | 943 "getFloat32", DataViewGetFloat32JS, |
925 "setFloat32", DataViewSetFloat32JS, | 944 "setFloat32", DataViewSetFloat32JS, |
926 | 945 |
927 "getFloat64", DataViewGetFloat64JS, | 946 "getFloat64", DataViewGetFloat64JS, |
928 "setFloat64", DataViewSetFloat64JS | 947 "setFloat64", DataViewSetFloat64JS |
929 ]); | 948 ]); |
930 | 949 |
931 }) | 950 }) |
OLD | NEW |