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

Side by Side Diff: src/date.js

Issue 1123353004: Revert of Wrap runtime.js in a function. (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/collection.js ('k') | src/debug-debugger.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 // This file relies on the fact that the following declarations have been made 5 // This file relies on the fact that the following declarations have been made
6 // in v8natives.js: 6 // in v8natives.js:
7 // var $isFinite = GlobalIsFinite; 7 // var $isFinite = GlobalIsFinite;
8 8
9 var $createDate; 9 var $createDate;
10 10
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 } 149 }
150 150
151 } else { 151 } else {
152 // According to ECMA 262, no hint should be given for this 152 // According to ECMA 262, no hint should be given for this
153 // conversion. However, ToPrimitive defaults to STRING_HINT for 153 // conversion. However, ToPrimitive defaults to STRING_HINT for
154 // Date objects which will lose precision when the Date 154 // Date objects which will lose precision when the Date
155 // constructor is called with another Date object as its 155 // constructor is called with another Date object as its
156 // argument. We therefore use NUMBER_HINT for the conversion, 156 // argument. We therefore use NUMBER_HINT for the conversion,
157 // which is the default for everything else than Date objects. 157 // which is the default for everything else than Date objects.
158 // This makes us behave like KJS and SpiderMonkey. 158 // This makes us behave like KJS and SpiderMonkey.
159 var time = $toPrimitive(year, NUMBER_HINT); 159 var time = ToPrimitive(year, NUMBER_HINT);
160 value = IS_STRING(time) ? DateParse(time) : $toNumber(time); 160 value = IS_STRING(time) ? DateParse(time) : ToNumber(time);
161 } 161 }
162 SET_UTC_DATE_VALUE(this, value); 162 SET_UTC_DATE_VALUE(this, value);
163 } else { 163 } else {
164 year = $toNumber(year); 164 year = ToNumber(year);
165 month = $toNumber(month); 165 month = ToNumber(month);
166 date = argc > 2 ? $toNumber(date) : 1; 166 date = argc > 2 ? ToNumber(date) : 1;
167 hours = argc > 3 ? $toNumber(hours) : 0; 167 hours = argc > 3 ? ToNumber(hours) : 0;
168 minutes = argc > 4 ? $toNumber(minutes) : 0; 168 minutes = argc > 4 ? ToNumber(minutes) : 0;
169 seconds = argc > 5 ? $toNumber(seconds) : 0; 169 seconds = argc > 5 ? ToNumber(seconds) : 0;
170 ms = argc > 6 ? $toNumber(ms) : 0; 170 ms = argc > 6 ? ToNumber(ms) : 0;
171 year = (!NUMBER_IS_NAN(year) && 171 year = (!NUMBER_IS_NAN(year) &&
172 0 <= TO_INTEGER(year) && 172 0 <= TO_INTEGER(year) &&
173 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 173 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
174 var day = MakeDay(year, month, date); 174 var day = MakeDay(year, month, date);
175 var time = MakeTime(hours, minutes, seconds, ms); 175 var time = MakeTime(hours, minutes, seconds, ms);
176 value = MakeDate(day, time); 176 value = MakeDate(day, time);
177 SET_LOCAL_DATE_VALUE(this, value); 177 SET_LOCAL_DATE_VALUE(this, value);
178 } 178 }
179 } 179 }
180 180
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 return DateString(date) + ' ' + TimeString(date); 242 return DateString(date) + ' ' + TimeString(date);
243 } 243 }
244 244
245 // ------------------------------------------------------------------- 245 // -------------------------------------------------------------------
246 246
247 // Reused output buffer. Used when parsing date strings. 247 // Reused output buffer. Used when parsing date strings.
248 var parse_buffer = new InternalArray(8); 248 var parse_buffer = new InternalArray(8);
249 249
250 // ECMA 262 - 15.9.4.2 250 // ECMA 262 - 15.9.4.2
251 function DateParse(string) { 251 function DateParse(string) {
252 var arr = %DateParseString($toString(string), parse_buffer); 252 var arr = %DateParseString(ToString(string), parse_buffer);
253 if (IS_NULL(arr)) return NAN; 253 if (IS_NULL(arr)) return NAN;
254 254
255 var day = MakeDay(arr[0], arr[1], arr[2]); 255 var day = MakeDay(arr[0], arr[1], arr[2]);
256 var time = MakeTime(arr[3], arr[4], arr[5], arr[6]); 256 var time = MakeTime(arr[3], arr[4], arr[5], arr[6]);
257 var date = MakeDate(day, time); 257 var date = MakeDate(day, time);
258 258
259 if (IS_NULL(arr[7])) { 259 if (IS_NULL(arr[7])) {
260 return TimeClip(UTC(date)); 260 return TimeClip(UTC(date));
261 } else { 261 } else {
262 return TimeClip(date - arr[7] * 1000); 262 return TimeClip(date - arr[7] * 1000);
263 } 263 }
264 } 264 }
265 265
266 266
267 // ECMA 262 - 15.9.4.3 267 // ECMA 262 - 15.9.4.3
268 function DateUTC(year, month, date, hours, minutes, seconds, ms) { 268 function DateUTC(year, month, date, hours, minutes, seconds, ms) {
269 year = $toNumber(year); 269 year = ToNumber(year);
270 month = $toNumber(month); 270 month = ToNumber(month);
271 var argc = %_ArgumentsLength(); 271 var argc = %_ArgumentsLength();
272 date = argc > 2 ? $toNumber(date) : 1; 272 date = argc > 2 ? ToNumber(date) : 1;
273 hours = argc > 3 ? $toNumber(hours) : 0; 273 hours = argc > 3 ? ToNumber(hours) : 0;
274 minutes = argc > 4 ? $toNumber(minutes) : 0; 274 minutes = argc > 4 ? ToNumber(minutes) : 0;
275 seconds = argc > 5 ? $toNumber(seconds) : 0; 275 seconds = argc > 5 ? ToNumber(seconds) : 0;
276 ms = argc > 6 ? $toNumber(ms) : 0; 276 ms = argc > 6 ? ToNumber(ms) : 0;
277 year = (!NUMBER_IS_NAN(year) && 277 year = (!NUMBER_IS_NAN(year) &&
278 0 <= TO_INTEGER(year) && 278 0 <= TO_INTEGER(year) &&
279 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 279 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
280 var day = MakeDay(year, month, date); 280 var day = MakeDay(year, month, date);
281 var time = MakeTime(hours, minutes, seconds, ms); 281 var time = MakeTime(hours, minutes, seconds, ms);
282 return TimeClip(MakeDate(day, time)); 282 return TimeClip(MakeDate(day, time));
283 } 283 }
284 284
285 285
286 // ECMA 262 - 15.9.4.4 286 // ECMA 262 - 15.9.4.4
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 // ECMA 262 - 15.9.5.26 448 // ECMA 262 - 15.9.5.26
449 function DateGetTimezoneOffset() { 449 function DateGetTimezoneOffset() {
450 return TIMEZONE_OFFSET(this); 450 return TIMEZONE_OFFSET(this);
451 } 451 }
452 452
453 453
454 // ECMA 262 - 15.9.5.27 454 // ECMA 262 - 15.9.5.27
455 function DateSetTime(ms) { 455 function DateSetTime(ms) {
456 CHECK_DATE(this); 456 CHECK_DATE(this);
457 SET_UTC_DATE_VALUE(this, $toNumber(ms)); 457 SET_UTC_DATE_VALUE(this, ToNumber(ms));
458 return UTC_DATE_VALUE(this); 458 return UTC_DATE_VALUE(this);
459 } 459 }
460 460
461 461
462 // ECMA 262 - 15.9.5.28 462 // ECMA 262 - 15.9.5.28
463 function DateSetMilliseconds(ms) { 463 function DateSetMilliseconds(ms) {
464 var t = LOCAL_DATE_VALUE(this); 464 var t = LOCAL_DATE_VALUE(this);
465 ms = $toNumber(ms); 465 ms = ToNumber(ms);
466 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms); 466 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms);
467 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 467 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
468 } 468 }
469 469
470 470
471 // ECMA 262 - 15.9.5.29 471 // ECMA 262 - 15.9.5.29
472 function DateSetUTCMilliseconds(ms) { 472 function DateSetUTCMilliseconds(ms) {
473 var t = UTC_DATE_VALUE(this); 473 var t = UTC_DATE_VALUE(this);
474 ms = $toNumber(ms); 474 ms = ToNumber(ms);
475 var time = MakeTime(UTC_HOUR(this), 475 var time = MakeTime(UTC_HOUR(this),
476 UTC_MIN(this), 476 UTC_MIN(this),
477 UTC_SEC(this), 477 UTC_SEC(this),
478 ms); 478 ms);
479 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 479 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
480 } 480 }
481 481
482 482
483 // ECMA 262 - 15.9.5.30 483 // ECMA 262 - 15.9.5.30
484 function DateSetSeconds(sec, ms) { 484 function DateSetSeconds(sec, ms) {
485 var t = LOCAL_DATE_VALUE(this); 485 var t = LOCAL_DATE_VALUE(this);
486 sec = $toNumber(sec); 486 sec = ToNumber(sec);
487 ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : $toNumber(ms); 487 ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : ToNumber(ms);
488 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), sec, ms); 488 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), sec, ms);
489 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 489 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
490 } 490 }
491 491
492 492
493 // ECMA 262 - 15.9.5.31 493 // ECMA 262 - 15.9.5.31
494 function DateSetUTCSeconds(sec, ms) { 494 function DateSetUTCSeconds(sec, ms) {
495 var t = UTC_DATE_VALUE(this); 495 var t = UTC_DATE_VALUE(this);
496 sec = $toNumber(sec); 496 sec = ToNumber(sec);
497 ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : $toNumber(ms); 497 ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : ToNumber(ms);
498 var time = MakeTime(UTC_HOUR(this), UTC_MIN(this), sec, ms); 498 var time = MakeTime(UTC_HOUR(this), UTC_MIN(this), sec, ms);
499 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 499 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
500 } 500 }
501 501
502 502
503 // ECMA 262 - 15.9.5.33 503 // ECMA 262 - 15.9.5.33
504 function DateSetMinutes(min, sec, ms) { 504 function DateSetMinutes(min, sec, ms) {
505 var t = LOCAL_DATE_VALUE(this); 505 var t = LOCAL_DATE_VALUE(this);
506 min = $toNumber(min); 506 min = ToNumber(min);
507 var argc = %_ArgumentsLength(); 507 var argc = %_ArgumentsLength();
508 sec = argc < 2 ? LOCAL_SEC(this) : $toNumber(sec); 508 sec = argc < 2 ? LOCAL_SEC(this) : ToNumber(sec);
509 ms = argc < 3 ? LOCAL_MS(this) : $toNumber(ms); 509 ms = argc < 3 ? LOCAL_MS(this) : ToNumber(ms);
510 var time = MakeTime(LOCAL_HOUR(this), min, sec, ms); 510 var time = MakeTime(LOCAL_HOUR(this), min, sec, ms);
511 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 511 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
512 } 512 }
513 513
514 514
515 // ECMA 262 - 15.9.5.34 515 // ECMA 262 - 15.9.5.34
516 function DateSetUTCMinutes(min, sec, ms) { 516 function DateSetUTCMinutes(min, sec, ms) {
517 var t = UTC_DATE_VALUE(this); 517 var t = UTC_DATE_VALUE(this);
518 min = $toNumber(min); 518 min = ToNumber(min);
519 var argc = %_ArgumentsLength(); 519 var argc = %_ArgumentsLength();
520 sec = argc < 2 ? UTC_SEC(this) : $toNumber(sec); 520 sec = argc < 2 ? UTC_SEC(this) : ToNumber(sec);
521 ms = argc < 3 ? UTC_MS(this) : $toNumber(ms); 521 ms = argc < 3 ? UTC_MS(this) : ToNumber(ms);
522 var time = MakeTime(UTC_HOUR(this), min, sec, ms); 522 var time = MakeTime(UTC_HOUR(this), min, sec, ms);
523 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 523 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
524 } 524 }
525 525
526 526
527 // ECMA 262 - 15.9.5.35 527 // ECMA 262 - 15.9.5.35
528 function DateSetHours(hour, min, sec, ms) { 528 function DateSetHours(hour, min, sec, ms) {
529 var t = LOCAL_DATE_VALUE(this); 529 var t = LOCAL_DATE_VALUE(this);
530 hour = $toNumber(hour); 530 hour = ToNumber(hour);
531 var argc = %_ArgumentsLength(); 531 var argc = %_ArgumentsLength();
532 min = argc < 2 ? LOCAL_MIN(this) : $toNumber(min); 532 min = argc < 2 ? LOCAL_MIN(this) : ToNumber(min);
533 sec = argc < 3 ? LOCAL_SEC(this) : $toNumber(sec); 533 sec = argc < 3 ? LOCAL_SEC(this) : ToNumber(sec);
534 ms = argc < 4 ? LOCAL_MS(this) : $toNumber(ms); 534 ms = argc < 4 ? LOCAL_MS(this) : ToNumber(ms);
535 var time = MakeTime(hour, min, sec, ms); 535 var time = MakeTime(hour, min, sec, ms);
536 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 536 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
537 } 537 }
538 538
539 539
540 // ECMA 262 - 15.9.5.34 540 // ECMA 262 - 15.9.5.34
541 function DateSetUTCHours(hour, min, sec, ms) { 541 function DateSetUTCHours(hour, min, sec, ms) {
542 var t = UTC_DATE_VALUE(this); 542 var t = UTC_DATE_VALUE(this);
543 hour = $toNumber(hour); 543 hour = ToNumber(hour);
544 var argc = %_ArgumentsLength(); 544 var argc = %_ArgumentsLength();
545 min = argc < 2 ? UTC_MIN(this) : $toNumber(min); 545 min = argc < 2 ? UTC_MIN(this) : ToNumber(min);
546 sec = argc < 3 ? UTC_SEC(this) : $toNumber(sec); 546 sec = argc < 3 ? UTC_SEC(this) : ToNumber(sec);
547 ms = argc < 4 ? UTC_MS(this) : $toNumber(ms); 547 ms = argc < 4 ? UTC_MS(this) : ToNumber(ms);
548 var time = MakeTime(hour, min, sec, ms); 548 var time = MakeTime(hour, min, sec, ms);
549 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 549 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
550 } 550 }
551 551
552 552
553 // ECMA 262 - 15.9.5.36 553 // ECMA 262 - 15.9.5.36
554 function DateSetDate(date) { 554 function DateSetDate(date) {
555 var t = LOCAL_DATE_VALUE(this); 555 var t = LOCAL_DATE_VALUE(this);
556 date = $toNumber(date); 556 date = ToNumber(date);
557 var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date); 557 var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date);
558 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this))); 558 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
559 } 559 }
560 560
561 561
562 // ECMA 262 - 15.9.5.37 562 // ECMA 262 - 15.9.5.37
563 function DateSetUTCDate(date) { 563 function DateSetUTCDate(date) {
564 var t = UTC_DATE_VALUE(this); 564 var t = UTC_DATE_VALUE(this);
565 date = $toNumber(date); 565 date = ToNumber(date);
566 var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date); 566 var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date);
567 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this))); 567 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
568 } 568 }
569 569
570 570
571 // ECMA 262 - 15.9.5.38 571 // ECMA 262 - 15.9.5.38
572 function DateSetMonth(month, date) { 572 function DateSetMonth(month, date) {
573 var t = LOCAL_DATE_VALUE(this); 573 var t = LOCAL_DATE_VALUE(this);
574 month = $toNumber(month); 574 month = ToNumber(month);
575 date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : $toNumber(date); 575 date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : ToNumber(date);
576 var day = MakeDay(LOCAL_YEAR(this), month, date); 576 var day = MakeDay(LOCAL_YEAR(this), month, date);
577 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this))); 577 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
578 } 578 }
579 579
580 580
581 // ECMA 262 - 15.9.5.39 581 // ECMA 262 - 15.9.5.39
582 function DateSetUTCMonth(month, date) { 582 function DateSetUTCMonth(month, date) {
583 var t = UTC_DATE_VALUE(this); 583 var t = UTC_DATE_VALUE(this);
584 month = $toNumber(month); 584 month = ToNumber(month);
585 date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : $toNumber(date); 585 date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : ToNumber(date);
586 var day = MakeDay(UTC_YEAR(this), month, date); 586 var day = MakeDay(UTC_YEAR(this), month, date);
587 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this))); 587 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
588 } 588 }
589 589
590 590
591 // ECMA 262 - 15.9.5.40 591 // ECMA 262 - 15.9.5.40
592 function DateSetFullYear(year, month, date) { 592 function DateSetFullYear(year, month, date) {
593 var t = LOCAL_DATE_VALUE(this); 593 var t = LOCAL_DATE_VALUE(this);
594 year = $toNumber(year); 594 year = ToNumber(year);
595 var argc = %_ArgumentsLength(); 595 var argc = %_ArgumentsLength();
596 var time ; 596 var time ;
597 if (NUMBER_IS_NAN(t)) { 597 if (NUMBER_IS_NAN(t)) {
598 month = argc < 2 ? 0 : $toNumber(month); 598 month = argc < 2 ? 0 : ToNumber(month);
599 date = argc < 3 ? 1 : $toNumber(date); 599 date = argc < 3 ? 1 : ToNumber(date);
600 time = 0; 600 time = 0;
601 } else { 601 } else {
602 month = argc < 2 ? LOCAL_MONTH(this) : $toNumber(month); 602 month = argc < 2 ? LOCAL_MONTH(this) : ToNumber(month);
603 date = argc < 3 ? LOCAL_DAY(this) : $toNumber(date); 603 date = argc < 3 ? LOCAL_DAY(this) : ToNumber(date);
604 time = LOCAL_TIME_IN_DAY(this); 604 time = LOCAL_TIME_IN_DAY(this);
605 } 605 }
606 var day = MakeDay(year, month, date); 606 var day = MakeDay(year, month, date);
607 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, time)); 607 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, time));
608 } 608 }
609 609
610 610
611 // ECMA 262 - 15.9.5.41 611 // ECMA 262 - 15.9.5.41
612 function DateSetUTCFullYear(year, month, date) { 612 function DateSetUTCFullYear(year, month, date) {
613 var t = UTC_DATE_VALUE(this); 613 var t = UTC_DATE_VALUE(this);
614 year = $toNumber(year); 614 year = ToNumber(year);
615 var argc = %_ArgumentsLength(); 615 var argc = %_ArgumentsLength();
616 var time ; 616 var time ;
617 if (NUMBER_IS_NAN(t)) { 617 if (NUMBER_IS_NAN(t)) {
618 month = argc < 2 ? 0 : $toNumber(month); 618 month = argc < 2 ? 0 : ToNumber(month);
619 date = argc < 3 ? 1 : $toNumber(date); 619 date = argc < 3 ? 1 : ToNumber(date);
620 time = 0; 620 time = 0;
621 } else { 621 } else {
622 month = argc < 2 ? UTC_MONTH(this) : $toNumber(month); 622 month = argc < 2 ? UTC_MONTH(this) : ToNumber(month);
623 date = argc < 3 ? UTC_DAY(this) : $toNumber(date); 623 date = argc < 3 ? UTC_DAY(this) : ToNumber(date);
624 time = UTC_TIME_IN_DAY(this); 624 time = UTC_TIME_IN_DAY(this);
625 } 625 }
626 var day = MakeDay(year, month, date); 626 var day = MakeDay(year, month, date);
627 return SET_UTC_DATE_VALUE(this, MakeDate(day, time)); 627 return SET_UTC_DATE_VALUE(this, MakeDate(day, time));
628 } 628 }
629 629
630 630
631 // ECMA 262 - 15.9.5.42 631 // ECMA 262 - 15.9.5.42
632 function DateToUTCString() { 632 function DateToUTCString() {
633 var t = UTC_DATE_VALUE(this); 633 var t = UTC_DATE_VALUE(this);
634 if (NUMBER_IS_NAN(t)) return kInvalidDate; 634 if (NUMBER_IS_NAN(t)) return kInvalidDate;
635 // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT 635 // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT
636 return WeekDays[UTC_WEEKDAY(this)] + ', ' 636 return WeekDays[UTC_WEEKDAY(this)] + ', '
637 + TwoDigitString(UTC_DAY(this)) + ' ' 637 + TwoDigitString(UTC_DAY(this)) + ' '
638 + Months[UTC_MONTH(this)] + ' ' 638 + Months[UTC_MONTH(this)] + ' '
639 + UTC_YEAR(this) + ' ' 639 + UTC_YEAR(this) + ' '
640 + TimeStringUTC(this) + ' GMT'; 640 + TimeStringUTC(this) + ' GMT';
641 } 641 }
642 642
643 643
644 // ECMA 262 - B.2.4 644 // ECMA 262 - B.2.4
645 function DateGetYear() { 645 function DateGetYear() {
646 return LOCAL_YEAR(this) - 1900; 646 return LOCAL_YEAR(this) - 1900;
647 } 647 }
648 648
649 649
650 // ECMA 262 - B.2.5 650 // ECMA 262 - B.2.5
651 function DateSetYear(year) { 651 function DateSetYear(year) {
652 CHECK_DATE(this); 652 CHECK_DATE(this);
653 year = $toNumber(year); 653 year = ToNumber(year);
654 if (NUMBER_IS_NAN(year)) return SET_UTC_DATE_VALUE(this, NAN); 654 if (NUMBER_IS_NAN(year)) return SET_UTC_DATE_VALUE(this, NAN);
655 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) 655 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
656 ? 1900 + TO_INTEGER(year) : year; 656 ? 1900 + TO_INTEGER(year) : year;
657 var t = LOCAL_DATE_VALUE(this); 657 var t = LOCAL_DATE_VALUE(this);
658 var month, date, time; 658 var month, date, time;
659 if (NUMBER_IS_NAN(t)) { 659 if (NUMBER_IS_NAN(t)) {
660 month = 0; 660 month = 0;
661 date = 1; 661 date = 1;
662 time = 0; 662 time = 0;
663 } else { 663 } else {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 '-' + PadInt(this.getUTCDate(), 2) + 708 '-' + PadInt(this.getUTCDate(), 2) +
709 'T' + PadInt(this.getUTCHours(), 2) + 709 'T' + PadInt(this.getUTCHours(), 2) +
710 ':' + PadInt(this.getUTCMinutes(), 2) + 710 ':' + PadInt(this.getUTCMinutes(), 2) +
711 ':' + PadInt(this.getUTCSeconds(), 2) + 711 ':' + PadInt(this.getUTCSeconds(), 2) +
712 '.' + PadInt(this.getUTCMilliseconds(), 3) + 712 '.' + PadInt(this.getUTCMilliseconds(), 3) +
713 'Z'; 713 'Z';
714 } 714 }
715 715
716 716
717 function DateToJSON(key) { 717 function DateToJSON(key) {
718 var o = $toObject(this); 718 var o = ToObject(this);
719 var tv = $defaultNumber(o); 719 var tv = DefaultNumber(o);
720 if (IS_NUMBER(tv) && !NUMBER_IS_FINITE(tv)) { 720 if (IS_NUMBER(tv) && !NUMBER_IS_FINITE(tv)) {
721 return null; 721 return null;
722 } 722 }
723 return o.toISOString(); 723 return o.toISOString();
724 } 724 }
725 725
726 726
727 var date_cache_version_holder; 727 var date_cache_version_holder;
728 var date_cache_version = NAN; 728 var date_cache_version = NAN;
729 729
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 "getYear", DateGetYear, 817 "getYear", DateGetYear,
818 "setYear", DateSetYear, 818 "setYear", DateSetYear,
819 "toISOString", DateToISOString, 819 "toISOString", DateToISOString,
820 "toJSON", DateToJSON 820 "toJSON", DateToJSON
821 ]); 821 ]);
822 822
823 // Expose to the global scope. 823 // Expose to the global scope.
824 $createDate = CreateDate; 824 $createDate = CreateDate;
825 825
826 })(); 826 })();
OLDNEW
« no previous file with comments | « src/collection.js ('k') | src/debug-debugger.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698