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

Side by Side Diff: src/string.js

Issue 1194173004: Fix string HTML methods to call ToString (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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 | « no previous file | test/mjsunit/es6/string-html.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 (function(global, utils) { 5 (function(global, utils) {
6 6
7 %CheckIsBootstrapping(); 7 %CheckIsBootstrapping();
8 8
9 // ------------------------------------------------------------------- 9 // -------------------------------------------------------------------
10 // Imports 10 // Imports
(...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 846
847 // ES6 draft, revision 26 (2014-07-18), section B.2.3.2.1 847 // ES6 draft, revision 26 (2014-07-18), section B.2.3.2.1
848 function HtmlEscape(str) { 848 function HtmlEscape(str) {
849 return TO_STRING_INLINE(str).replace(/"/g, """); 849 return TO_STRING_INLINE(str).replace(/"/g, """);
850 } 850 }
851 851
852 852
853 // ES6 draft, revision 26 (2014-07-18), section B.2.3.2 853 // ES6 draft, revision 26 (2014-07-18), section B.2.3.2
854 function StringAnchor(name) { 854 function StringAnchor(name) {
855 CHECK_OBJECT_COERCIBLE(this, "String.prototype.anchor"); 855 CHECK_OBJECT_COERCIBLE(this, "String.prototype.anchor");
856 return "<a name=\"" + HtmlEscape(name) + "\">" + this + "</a>"; 856 return "<a name=\"" + HtmlEscape(name) + "\">" + TO_STRING_INLINE(this) +
857 "</a>";
857 } 858 }
858 859
859 860
860 // ES6 draft, revision 26 (2014-07-18), section B.2.3.3 861 // ES6 draft, revision 26 (2014-07-18), section B.2.3.3
861 function StringBig() { 862 function StringBig() {
862 CHECK_OBJECT_COERCIBLE(this, "String.prototype.big"); 863 CHECK_OBJECT_COERCIBLE(this, "String.prototype.big");
863 return "<big>" + this + "</big>"; 864 return "<big>" + TO_STRING_INLINE(this) + "</big>";
864 } 865 }
865 866
866 867
867 // ES6 draft, revision 26 (2014-07-18), section B.2.3.4 868 // ES6 draft, revision 26 (2014-07-18), section B.2.3.4
868 function StringBlink() { 869 function StringBlink() {
869 CHECK_OBJECT_COERCIBLE(this, "String.prototype.blink"); 870 CHECK_OBJECT_COERCIBLE(this, "String.prototype.blink");
870 return "<blink>" + this + "</blink>"; 871 return "<blink>" + TO_STRING_INLINE(this) + "</blink>";
871 } 872 }
872 873
873 874
874 // ES6 draft, revision 26 (2014-07-18), section B.2.3.5 875 // ES6 draft, revision 26 (2014-07-18), section B.2.3.5
875 function StringBold() { 876 function StringBold() {
876 CHECK_OBJECT_COERCIBLE(this, "String.prototype.bold"); 877 CHECK_OBJECT_COERCIBLE(this, "String.prototype.bold");
877 return "<b>" + this + "</b>"; 878 return "<b>" + TO_STRING_INLINE(this) + "</b>";
878 } 879 }
879 880
880 881
881 // ES6 draft, revision 26 (2014-07-18), section B.2.3.6 882 // ES6 draft, revision 26 (2014-07-18), section B.2.3.6
882 function StringFixed() { 883 function StringFixed() {
883 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fixed"); 884 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fixed");
884 return "<tt>" + this + "</tt>"; 885 return "<tt>" + TO_STRING_INLINE(this) + "</tt>";
885 } 886 }
886 887
887 888
888 // ES6 draft, revision 26 (2014-07-18), section B.2.3.7 889 // ES6 draft, revision 26 (2014-07-18), section B.2.3.7
889 function StringFontcolor(color) { 890 function StringFontcolor(color) {
890 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fontcolor"); 891 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fontcolor");
891 return "<font color=\"" + HtmlEscape(color) + "\">" + this + "</font>"; 892 return "<font color=\"" + HtmlEscape(color) + "\">" + TO_STRING_INLINE(this) +
893 "</font>";
892 } 894 }
893 895
894 896
895 // ES6 draft, revision 26 (2014-07-18), section B.2.3.8 897 // ES6 draft, revision 26 (2014-07-18), section B.2.3.8
896 function StringFontsize(size) { 898 function StringFontsize(size) {
897 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fontsize"); 899 CHECK_OBJECT_COERCIBLE(this, "String.prototype.fontsize");
898 return "<font size=\"" + HtmlEscape(size) + "\">" + this + "</font>"; 900 return "<font size=\"" + HtmlEscape(size) + "\">" + TO_STRING_INLINE(this) +
901 "</font>";
899 } 902 }
900 903
901 904
902 // ES6 draft, revision 26 (2014-07-18), section B.2.3.9 905 // ES6 draft, revision 26 (2014-07-18), section B.2.3.9
903 function StringItalics() { 906 function StringItalics() {
904 CHECK_OBJECT_COERCIBLE(this, "String.prototype.italics"); 907 CHECK_OBJECT_COERCIBLE(this, "String.prototype.italics");
905 return "<i>" + this + "</i>"; 908 return "<i>" + TO_STRING_INLINE(this) + "</i>";
906 } 909 }
907 910
908 911
909 // ES6 draft, revision 26 (2014-07-18), section B.2.3.10 912 // ES6 draft, revision 26 (2014-07-18), section B.2.3.10
910 function StringLink(s) { 913 function StringLink(s) {
911 CHECK_OBJECT_COERCIBLE(this, "String.prototype.link"); 914 CHECK_OBJECT_COERCIBLE(this, "String.prototype.link");
912 return "<a href=\"" + HtmlEscape(s) + "\">" + this + "</a>"; 915 return "<a href=\"" + HtmlEscape(s) + "\">" + TO_STRING_INLINE(this) + "</a>";
913 } 916 }
914 917
915 918
916 // ES6 draft, revision 26 (2014-07-18), section B.2.3.11 919 // ES6 draft, revision 26 (2014-07-18), section B.2.3.11
917 function StringSmall() { 920 function StringSmall() {
918 CHECK_OBJECT_COERCIBLE(this, "String.prototype.small"); 921 CHECK_OBJECT_COERCIBLE(this, "String.prototype.small");
919 return "<small>" + this + "</small>"; 922 return "<small>" + TO_STRING_INLINE(this) + "</small>";
920 } 923 }
921 924
922 925
923 // ES6 draft, revision 26 (2014-07-18), section B.2.3.12 926 // ES6 draft, revision 26 (2014-07-18), section B.2.3.12
924 function StringStrike() { 927 function StringStrike() {
925 CHECK_OBJECT_COERCIBLE(this, "String.prototype.strike"); 928 CHECK_OBJECT_COERCIBLE(this, "String.prototype.strike");
926 return "<strike>" + this + "</strike>"; 929 return "<strike>" + TO_STRING_INLINE(this) + "</strike>";
927 } 930 }
928 931
929 932
930 // ES6 draft, revision 26 (2014-07-18), section B.2.3.13 933 // ES6 draft, revision 26 (2014-07-18), section B.2.3.13
931 function StringSub() { 934 function StringSub() {
932 CHECK_OBJECT_COERCIBLE(this, "String.prototype.sub"); 935 CHECK_OBJECT_COERCIBLE(this, "String.prototype.sub");
933 return "<sub>" + this + "</sub>"; 936 return "<sub>" + TO_STRING_INLINE(this) + "</sub>";
934 } 937 }
935 938
936 939
937 // ES6 draft, revision 26 (2014-07-18), section B.2.3.14 940 // ES6 draft, revision 26 (2014-07-18), section B.2.3.14
938 function StringSup() { 941 function StringSup() {
939 CHECK_OBJECT_COERCIBLE(this, "String.prototype.sup"); 942 CHECK_OBJECT_COERCIBLE(this, "String.prototype.sup");
940 return "<sup>" + this + "</sup>"; 943 return "<sup>" + TO_STRING_INLINE(this) + "</sup>";
941 } 944 }
942 945
943 // ES6 draft 01-20-14, section 21.1.3.13 946 // ES6 draft 01-20-14, section 21.1.3.13
944 function StringRepeat(count) { 947 function StringRepeat(count) {
945 CHECK_OBJECT_COERCIBLE(this, "String.prototype.repeat"); 948 CHECK_OBJECT_COERCIBLE(this, "String.prototype.repeat");
946 949
947 var s = TO_STRING_INLINE(this); 950 var s = TO_STRING_INLINE(this);
948 var n = $toInteger(count); 951 var n = $toInteger(count);
949 // The maximum string length is stored in a smi, so a longer repeat 952 // The maximum string length is stored in a smi, so a longer repeat
950 // must result in a range error. 953 // must result in a range error.
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
1185 // ------------------------------------------------------------------- 1188 // -------------------------------------------------------------------
1186 // Exports 1189 // Exports
1187 1190
1188 utils.Export(function(to) { 1191 utils.Export(function(to) {
1189 to.StringCharAt = StringCharAtJS; 1192 to.StringCharAt = StringCharAtJS;
1190 to.StringIndexOf = StringIndexOfJS; 1193 to.StringIndexOf = StringIndexOfJS;
1191 to.StringSubstring = StringSubstring; 1194 to.StringSubstring = StringSubstring;
1192 }); 1195 });
1193 1196
1194 }) 1197 })
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/es6/string-html.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698