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

Side by Side Diff: src/date.js

Issue 2814050: Version 2.2.23... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: '' Created 10 years, 5 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/codegen.cc ('k') | src/debug.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 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 year = (!NUMBER_IS_NAN(year) && 0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) 446 year = (!NUMBER_IS_NAN(year) && 0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
447 ? 1900 + TO_INTEGER(year) : year; 447 ? 1900 + TO_INTEGER(year) : year;
448 var day = MakeDay(year, month, date); 448 var day = MakeDay(year, month, date);
449 var time = MakeTime(hours, minutes, seconds, ms); 449 var time = MakeTime(hours, minutes, seconds, ms);
450 value = TimeClip(UTC(MakeDate(day, time))); 450 value = TimeClip(UTC(MakeDate(day, time)));
451 } 451 }
452 %_SetValueOf(this, value); 452 %_SetValueOf(this, value);
453 }); 453 });
454 454
455 455
456 // Helper functions.
457 function GetTimeFrom(aDate) {
458 return DATE_VALUE(aDate);
459 }
460
461 function GetMillisecondsFrom(aDate) {
462 var t = DATE_VALUE(aDate);
463 if (NUMBER_IS_NAN(t)) return t;
464 return MS_FROM_TIME(LocalTimeNoCheck(t));
465 }
466
467
468 function GetUTCMillisecondsFrom(aDate) {
469 var t = DATE_VALUE(aDate);
470 if (NUMBER_IS_NAN(t)) return t;
471 return MS_FROM_TIME(t);
472 }
473
474
475 function GetSecondsFrom(aDate) {
476 var t = DATE_VALUE(aDate);
477 if (NUMBER_IS_NAN(t)) return t;
478 return SEC_FROM_TIME(LocalTimeNoCheck(t));
479 }
480
481
482 function GetUTCSecondsFrom(aDate) {
483 var t = DATE_VALUE(aDate);
484 if (NUMBER_IS_NAN(t)) return t;
485 return SEC_FROM_TIME(t);
486 }
487
488
489 function GetMinutesFrom(aDate) {
490 var t = DATE_VALUE(aDate);
491 if (NUMBER_IS_NAN(t)) return t;
492 return MIN_FROM_TIME(LocalTimeNoCheck(t));
493 }
494
495
496 function GetUTCMinutesFrom(aDate) {
497 var t = DATE_VALUE(aDate);
498 if (NUMBER_IS_NAN(t)) return t;
499 return MIN_FROM_TIME(t);
500 }
501
502
503 function GetHoursFrom(aDate) {
504 var t = DATE_VALUE(aDate);
505 if (NUMBER_IS_NAN(t)) return t;
506 return HOUR_FROM_TIME(LocalTimeNoCheck(t));
507 }
508
509
510 function GetUTCHoursFrom(aDate) {
511 var t = DATE_VALUE(aDate);
512 if (NUMBER_IS_NAN(t)) return t;
513 return HOUR_FROM_TIME(t);
514 }
515
516
517 function GetFullYearFrom(aDate) {
518 var t = DATE_VALUE(aDate);
519 if (NUMBER_IS_NAN(t)) return t;
520 var cache = Date_cache;
521 if (cache.time === t) return cache.year;
522 return YEAR_FROM_TIME(LocalTimeNoCheck(t));
523 }
524
525
526 function GetUTCFullYearFrom(aDate) {
527 var t = DATE_VALUE(aDate);
528 if (NUMBER_IS_NAN(t)) return t;
529 return YEAR_FROM_TIME(t);
530 }
531
532
533 function GetMonthFrom(aDate) {
534 var t = DATE_VALUE(aDate);
535 if (NUMBER_IS_NAN(t)) return t;
536 return MONTH_FROM_TIME(LocalTimeNoCheck(t));
537 }
538
539
540 function GetUTCMonthFrom(aDate) {
541 var t = DATE_VALUE(aDate);
542 if (NUMBER_IS_NAN(t)) return t;
543 return MONTH_FROM_TIME(t);
544 }
545
546
547 function GetDateFrom(aDate) {
548 var t = DATE_VALUE(aDate);
549 if (NUMBER_IS_NAN(t)) return t;
550 return DATE_FROM_TIME(LocalTimeNoCheck(t));
551 }
552
553
554 function GetUTCDateFrom(aDate) {
555 var t = DATE_VALUE(aDate);
556 if (NUMBER_IS_NAN(t)) return t;
557 return DATE_FROM_TIME(t);
558 }
559
560
561 %FunctionSetPrototype($Date, new $Date($NaN)); 456 %FunctionSetPrototype($Date, new $Date($NaN));
562 457
563 458
564 var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 459 var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
565 var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oc t', 'Nov', 'Dec']; 460 var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oc t', 'Nov', 'Dec'];
566 461
567 462
568 function TwoDigitString(value) { 463 function TwoDigitString(value) {
569 return value < 10 ? "0" + value : "" + value; 464 return value < 10 ? "0" + value : "" + value;
570 } 465 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 625
731 626
732 // ECMA 262 - 15.9.5.9 627 // ECMA 262 - 15.9.5.9
733 function DateGetTime() { 628 function DateGetTime() {
734 return DATE_VALUE(this); 629 return DATE_VALUE(this);
735 } 630 }
736 631
737 632
738 // ECMA 262 - 15.9.5.10 633 // ECMA 262 - 15.9.5.10
739 function DateGetFullYear() { 634 function DateGetFullYear() {
740 return GetFullYearFrom(this) 635 var t = DATE_VALUE(this);
636 if (NUMBER_IS_NAN(t)) return t;
637 var cache = Date_cache;
638 if (cache.time === t) return cache.year;
639 return YEAR_FROM_TIME(LocalTimeNoCheck(t));
741 } 640 }
742 641
743 642
744 // ECMA 262 - 15.9.5.11 643 // ECMA 262 - 15.9.5.11
745 function DateGetUTCFullYear() { 644 function DateGetUTCFullYear() {
746 return GetUTCFullYearFrom(this) 645 var t = DATE_VALUE(this);
646 if (NUMBER_IS_NAN(t)) return t;
647 return YEAR_FROM_TIME(t);
747 } 648 }
748 649
749 650
750 // ECMA 262 - 15.9.5.12 651 // ECMA 262 - 15.9.5.12
751 function DateGetMonth() { 652 function DateGetMonth() {
752 return GetMonthFrom(this); 653 var t = DATE_VALUE(this);
654 if (NUMBER_IS_NAN(t)) return t;
655 return MONTH_FROM_TIME(LocalTimeNoCheck(t));
753 } 656 }
754 657
755 658
756 // ECMA 262 - 15.9.5.13 659 // ECMA 262 - 15.9.5.13
757 function DateGetUTCMonth() { 660 function DateGetUTCMonth() {
758 return GetUTCMonthFrom(this); 661 var t = DATE_VALUE(this);
662 if (NUMBER_IS_NAN(t)) return t;
663 return MONTH_FROM_TIME(t);
759 } 664 }
760 665
761 666
762 // ECMA 262 - 15.9.5.14 667 // ECMA 262 - 15.9.5.14
763 function DateGetDate() { 668 function DateGetDate() {
764 return GetDateFrom(this); 669 var t = DATE_VALUE(this);
670 if (NUMBER_IS_NAN(t)) return t;
671 return DATE_FROM_TIME(LocalTimeNoCheck(t));
765 } 672 }
766 673
767 674
768 // ECMA 262 - 15.9.5.15 675 // ECMA 262 - 15.9.5.15
769 function DateGetUTCDate() { 676 function DateGetUTCDate() {
770 return GetUTCDateFrom(this); 677 var t = DATE_VALUE(this);
678 return NAN_OR_DATE_FROM_TIME(t);
771 } 679 }
772 680
773 681
774 // ECMA 262 - 15.9.5.16 682 // ECMA 262 - 15.9.5.16
775 function DateGetDay() { 683 function DateGetDay() {
776 var t = %_ValueOf(this); 684 var t = %_ValueOf(this);
777 if (NUMBER_IS_NAN(t)) return t; 685 if (NUMBER_IS_NAN(t)) return t;
778 return WeekDay(LocalTimeNoCheck(t)); 686 return WeekDay(LocalTimeNoCheck(t));
779 } 687 }
780 688
781 689
782 // ECMA 262 - 15.9.5.17 690 // ECMA 262 - 15.9.5.17
783 function DateGetUTCDay() { 691 function DateGetUTCDay() {
784 var t = %_ValueOf(this); 692 var t = %_ValueOf(this);
785 if (NUMBER_IS_NAN(t)) return t; 693 if (NUMBER_IS_NAN(t)) return t;
786 return WeekDay(t); 694 return WeekDay(t);
787 } 695 }
788 696
789 697
790 // ECMA 262 - 15.9.5.18 698 // ECMA 262 - 15.9.5.18
791 function DateGetHours() { 699 function DateGetHours() {
792 return GetHoursFrom(this); 700 var t = DATE_VALUE(this);
701 if (NUMBER_IS_NAN(t)) return t;
702 return HOUR_FROM_TIME(LocalTimeNoCheck(t));
793 } 703 }
794 704
795 705
796 // ECMA 262 - 15.9.5.19 706 // ECMA 262 - 15.9.5.19
797 function DateGetUTCHours() { 707 function DateGetUTCHours() {
798 return GetUTCHoursFrom(this); 708 var t = DATE_VALUE(this);
709 if (NUMBER_IS_NAN(t)) return t;
710 return HOUR_FROM_TIME(t);
799 } 711 }
800 712
801 713
802 // ECMA 262 - 15.9.5.20 714 // ECMA 262 - 15.9.5.20
803 function DateGetMinutes() { 715 function DateGetMinutes() {
804 return GetMinutesFrom(this); 716 var t = DATE_VALUE(this);
717 if (NUMBER_IS_NAN(t)) return t;
718 return MIN_FROM_TIME(LocalTimeNoCheck(t));
805 } 719 }
806 720
807 721
808 // ECMA 262 - 15.9.5.21 722 // ECMA 262 - 15.9.5.21
809 function DateGetUTCMinutes() { 723 function DateGetUTCMinutes() {
810 return GetUTCMinutesFrom(this); 724 var t = DATE_VALUE(this);
725 return NAN_OR_MIN_FROM_TIME(t);
811 } 726 }
812 727
813 728
814 // ECMA 262 - 15.9.5.22 729 // ECMA 262 - 15.9.5.22
815 function DateGetSeconds() { 730 function DateGetSeconds() {
816 return GetSecondsFrom(this); 731 var t = DATE_VALUE(this);
732 if (NUMBER_IS_NAN(t)) return t;
733 return SEC_FROM_TIME(LocalTimeNoCheck(t));
817 } 734 }
818 735
819 736
820 // ECMA 262 - 15.9.5.23 737 // ECMA 262 - 15.9.5.23
821 function DateGetUTCSeconds() { 738 function DateGetUTCSeconds() {
822 return GetUTCSecondsFrom(this); 739 var t = DATE_VALUE(this);
740 return NAN_OR_SEC_FROM_TIME(t);
823 } 741 }
824 742
825 743
826 // ECMA 262 - 15.9.5.24 744 // ECMA 262 - 15.9.5.24
827 function DateGetMilliseconds() { 745 function DateGetMilliseconds() {
828 return GetMillisecondsFrom(this); 746 var t = DATE_VALUE(this);
747 if (NUMBER_IS_NAN(t)) return t;
748 return MS_FROM_TIME(LocalTimeNoCheck(t));
829 } 749 }
830 750
831 751
832 // ECMA 262 - 15.9.5.25 752 // ECMA 262 - 15.9.5.25
833 function DateGetUTCMilliseconds() { 753 function DateGetUTCMilliseconds() {
834 return GetUTCMillisecondsFrom(this); 754 var t = DATE_VALUE(this);
755 return NAN_OR_MS_FROM_TIME(t);
835 } 756 }
836 757
837 758
838 // ECMA 262 - 15.9.5.26 759 // ECMA 262 - 15.9.5.26
839 function DateGetTimezoneOffset() { 760 function DateGetTimezoneOffset() {
840 var t = DATE_VALUE(this); 761 var t = DATE_VALUE(this);
841 if (NUMBER_IS_NAN(t)) return t; 762 if (NUMBER_IS_NAN(t)) return t;
842 return (t - LocalTimeNoCheck(t)) / msPerMinute; 763 return (t - LocalTimeNoCheck(t)) / msPerMinute;
843 } 764 }
844 765
(...skipping 20 matching lines...) Expand all
865 ms = ToNumber(ms); 786 ms = ToNumber(ms);
866 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), SEC_FROM_TIME(t), ms) ; 787 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), SEC_FROM_TIME(t), ms) ;
867 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 788 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
868 } 789 }
869 790
870 791
871 // ECMA 262 - 15.9.5.30 792 // ECMA 262 - 15.9.5.30
872 function DateSetSeconds(sec, ms) { 793 function DateSetSeconds(sec, ms) {
873 var t = LocalTime(DATE_VALUE(this)); 794 var t = LocalTime(DATE_VALUE(this));
874 sec = ToNumber(sec); 795 sec = ToNumber(sec);
875 ms = %_ArgumentsLength() < 2 ? GetMillisecondsFrom(this) : ToNumber(ms); 796 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
876 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms); 797 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
877 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 798 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
878 } 799 }
879 800
880 801
881 // ECMA 262 - 15.9.5.31 802 // ECMA 262 - 15.9.5.31
882 function DateSetUTCSeconds(sec, ms) { 803 function DateSetUTCSeconds(sec, ms) {
883 var t = DATE_VALUE(this); 804 var t = DATE_VALUE(this);
884 sec = ToNumber(sec); 805 sec = ToNumber(sec);
885 ms = %_ArgumentsLength() < 2 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); 806 ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
886 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms); 807 var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
887 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 808 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
888 } 809 }
889 810
890 811
891 // ECMA 262 - 15.9.5.33 812 // ECMA 262 - 15.9.5.33
892 function DateSetMinutes(min, sec, ms) { 813 function DateSetMinutes(min, sec, ms) {
893 var t = LocalTime(DATE_VALUE(this)); 814 var t = LocalTime(DATE_VALUE(this));
894 min = ToNumber(min); 815 min = ToNumber(min);
895 var argc = %_ArgumentsLength(); 816 var argc = %_ArgumentsLength();
896 sec = argc < 2 ? GetSecondsFrom(this) : ToNumber(sec); 817 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
897 ms = argc < 3 ? GetMillisecondsFrom(this) : ToNumber(ms); 818 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
898 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms); 819 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
899 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 820 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
900 } 821 }
901 822
902 823
903 // ECMA 262 - 15.9.5.34 824 // ECMA 262 - 15.9.5.34
904 function DateSetUTCMinutes(min, sec, ms) { 825 function DateSetUTCMinutes(min, sec, ms) {
905 var t = DATE_VALUE(this); 826 var t = DATE_VALUE(this);
906 min = ToNumber(min); 827 min = ToNumber(min);
907 var argc = %_ArgumentsLength(); 828 var argc = %_ArgumentsLength();
908 sec = argc < 2 ? GetUTCSecondsFrom(this) : ToNumber(sec); 829 sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
909 ms = argc < 3 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); 830 ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
910 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms); 831 var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
911 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 832 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
912 } 833 }
913 834
914 835
915 // ECMA 262 - 15.9.5.35 836 // ECMA 262 - 15.9.5.35
916 function DateSetHours(hour, min, sec, ms) { 837 function DateSetHours(hour, min, sec, ms) {
917 var t = LocalTime(DATE_VALUE(this)); 838 var t = LocalTime(DATE_VALUE(this));
918 hour = ToNumber(hour); 839 hour = ToNumber(hour);
919 var argc = %_ArgumentsLength(); 840 var argc = %_ArgumentsLength();
920 min = argc < 2 ? GetMinutesFrom(this) : ToNumber(min); 841 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
921 sec = argc < 3 ? GetSecondsFrom(this) : ToNumber(sec); 842 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
922 ms = argc < 4 ? GetMillisecondsFrom(this) : ToNumber(ms); 843 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
923 var time = MakeTime(hour, min, sec, ms); 844 var time = MakeTime(hour, min, sec, ms);
924 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time)))); 845 return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
925 } 846 }
926 847
927 848
928 // ECMA 262 - 15.9.5.34 849 // ECMA 262 - 15.9.5.34
929 function DateSetUTCHours(hour, min, sec, ms) { 850 function DateSetUTCHours(hour, min, sec, ms) {
930 var t = DATE_VALUE(this); 851 var t = DATE_VALUE(this);
931 hour = ToNumber(hour); 852 hour = ToNumber(hour);
932 var argc = %_ArgumentsLength(); 853 var argc = %_ArgumentsLength();
933 min = argc < 2 ? GetUTCMinutesFrom(this) : ToNumber(min); 854 min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
934 sec = argc < 3 ? GetUTCSecondsFrom(this) : ToNumber(sec); 855 sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
935 ms = argc < 4 ? GetUTCMillisecondsFrom(this) : ToNumber(ms); 856 ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
936 var time = MakeTime(hour, min, sec, ms); 857 var time = MakeTime(hour, min, sec, ms);
937 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time))); 858 return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
938 } 859 }
939 860
940 861
941 // ECMA 262 - 15.9.5.36 862 // ECMA 262 - 15.9.5.36
942 function DateSetDate(date) { 863 function DateSetDate(date) {
943 var t = LocalTime(DATE_VALUE(this)); 864 var t = LocalTime(DATE_VALUE(this));
944 date = ToNumber(date); 865 date = ToNumber(date);
945 var day = MakeDay(YEAR_FROM_TIME(t), MONTH_FROM_TIME(t), date); 866 var day = MakeDay(YEAR_FROM_TIME(t), MONTH_FROM_TIME(t), date);
946 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 867 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
947 } 868 }
948 869
949 870
950 // ECMA 262 - 15.9.5.37 871 // ECMA 262 - 15.9.5.37
951 function DateSetUTCDate(date) { 872 function DateSetUTCDate(date) {
952 var t = DATE_VALUE(this); 873 var t = DATE_VALUE(this);
953 date = ToNumber(date); 874 date = ToNumber(date);
954 var day = MakeDay(YEAR_FROM_TIME(t), MONTH_FROM_TIME(t), date); 875 var day = MakeDay(YEAR_FROM_TIME(t), MONTH_FROM_TIME(t), date);
955 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t)))); 876 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
956 } 877 }
957 878
958 879
959 // ECMA 262 - 15.9.5.38 880 // ECMA 262 - 15.9.5.38
960 function DateSetMonth(month, date) { 881 function DateSetMonth(month, date) {
961 var t = LocalTime(DATE_VALUE(this)); 882 var t = LocalTime(DATE_VALUE(this));
962 month = ToNumber(month); 883 month = ToNumber(month);
963 date = %_ArgumentsLength() < 2 ? GetDateFrom(this) : ToNumber(date); 884 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
964 var day = MakeDay(YEAR_FROM_TIME(t), month, date); 885 var day = MakeDay(YEAR_FROM_TIME(t), month, date);
965 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t))))); 886 return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
966 } 887 }
967 888
968 889
969 // ECMA 262 - 15.9.5.39 890 // ECMA 262 - 15.9.5.39
970 function DateSetUTCMonth(month, date) { 891 function DateSetUTCMonth(month, date) {
971 var t = DATE_VALUE(this); 892 var t = DATE_VALUE(this);
972 month = ToNumber(month); 893 month = ToNumber(month);
973 date = %_ArgumentsLength() < 2 ? GetUTCDateFrom(this) : ToNumber(date); 894 date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
974 var day = MakeDay(YEAR_FROM_TIME(t), month, date); 895 var day = MakeDay(YEAR_FROM_TIME(t), month, date);
975 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t)))); 896 return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
976 } 897 }
977 898
978 899
979 // ECMA 262 - 15.9.5.40 900 // ECMA 262 - 15.9.5.40
980 function DateSetFullYear(year, month, date) { 901 function DateSetFullYear(year, month, date) {
981 var t = DATE_VALUE(this); 902 var t = DATE_VALUE(this);
982 t = NUMBER_IS_NAN(t) ? 0 : LocalTimeNoCheck(t); 903 t = NUMBER_IS_NAN(t) ? 0 : LocalTimeNoCheck(t);
983 year = ToNumber(year); 904 year = ToNumber(year);
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 "toGMTString", DateToGMTString, 1050 "toGMTString", DateToGMTString,
1130 "toUTCString", DateToUTCString, 1051 "toUTCString", DateToUTCString,
1131 "getYear", DateGetYear, 1052 "getYear", DateGetYear,
1132 "setYear", DateSetYear, 1053 "setYear", DateSetYear,
1133 "toISOString", DateToISOString, 1054 "toISOString", DateToISOString,
1134 "toJSON", DateToJSON 1055 "toJSON", DateToJSON
1135 )); 1056 ));
1136 } 1057 }
1137 1058
1138 SetupDate(); 1059 SetupDate();
OLDNEW
« no previous file with comments | « src/codegen.cc ('k') | src/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698