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 |