| 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 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 %FunctionSetLength(TypedArrayIndexOf, 1); | 608 %FunctionSetLength(TypedArrayIndexOf, 1); |
| 609 | 609 |
| 610 | 610 |
| 611 // ES6 section 22.2.3.16 | 611 // ES6 section 22.2.3.16 |
| 612 function TypedArrayLastIndexOf(element, index) { | 612 function TypedArrayLastIndexOf(element, index) { |
| 613 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); | 613 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| 614 | 614 |
| 615 var length = %_TypedArrayGetLength(this); | 615 var length = %_TypedArrayGetLength(this); |
| 616 | 616 |
| 617 return InnerArrayLastIndexOf(this, element, index, length, | 617 return InnerArrayLastIndexOf(this, element, index, length, |
| 618 %_ArgumentsLength()); | 618 arguments.length); |
| 619 } | 619 } |
| 620 %FunctionSetLength(TypedArrayLastIndexOf, 1); | 620 %FunctionSetLength(TypedArrayLastIndexOf, 1); |
| 621 | 621 |
| 622 | 622 |
| 623 // ES6 draft 07-15-13, section 22.2.3.18 | 623 // ES6 draft 07-15-13, section 22.2.3.18 |
| 624 function TypedArrayMap(f, thisArg) { | 624 function TypedArrayMap(f, thisArg) { |
| 625 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); | 625 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| 626 | 626 |
| 627 var length = %_TypedArrayGetLength(this); | 627 var length = %_TypedArrayGetLength(this); |
| 628 var result = TypedArraySpeciesCreate(this, length); | 628 var result = TypedArraySpeciesCreate(this, length); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 return InnerArrayJoin(separator, this, length); | 672 return InnerArrayJoin(separator, this, length); |
| 673 } | 673 } |
| 674 | 674 |
| 675 | 675 |
| 676 // ES6 draft 07-15-13, section 22.2.3.19 | 676 // ES6 draft 07-15-13, section 22.2.3.19 |
| 677 function TypedArrayReduce(callback, current) { | 677 function TypedArrayReduce(callback, current) { |
| 678 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); | 678 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| 679 | 679 |
| 680 var length = %_TypedArrayGetLength(this); | 680 var length = %_TypedArrayGetLength(this); |
| 681 return InnerArrayReduce(callback, current, this, length, | 681 return InnerArrayReduce(callback, current, this, length, |
| 682 %_ArgumentsLength()); | 682 arguments.length); |
| 683 } | 683 } |
| 684 %FunctionSetLength(TypedArrayReduce, 1); | 684 %FunctionSetLength(TypedArrayReduce, 1); |
| 685 | 685 |
| 686 | 686 |
| 687 // ES6 draft 07-15-13, section 22.2.3.19 | 687 // ES6 draft 07-15-13, section 22.2.3.19 |
| 688 function TypedArrayReduceRight(callback, current) { | 688 function TypedArrayReduceRight(callback, current) { |
| 689 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); | 689 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| 690 | 690 |
| 691 var length = %_TypedArrayGetLength(this); | 691 var length = %_TypedArrayGetLength(this); |
| 692 return InnerArrayReduceRight(callback, current, this, length, | 692 return InnerArrayReduceRight(callback, current, this, length, |
| 693 %_ArgumentsLength()); | 693 arguments.length); |
| 694 } | 694 } |
| 695 %FunctionSetLength(TypedArrayReduceRight, 1); | 695 %FunctionSetLength(TypedArrayReduceRight, 1); |
| 696 | 696 |
| 697 | 697 |
| 698 function TypedArraySlice(start, end) { | 698 function TypedArraySlice(start, end) { |
| 699 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); | 699 if (!%_IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| 700 var len = %_TypedArrayGetLength(this); | 700 var len = %_TypedArrayGetLength(this); |
| 701 | 701 |
| 702 var relativeStart = TO_INTEGER(start); | 702 var relativeStart = TO_INTEGER(start); |
| 703 | 703 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 | 744 |
| 745 var length = %_TypedArrayGetLength(this); | 745 var length = %_TypedArrayGetLength(this); |
| 746 | 746 |
| 747 return InnerArrayIncludes(searchElement, fromIndex, this, length); | 747 return InnerArrayIncludes(searchElement, fromIndex, this, length); |
| 748 } | 748 } |
| 749 %FunctionSetLength(TypedArrayIncludes, 1); | 749 %FunctionSetLength(TypedArrayIncludes, 1); |
| 750 | 750 |
| 751 | 751 |
| 752 // ES6 draft 08-24-14, section 22.2.2.2 | 752 // ES6 draft 08-24-14, section 22.2.2.2 |
| 753 function TypedArrayOf() { | 753 function TypedArrayOf() { |
| 754 var length = %_ArgumentsLength(); | 754 var length = arguments.length; |
| 755 var array = TypedArrayCreate(this, length); | 755 var array = TypedArrayCreate(this, length); |
| 756 for (var i = 0; i < length; i++) { | 756 for (var i = 0; i < length; i++) { |
| 757 array[i] = %_Arguments(i); | 757 array[i] = arguments[i]; |
| 758 } | 758 } |
| 759 return array; | 759 return array; |
| 760 } | 760 } |
| 761 | 761 |
| 762 | 762 |
| 763 function TypedArrayFrom(source, mapfn, thisArg) { | 763 function TypedArrayFrom(source, mapfn, thisArg) { |
| 764 // TODO(littledan): Investigate if there is a receiver which could be | 764 // TODO(littledan): Investigate if there is a receiver which could be |
| 765 // faster to accumulate on than Array, e.g., a TypedVector. | 765 // faster to accumulate on than Array, e.g., a TypedVector. |
| 766 // TODO(littledan): Rewrite this code to ensure that things happen | 766 // TODO(littledan): Rewrite this code to ensure that things happen |
| 767 // in the right order, e.g., the constructor needs to be called before | 767 // in the right order, e.g., the constructor needs to be called before |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 911 FUNCTION(Float64) | 911 FUNCTION(Float64) |
| 912 endmacro | 912 endmacro |
| 913 | 913 |
| 914 | 914 |
| 915 macro DATA_VIEW_GETTER_SETTER(TYPENAME) | 915 macro DATA_VIEW_GETTER_SETTER(TYPENAME) |
| 916 function DataViewGetTYPENAMEJS(offset, little_endian) { | 916 function DataViewGetTYPENAMEJS(offset, little_endian) { |
| 917 if (!IS_DATAVIEW(this)) { | 917 if (!IS_DATAVIEW(this)) { |
| 918 throw MakeTypeError(kIncompatibleMethodReceiver, | 918 throw MakeTypeError(kIncompatibleMethodReceiver, |
| 919 'DataView.getTYPENAME', this); | 919 'DataView.getTYPENAME', this); |
| 920 } | 920 } |
| 921 if (%_ArgumentsLength() < 1) throw MakeTypeError(kInvalidArgument); | 921 if (arguments.length < 1) throw MakeTypeError(kInvalidArgument); |
| 922 offset = ToPositiveInteger(offset, kInvalidDataViewAccessorOffset); | 922 offset = ToPositiveInteger(offset, kInvalidDataViewAccessorOffset); |
| 923 return %DataViewGetTYPENAME(this, offset, !!little_endian); | 923 return %DataViewGetTYPENAME(this, offset, !!little_endian); |
| 924 } | 924 } |
| 925 %FunctionSetLength(DataViewGetTYPENAMEJS, 1); | 925 %FunctionSetLength(DataViewGetTYPENAMEJS, 1); |
| 926 | 926 |
| 927 function DataViewSetTYPENAMEJS(offset, value, little_endian) { | 927 function DataViewSetTYPENAMEJS(offset, value, little_endian) { |
| 928 if (!IS_DATAVIEW(this)) { | 928 if (!IS_DATAVIEW(this)) { |
| 929 throw MakeTypeError(kIncompatibleMethodReceiver, | 929 throw MakeTypeError(kIncompatibleMethodReceiver, |
| 930 'DataView.setTYPENAME', this); | 930 'DataView.setTYPENAME', this); |
| 931 } | 931 } |
| 932 if (%_ArgumentsLength() < 2) throw MakeTypeError(kInvalidArgument); | 932 if (arguments.length < 2) throw MakeTypeError(kInvalidArgument); |
| 933 offset = ToPositiveInteger(offset, kInvalidDataViewAccessorOffset); | 933 offset = ToPositiveInteger(offset, kInvalidDataViewAccessorOffset); |
| 934 %DataViewSetTYPENAME(this, offset, TO_NUMBER(value), !!little_endian); | 934 %DataViewSetTYPENAME(this, offset, TO_NUMBER(value), !!little_endian); |
| 935 } | 935 } |
| 936 %FunctionSetLength(DataViewSetTYPENAMEJS, 2); | 936 %FunctionSetLength(DataViewSetTYPENAMEJS, 2); |
| 937 endmacro | 937 endmacro |
| 938 | 938 |
| 939 DATA_VIEW_TYPES(DATA_VIEW_GETTER_SETTER) | 939 DATA_VIEW_TYPES(DATA_VIEW_GETTER_SETTER) |
| 940 | 940 |
| 941 // Setup the DataView constructor. | 941 // Setup the DataView constructor. |
| 942 %SetCode(GlobalDataView, DataViewConstructor); | 942 %SetCode(GlobalDataView, DataViewConstructor); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 "setUint32", DataViewSetUint32JS, | 974 "setUint32", DataViewSetUint32JS, |
| 975 | 975 |
| 976 "getFloat32", DataViewGetFloat32JS, | 976 "getFloat32", DataViewGetFloat32JS, |
| 977 "setFloat32", DataViewSetFloat32JS, | 977 "setFloat32", DataViewSetFloat32JS, |
| 978 | 978 |
| 979 "getFloat64", DataViewGetFloat64JS, | 979 "getFloat64", DataViewGetFloat64JS, |
| 980 "setFloat64", DataViewSetFloat64JS | 980 "setFloat64", DataViewSetFloat64JS |
| 981 ]); | 981 ]); |
| 982 | 982 |
| 983 }) | 983 }) |
| OLD | NEW |