Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/string.js

Issue 1116953002: Migrate error messages, part 6. (string.js and date.js) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: . Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/messages.js ('k') | test/mjsunit/messages.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 $stringCharAt; 5 var $stringCharAt;
6 var $stringIndexOf; 6 var $stringIndexOf;
7 var $stringSubstring; 7 var $stringSubstring;
8 8
9 (function() { 9 (function() {
10 10
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 } 929 }
930 930
931 // ES6 draft 01-20-14, section 21.1.3.13 931 // ES6 draft 01-20-14, section 21.1.3.13
932 function StringRepeat(count) { 932 function StringRepeat(count) {
933 CHECK_OBJECT_COERCIBLE(this, "String.prototype.repeat"); 933 CHECK_OBJECT_COERCIBLE(this, "String.prototype.repeat");
934 934
935 var s = TO_STRING_INLINE(this); 935 var s = TO_STRING_INLINE(this);
936 var n = ToInteger(count); 936 var n = ToInteger(count);
937 // The maximum string length is stored in a smi, so a longer repeat 937 // The maximum string length is stored in a smi, so a longer repeat
938 // must result in a range error. 938 // must result in a range error.
939 if (n < 0 || n > %_MaxSmi()) { 939 if (n < 0 || n > %_MaxSmi()) throw MakeRangeError(kInvalidCountValue);
940 throw MakeRangeError("invalid_count_value", []);
941 }
942 940
943 var r = ""; 941 var r = "";
944 while (true) { 942 while (true) {
945 if (n & 1) r += s; 943 if (n & 1) r += s;
946 n >>= 1; 944 n >>= 1;
947 if (n === 0) return r; 945 if (n === 0) return r;
948 s += s; 946 s += s;
949 } 947 }
950 } 948 }
951 949
952 950
953 // ES6 draft 04-05-14, section 21.1.3.18 951 // ES6 draft 04-05-14, section 21.1.3.18
954 function StringStartsWith(searchString /* position */) { // length == 1 952 function StringStartsWith(searchString /* position */) { // length == 1
955 CHECK_OBJECT_COERCIBLE(this, "String.prototype.startsWith"); 953 CHECK_OBJECT_COERCIBLE(this, "String.prototype.startsWith");
956 954
957 var s = TO_STRING_INLINE(this); 955 var s = TO_STRING_INLINE(this);
958 956
959 if (IS_REGEXP(searchString)) { 957 if (IS_REGEXP(searchString)) {
960 throw MakeTypeError("first_argument_not_regexp", 958 throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.startsWith");
961 ["String.prototype.startsWith"]);
962 } 959 }
963 960
964 var ss = TO_STRING_INLINE(searchString); 961 var ss = TO_STRING_INLINE(searchString);
965 var pos = 0; 962 var pos = 0;
966 if (%_ArgumentsLength() > 1) { 963 if (%_ArgumentsLength() > 1) {
967 pos = %_Arguments(1); // position 964 pos = %_Arguments(1); // position
968 pos = ToInteger(pos); 965 pos = ToInteger(pos);
969 } 966 }
970 967
971 var s_len = s.length; 968 var s_len = s.length;
972 var start = $min($max(pos, 0), s_len); 969 var start = $min($max(pos, 0), s_len);
973 var ss_len = ss.length; 970 var ss_len = ss.length;
974 if (ss_len + start > s_len) { 971 if (ss_len + start > s_len) {
975 return false; 972 return false;
976 } 973 }
977 974
978 return %StringIndexOf(s, ss, start) === start; 975 return %StringIndexOf(s, ss, start) === start;
979 } 976 }
980 977
981 978
982 // ES6 draft 04-05-14, section 21.1.3.7 979 // ES6 draft 04-05-14, section 21.1.3.7
983 function StringEndsWith(searchString /* position */) { // length == 1 980 function StringEndsWith(searchString /* position */) { // length == 1
984 CHECK_OBJECT_COERCIBLE(this, "String.prototype.endsWith"); 981 CHECK_OBJECT_COERCIBLE(this, "String.prototype.endsWith");
985 982
986 var s = TO_STRING_INLINE(this); 983 var s = TO_STRING_INLINE(this);
987 984
988 if (IS_REGEXP(searchString)) { 985 if (IS_REGEXP(searchString)) {
989 throw MakeTypeError("first_argument_not_regexp", 986 throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.endsWith");
990 ["String.prototype.endsWith"]);
991 } 987 }
992 988
993 var ss = TO_STRING_INLINE(searchString); 989 var ss = TO_STRING_INLINE(searchString);
994 var s_len = s.length; 990 var s_len = s.length;
995 var pos = s_len; 991 var pos = s_len;
996 if (%_ArgumentsLength() > 1) { 992 if (%_ArgumentsLength() > 1) {
997 var arg = %_Arguments(1); // position 993 var arg = %_Arguments(1); // position
998 if (!IS_UNDEFINED(arg)) { 994 if (!IS_UNDEFINED(arg)) {
999 pos = ToInteger(arg); 995 pos = ToInteger(arg);
1000 } 996 }
(...skipping 10 matching lines...) Expand all
1011 } 1007 }
1012 1008
1013 1009
1014 // ES6 draft 04-05-14, section 21.1.3.6 1010 // ES6 draft 04-05-14, section 21.1.3.6
1015 function StringIncludes(searchString /* position */) { // length == 1 1011 function StringIncludes(searchString /* position */) { // length == 1
1016 CHECK_OBJECT_COERCIBLE(this, "String.prototype.includes"); 1012 CHECK_OBJECT_COERCIBLE(this, "String.prototype.includes");
1017 1013
1018 var s = TO_STRING_INLINE(this); 1014 var s = TO_STRING_INLINE(this);
1019 1015
1020 if (IS_REGEXP(searchString)) { 1016 if (IS_REGEXP(searchString)) {
1021 throw MakeTypeError("first_argument_not_regexp", 1017 throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.includes");
1022 ["String.prototype.includes"]);
1023 } 1018 }
1024 1019
1025 var ss = TO_STRING_INLINE(searchString); 1020 var ss = TO_STRING_INLINE(searchString);
1026 var pos = 0; 1021 var pos = 0;
1027 if (%_ArgumentsLength() > 1) { 1022 if (%_ArgumentsLength() > 1) {
1028 pos = %_Arguments(1); // position 1023 pos = %_Arguments(1); // position
1029 pos = ToInteger(pos); 1024 pos = ToInteger(pos);
1030 } 1025 }
1031 1026
1032 var s_len = s.length; 1027 var s_len = s.length;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 var code; 1062 var code;
1068 var length = %_ArgumentsLength(); 1063 var length = %_ArgumentsLength();
1069 var index; 1064 var index;
1070 var result = ""; 1065 var result = "";
1071 for (index = 0; index < length; index++) { 1066 for (index = 0; index < length; index++) {
1072 code = %_Arguments(index); 1067 code = %_Arguments(index);
1073 if (!%_IsSmi(code)) { 1068 if (!%_IsSmi(code)) {
1074 code = ToNumber(code); 1069 code = ToNumber(code);
1075 } 1070 }
1076 if (code < 0 || code > 0x10FFFF || code !== TO_INTEGER(code)) { 1071 if (code < 0 || code > 0x10FFFF || code !== TO_INTEGER(code)) {
1077 throw MakeRangeError("invalid_code_point", [code]); 1072 throw MakeRangeError(kInvalidCodePoint, code);
1078 } 1073 }
1079 if (code <= 0xFFFF) { 1074 if (code <= 0xFFFF) {
1080 result += %_StringCharFromCode(code); 1075 result += %_StringCharFromCode(code);
1081 } else { 1076 } else {
1082 code -= 0x10000; 1077 code -= 0x10000;
1083 result += %_StringCharFromCode((code >>> 10) & 0x3FF | 0xD800); 1078 result += %_StringCharFromCode((code >>> 10) & 0x3FF | 0xD800);
1084 result += %_StringCharFromCode(code & 0x3FF | 0xDC00); 1079 result += %_StringCharFromCode(code & 0x3FF | 0xDC00);
1085 } 1080 }
1086 } 1081 }
1087 return result; 1082 return result;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 "strike", StringStrike, 1168 "strike", StringStrike,
1174 "sub", StringSub, 1169 "sub", StringSub,
1175 "sup", StringSup 1170 "sup", StringSup
1176 ]); 1171 ]);
1177 1172
1178 $stringCharAt = StringCharAtJS; 1173 $stringCharAt = StringCharAtJS;
1179 $stringIndexOf = StringIndexOfJS; 1174 $stringIndexOf = StringIndexOfJS;
1180 $stringSubstring = StringSubstring; 1175 $stringSubstring = StringSubstring;
1181 1176
1182 })(); 1177 })();
OLDNEW
« no previous file with comments | « src/messages.js ('k') | test/mjsunit/messages.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698