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

Side by Side Diff: src/date.js

Issue 9117034: New class for Date objects: caches individual date components. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add constant for index of first barrier-free slot. Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « src/bootstrapper.cc ('k') | src/hydrogen.cc » ('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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 minutes = argc > 4 ? ToNumber(minutes) : 0; 445 minutes = argc > 4 ? ToNumber(minutes) : 0;
446 seconds = argc > 5 ? ToNumber(seconds) : 0; 446 seconds = argc > 5 ? ToNumber(seconds) : 0;
447 ms = argc > 6 ? ToNumber(ms) : 0; 447 ms = argc > 6 ? ToNumber(ms) : 0;
448 year = (!NUMBER_IS_NAN(year) && 448 year = (!NUMBER_IS_NAN(year) &&
449 0 <= TO_INTEGER(year) && 449 0 <= TO_INTEGER(year) &&
450 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 450 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
451 var day = MakeDay(year, month, date); 451 var day = MakeDay(year, month, date);
452 var time = MakeTime(hours, minutes, seconds, ms); 452 var time = MakeTime(hours, minutes, seconds, ms);
453 value = TimeClip(UTC(MakeDate(day, time))); 453 value = TimeClip(UTC(MakeDate(day, time)));
454 } 454 }
455 %_SetValueOf(this, value); 455 SET_DATE_VALUE(this, value);
456 }); 456 });
457 457
458 458
459 %FunctionSetPrototype($Date, new $Date($NaN)); 459 %FunctionSetPrototype($Date, new $Date($NaN));
460 460
461 461
462 var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 462 var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
463 var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 463 var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
464 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 464 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
465 465
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 date = argc > 2 ? ToNumber(date) : 1; 558 date = argc > 2 ? ToNumber(date) : 1;
559 hours = argc > 3 ? ToNumber(hours) : 0; 559 hours = argc > 3 ? ToNumber(hours) : 0;
560 minutes = argc > 4 ? ToNumber(minutes) : 0; 560 minutes = argc > 4 ? ToNumber(minutes) : 0;
561 seconds = argc > 5 ? ToNumber(seconds) : 0; 561 seconds = argc > 5 ? ToNumber(seconds) : 0;
562 ms = argc > 6 ? ToNumber(ms) : 0; 562 ms = argc > 6 ? ToNumber(ms) : 0;
563 year = (!NUMBER_IS_NAN(year) && 563 year = (!NUMBER_IS_NAN(year) &&
564 0 <= TO_INTEGER(year) && 564 0 <= TO_INTEGER(year) &&
565 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 565 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
566 var day = MakeDay(year, month, date); 566 var day = MakeDay(year, month, date);
567 var time = MakeTime(hours, minutes, seconds, ms); 567 var time = MakeTime(hours, minutes, seconds, ms);
568 return %_SetValueOf(this, TimeClip(MakeDate(day, time))); 568 return TimeClip(MakeDate(day, time));
569 } 569 }
570 570
571 571
572 // Mozilla-specific extension. Returns the number of milliseconds 572 // Mozilla-specific extension. Returns the number of milliseconds
573 // elapsed since 1 January 1970 00:00:00 UTC. 573 // elapsed since 1 January 1970 00:00:00 UTC.
574 function DateNow() { 574 function DateNow() {
575 return %DateCurrentTime(); 575 return %DateCurrentTime();
576 } 576 }
577 577
578 578
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 function DateGetTimezoneOffset() { 767 function DateGetTimezoneOffset() {
768 var t = DATE_VALUE(this); 768 var t = DATE_VALUE(this);
769 if (NUMBER_IS_NAN(t)) return t; 769 if (NUMBER_IS_NAN(t)) return t;
770 return (t - LocalTimeNoCheck(t)) / msPerMinute; 770 return (t - LocalTimeNoCheck(t)) / msPerMinute;
771 } 771 }
772 772
773 773
774 // ECMA 262 - 15.9.5.27 774 // ECMA 262 - 15.9.5.27
775 function DateSetTime(ms) { 775 function DateSetTime(ms) {
776 if (!IS_DATE(this)) ThrowDateTypeError(); 776 if (!IS_DATE(this)) ThrowDateTypeError();
777 return %_SetValueOf(this, TimeClip(ToNumber(ms))); 777 return SET_DATE_VALUE(this, TimeClip(ToNumber(ms)));
778 } 778 }
779 779
780 780
781 // ECMA 262 - 15.9.5.28 781 // ECMA 262 - 15.9.5.28
782 function DateSetMilliseconds(ms) { 782 function DateSetMilliseconds(ms) {
783 var t = LocalTime(DATE_VALUE(this)); 783 var t = LocalTime(DATE_VALUE(this));
784 ms = ToNumber(ms); 784 ms = ToNumber(ms);
785 var time = MakeTime(HOUR_FROM_TIME(t), 785 var time = MakeTime(HOUR_FROM_TIME(t),
786 MIN_FROM_TIME(t), 786 MIN_FROM_TIME(t),
787 SEC_FROM_TIME(t), 787 SEC_FROM_TIME(t),
788 ms); 788 ms);
789 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 789 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(DAY(t), time))));
790 } 790 }
791 791
792 792
793 // ECMA 262 - 15.9.5.29 793 // ECMA 262 - 15.9.5.29
794 function DateSetUTCMilliseconds(ms) { 794 function DateSetUTCMilliseconds(ms) {
795 var t = DATE_VALUE(this); 795 var t = DATE_VALUE(this);
796 ms = ToNumber(ms); 796 ms = ToNumber(ms);
797 var time = MakeTime(HOUR_FROM_TIME(t), 797 var time = MakeTime(HOUR_FROM_TIME(t),
798 MIN_FROM_TIME(t), 798 MIN_FROM_TIME(t),
799 SEC_FROM_TIME(t), 799 SEC_FROM_TIME(t),
800 ms); 800 ms);
801 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 801 return SET_DATE_VALUE(this, TimeClip(MakeDate(DAY(t), time)));
802 } 802 }
803 803
804 804
805 // ECMA 262 - 15.9.5.30 805 // ECMA 262 - 15.9.5.30
806 function DateSetSeconds(sec, ms) { 806 function DateSetSeconds(sec, ms) {
807 var t = LocalTime(DATE_VALUE(this)); 807 var t = LocalTime(DATE_VALUE(this));
808 sec = ToNumber(sec); 808 sec = ToNumber(sec);
809 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 809 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
810 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms); 810 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
811 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 811 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(DAY(t), time))));
812 } 812 }
813 813
814 814
815 // ECMA 262 - 15.9.5.31 815 // ECMA 262 - 15.9.5.31
816 function DateSetUTCSeconds(sec, ms) { 816 function DateSetUTCSeconds(sec, ms) {
817 var t = DATE_VALUE(this); 817 var t = DATE_VALUE(this);
818 sec = ToNumber(sec); 818 sec = ToNumber(sec);
819 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 819 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
820 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms); 820 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
821 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 821 return SET_DATE_VALUE(this, TimeClip(MakeDate(DAY(t), time)));
822 } 822 }
823 823
824 824
825 // ECMA 262 - 15.9.5.33 825 // ECMA 262 - 15.9.5.33
826 function DateSetMinutes(min, sec, ms) { 826 function DateSetMinutes(min, sec, ms) {
827 var t = LocalTime(DATE_VALUE(this)); 827 var t = LocalTime(DATE_VALUE(this));
828 min = ToNumber(min); 828 min = ToNumber(min);
829 var argc = %_ArgumentsLength(); 829 var argc = %_ArgumentsLength();
830 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec); 830 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
831 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 831 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
832 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms); 832 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
833 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 833 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(DAY(t), time))));
834 } 834 }
835 835
836 836
837 // ECMA 262 - 15.9.5.34 837 // ECMA 262 - 15.9.5.34
838 function DateSetUTCMinutes(min, sec, ms) { 838 function DateSetUTCMinutes(min, sec, ms) {
839 var t = DATE_VALUE(this); 839 var t = DATE_VALUE(this);
840 min = ToNumber(min); 840 min = ToNumber(min);
841 var argc = %_ArgumentsLength(); 841 var argc = %_ArgumentsLength();
842 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec); 842 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
843 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 843 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
844 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms); 844 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
845 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 845 return SET_DATE_VALUE(this, TimeClip(MakeDate(DAY(t), time)));
846 } 846 }
847 847
848 848
849 // ECMA 262 - 15.9.5.35 849 // ECMA 262 - 15.9.5.35
850 function DateSetHours(hour, min, sec, ms) { 850 function DateSetHours(hour, min, sec, ms) {
851 var t = LocalTime(DATE_VALUE(this)); 851 var t = LocalTime(DATE_VALUE(this));
852 hour = ToNumber(hour); 852 hour = ToNumber(hour);
853 var argc = %_ArgumentsLength(); 853 var argc = %_ArgumentsLength();
854 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min); 854 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
855 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec); 855 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
856 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 856 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
857 var time = MakeTime(hour, min, sec, ms); 857 var time = MakeTime(hour, min, sec, ms);
858 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 858 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(DAY(t), time))));
859 } 859 }
860 860
861 861
862 // ECMA 262 - 15.9.5.34 862 // ECMA 262 - 15.9.5.34
863 function DateSetUTCHours(hour, min, sec, ms) { 863 function DateSetUTCHours(hour, min, sec, ms) {
864 var t = DATE_VALUE(this); 864 var t = DATE_VALUE(this);
865 hour = ToNumber(hour); 865 hour = ToNumber(hour);
866 var argc = %_ArgumentsLength(); 866 var argc = %_ArgumentsLength();
867 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min); 867 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
868 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec); 868 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
869 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms); 869 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
870 var time = MakeTime(hour, min, sec, ms); 870 var time = MakeTime(hour, min, sec, ms);
871 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 871 return SET_DATE_VALUE(this, TimeClip(MakeDate(DAY(t), time)));
872 } 872 }
873 873
874 874
875 // ECMA 262 - 15.9.5.36 875 // ECMA 262 - 15.9.5.36
876 function DateSetDate(date) { 876 function DateSetDate(date) {
877 var t = LocalTime(DATE_VALUE(this)); 877 var t = LocalTime(DATE_VALUE(this));
878 date = ToNumber(date); 878 date = ToNumber(date);
879 var day = MakeDay(YearFromTime(t), MonthFromTime(t), date); 879 var day = MakeDay(YearFromTime(t), MonthFromTime(t), date);
880 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 880 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
881 } 881 }
882 882
883 883
884 // ECMA 262 - 15.9.5.37 884 // ECMA 262 - 15.9.5.37
885 function DateSetUTCDate(date) { 885 function DateSetUTCDate(date) {
886 var t = DATE_VALUE(this); 886 var t = DATE_VALUE(this);
887 date = ToNumber(date); 887 date = ToNumber(date);
888 var day = MakeDay(YearFromTime(t), MonthFromTime(t), date); 888 var day = MakeDay(YearFromTime(t), MonthFromTime(t), date);
889 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t)))); 889 return SET_DATE_VALUE(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
890 } 890 }
891 891
892 892
893 // ECMA 262 - 15.9.5.38 893 // ECMA 262 - 15.9.5.38
894 function DateSetMonth(month, date) { 894 function DateSetMonth(month, date) {
895 var t = LocalTime(DATE_VALUE(this)); 895 var t = LocalTime(DATE_VALUE(this));
896 month = ToNumber(month); 896 month = ToNumber(month);
897 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date); 897 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
898 var day = MakeDay(YearFromTime(t), month, date); 898 var day = MakeDay(YearFromTime(t), month, date);
899 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 899 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
900 } 900 }
901 901
902 902
903 // ECMA 262 - 15.9.5.39 903 // ECMA 262 - 15.9.5.39
904 function DateSetUTCMonth(month, date) { 904 function DateSetUTCMonth(month, date) {
905 var t = DATE_VALUE(this); 905 var t = DATE_VALUE(this);
906 month = ToNumber(month); 906 month = ToNumber(month);
907 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date); 907 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
908 var day = MakeDay(YearFromTime(t), month, date); 908 var day = MakeDay(YearFromTime(t), month, date);
909 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t)))); 909 return SET_DATE_VALUE(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
910 } 910 }
911 911
912 912
913 // ECMA 262 - 15.9.5.40 913 // ECMA 262 - 15.9.5.40
914 function DateSetFullYear(year, month, date) { 914 function DateSetFullYear(year, month, date) {
915 var t = DATE_VALUE(this); 915 var t = DATE_VALUE(this);
916 t = NUMBER_IS_NAN(t) ? 0 : LocalTimeNoCheck(t); 916 t = NUMBER_IS_NAN(t) ? 0 : LocalTimeNoCheck(t);
917 year = ToNumber(year); 917 year = ToNumber(year);
918 var argc = %_ArgumentsLength(); 918 var argc = %_ArgumentsLength();
919 month = argc < 2 ? MonthFromTime(t) : ToNumber(month); 919 month = argc < 2 ? MonthFromTime(t) : ToNumber(month);
920 date = argc < 3 ? DateFromTime(t) : ToNumber(date); 920 date = argc < 3 ? DateFromTime(t) : ToNumber(date);
921 var day = MakeDay(year, month, date); 921 var day = MakeDay(year, month, date);
922 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 922 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
923 } 923 }
924 924
925 925
926 // ECMA 262 - 15.9.5.41 926 // ECMA 262 - 15.9.5.41
927 function DateSetUTCFullYear(year, month, date) { 927 function DateSetUTCFullYear(year, month, date) {
928 var t = DATE_VALUE(this); 928 var t = DATE_VALUE(this);
929 if (NUMBER_IS_NAN(t)) t = 0; 929 if (NUMBER_IS_NAN(t)) t = 0;
930 var argc = %_ArgumentsLength(); 930 var argc = %_ArgumentsLength();
931 year = ToNumber(year); 931 year = ToNumber(year);
932 month = argc < 2 ? MonthFromTime(t) : ToNumber(month); 932 month = argc < 2 ? MonthFromTime(t) : ToNumber(month);
933 date = argc < 3 ? DateFromTime(t) : ToNumber(date); 933 date = argc < 3 ? DateFromTime(t) : ToNumber(date);
934 var day = MakeDay(year, month, date); 934 var day = MakeDay(year, month, date);
935 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t)))); 935 return SET_DATE_VALUE(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
936 } 936 }
937 937
938 938
939 // ECMA 262 - 15.9.5.42 939 // ECMA 262 - 15.9.5.42
940 function DateToUTCString() { 940 function DateToUTCString() {
941 var t = DATE_VALUE(this); 941 var t = DATE_VALUE(this);
942 if (NUMBER_IS_NAN(t)) return kInvalidDate; 942 if (NUMBER_IS_NAN(t)) return kInvalidDate;
943 // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT 943 // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT
944 return WeekDays[WeekDay(t)] + ', ' 944 return WeekDays[WeekDay(t)] + ', '
945 + TwoDigitString(DateFromTime(t)) + ' ' 945 + TwoDigitString(DateFromTime(t)) + ' '
946 + Months[MonthFromTime(t)] + ' ' 946 + Months[MonthFromTime(t)] + ' '
947 + YearFromTime(t) + ' ' 947 + YearFromTime(t) + ' '
948 + TimeString(t) + ' GMT'; 948 + TimeString(t) + ' GMT';
949 } 949 }
950 950
951 951
952 // ECMA 262 - B.2.4 952 // ECMA 262 - B.2.4
953 function DateGetYear() { 953 function DateGetYear() {
954 var t = DATE_VALUE(this); 954 var t = DATE_VALUE(this);
955 if (NUMBER_IS_NAN(t)) return $NaN; 955 if (NUMBER_IS_NAN(t)) return $NaN;
956 return YearFromTime(LocalTimeNoCheck(t)) - 1900; 956 return YearFromTime(LocalTimeNoCheck(t)) - 1900;
957 } 957 }
958 958
959 959
960 // ECMA 262 - B.2.5 960 // ECMA 262 - B.2.5
961 function DateSetYear(year) { 961 function DateSetYear(year) {
962 var t = LocalTime(DATE_VALUE(this)); 962 var t = LocalTime(DATE_VALUE(this));
963 if (NUMBER_IS_NAN(t)) t = 0; 963 if (NUMBER_IS_NAN(t)) t = 0;
964 year = ToNumber(year); 964 year = ToNumber(year);
965 if (NUMBER_IS_NAN(year)) return %_SetValueOf(this, $NaN); 965 if (NUMBER_IS_NAN(year)) return SET_DATE_VALUE(this, $NaN);
966 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) 966 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
967 ? 1900 + TO_INTEGER(year) : year; 967 ? 1900 + TO_INTEGER(year) : year;
968 var day = MakeDay(year, MonthFromTime(t), DateFromTime(t)); 968 var day = MakeDay(year, MonthFromTime(t), DateFromTime(t));
969 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 969 return SET_DATE_VALUE(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
970 } 970 }
971 971
972 972
973 // ECMA 262 - B.2.6 973 // ECMA 262 - B.2.6
974 // 974 //
975 // Notice that this does not follow ECMA 262 completely. ECMA 262 975 // Notice that this does not follow ECMA 262 completely. ECMA 262
976 // says that toGMTString should be the same Function object as 976 // says that toGMTString should be the same Function object as
977 // toUTCString. JSC does not do this, so for compatibility we do not 977 // toUTCString. JSC does not do this, so for compatibility we do not
978 // do that either. Instead, we create a new function whose name 978 // do that either. Instead, we create a new function whose name
979 // property will return toGMTString. 979 // property will return toGMTString.
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1117 "toGMTString", DateToGMTString, 1117 "toGMTString", DateToGMTString,
1118 "toUTCString", DateToUTCString, 1118 "toUTCString", DateToUTCString,
1119 "getYear", DateGetYear, 1119 "getYear", DateGetYear,
1120 "setYear", DateSetYear, 1120 "setYear", DateSetYear,
1121 "toISOString", DateToISOString, 1121 "toISOString", DateToISOString,
1122 "toJSON", DateToJSON 1122 "toJSON", DateToJSON
1123 )); 1123 ));
1124 } 1124 }
1125 1125
1126 SetUpDate(); 1126 SetUpDate();
OLDNEW
« no previous file with comments | « src/bootstrapper.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698