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

Side by Side Diff: src/date.js

Issue 1302533002: Native context: debug.js does not load from js builtins object anymore. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: make importing requirement more explicit Created 5 years, 4 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/arraybuffer.js ('k') | src/debug/debug.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 var $createDate; 5 var $createDate;
6 6
7 // ------------------------------------------------------------------- 7 // -------------------------------------------------------------------
8 8
9 (function(global, utils) { 9 (function(global, utils) {
10 10
11 "use strict"; 11 "use strict";
12 12
13 %CheckIsBootstrapping(); 13 %CheckIsBootstrapping();
14 14
15 // ------------------------------------------------------------------- 15 // -------------------------------------------------------------------
16 // Imports 16 // Imports
17 17
18 var GlobalDate = global.Date; 18 var GlobalDate = global.Date;
19 var InternalArray = utils.InternalArray; 19 var InternalArray = utils.InternalArray;
20
21 var IsFinite; 20 var IsFinite;
22 var MathAbs; 21 var MathAbs;
23 var MathFloor; 22 var MathFloor;
23 var ToNumber;
24 var ToString;
24 25
25 utils.Import(function(from) { 26 utils.Import(function(from) {
26 IsFinite = from.IsFinite; 27 IsFinite = from.IsFinite;
27 MathAbs = from.MathAbs; 28 MathAbs = from.MathAbs;
28 MathFloor = from.MathFloor; 29 MathFloor = from.MathFloor;
30 ToNumber = from.ToNumber;
31 ToString = from.ToString;
29 }); 32 });
30 33
31 // ------------------------------------------------------------------- 34 // -------------------------------------------------------------------
32 35
33 // This file contains date support implemented in JavaScript. 36 // This file contains date support implemented in JavaScript.
34 37
35 var timezone_cache_time = NAN; 38 var timezone_cache_time = NAN;
36 var timezone_cache_timezone; 39 var timezone_cache_timezone;
37 40
38 function LocalTimezone(t) { 41 function LocalTimezone(t) {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 165
163 } else { 166 } else {
164 // According to ECMA 262, no hint should be given for this 167 // According to ECMA 262, no hint should be given for this
165 // conversion. However, ToPrimitive defaults to STRING_HINT for 168 // conversion. However, ToPrimitive defaults to STRING_HINT for
166 // Date objects which will lose precision when the Date 169 // Date objects which will lose precision when the Date
167 // constructor is called with another Date object as its 170 // constructor is called with another Date object as its
168 // argument. We therefore use NUMBER_HINT for the conversion, 171 // argument. We therefore use NUMBER_HINT for the conversion,
169 // which is the default for everything else than Date objects. 172 // which is the default for everything else than Date objects.
170 // This makes us behave like KJS and SpiderMonkey. 173 // This makes us behave like KJS and SpiderMonkey.
171 var time = $toPrimitive(year, NUMBER_HINT); 174 var time = $toPrimitive(year, NUMBER_HINT);
172 value = IS_STRING(time) ? DateParse(time) : $toNumber(time); 175 value = IS_STRING(time) ? DateParse(time) : ToNumber(time);
173 } 176 }
174 SET_UTC_DATE_VALUE(this, value); 177 SET_UTC_DATE_VALUE(this, value);
175 } else { 178 } else {
176 year = $toNumber(year); 179 year = ToNumber(year);
177 month = $toNumber(month); 180 month = ToNumber(month);
178 date = argc > 2 ? $toNumber(date) : 1; 181 date = argc > 2 ? ToNumber(date) : 1;
179 hours = argc > 3 ? $toNumber(hours) : 0; 182 hours = argc > 3 ? ToNumber(hours) : 0;
180 minutes = argc > 4 ? $toNumber(minutes) : 0; 183 minutes = argc > 4 ? ToNumber(minutes) : 0;
181 seconds = argc > 5 ? $toNumber(seconds) : 0; 184 seconds = argc > 5 ? ToNumber(seconds) : 0;
182 ms = argc > 6 ? $toNumber(ms) : 0; 185 ms = argc > 6 ? ToNumber(ms) : 0;
183 year = (!NUMBER_IS_NAN(year) && 186 year = (!NUMBER_IS_NAN(year) &&
184 0 <= TO_INTEGER(year) && 187 0 <= TO_INTEGER(year) &&
185 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 188 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
186 var day = MakeDay(year, month, date); 189 var day = MakeDay(year, month, date);
187 var time = MakeTime(hours, minutes, seconds, ms); 190 var time = MakeTime(hours, minutes, seconds, ms);
188 value = MakeDate(day, time); 191 value = MakeDate(day, time);
189 SET_LOCAL_DATE_VALUE(this, value); 192 SET_LOCAL_DATE_VALUE(this, value);
190 } 193 }
191 } 194 }
192 195
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 return DateString(date) + ' ' + TimeString(date); 263 return DateString(date) + ' ' + TimeString(date);
261 } 264 }
262 265
263 // ------------------------------------------------------------------- 266 // -------------------------------------------------------------------
264 267
265 // Reused output buffer. Used when parsing date strings. 268 // Reused output buffer. Used when parsing date strings.
266 var parse_buffer = new InternalArray(8); 269 var parse_buffer = new InternalArray(8);
267 270
268 // ECMA 262 - 15.9.4.2 271 // ECMA 262 - 15.9.4.2
269 function DateParse(string) { 272 function DateParse(string) {
270 var arr = %DateParseString($toString(string), parse_buffer); 273 var arr = %DateParseString(ToString(string), parse_buffer);
271 if (IS_NULL(arr)) return NAN; 274 if (IS_NULL(arr)) return NAN;
272 275
273 var day = MakeDay(arr[0], arr[1], arr[2]); 276 var day = MakeDay(arr[0], arr[1], arr[2]);
274 var time = MakeTime(arr[3], arr[4], arr[5], arr[6]); 277 var time = MakeTime(arr[3], arr[4], arr[5], arr[6]);
275 var date = MakeDate(day, time); 278 var date = MakeDate(day, time);
276 279
277 if (IS_NULL(arr[7])) { 280 if (IS_NULL(arr[7])) {
278 return TimeClip(UTC(date)); 281 return TimeClip(UTC(date));
279 } else { 282 } else {
280 return TimeClip(date - arr[7] * 1000); 283 return TimeClip(date - arr[7] * 1000);
281 } 284 }
282 } 285 }
283 286
284 287
285 // ECMA 262 - 15.9.4.3 288 // ECMA 262 - 15.9.4.3
286 function DateUTC(year, month, date, hours, minutes, seconds, ms) { 289 function DateUTC(year, month, date, hours, minutes, seconds, ms) {
287 year = $toNumber(year); 290 year = ToNumber(year);
288 month = $toNumber(month); 291 month = ToNumber(month);
289 var argc = %_ArgumentsLength(); 292 var argc = %_ArgumentsLength();
290 date = argc > 2 ? $toNumber(date) : 1; 293 date = argc > 2 ? ToNumber(date) : 1;
291 hours = argc > 3 ? $toNumber(hours) : 0; 294 hours = argc > 3 ? ToNumber(hours) : 0;
292 minutes = argc > 4 ? $toNumber(minutes) : 0; 295 minutes = argc > 4 ? ToNumber(minutes) : 0;
293 seconds = argc > 5 ? $toNumber(seconds) : 0; 296 seconds = argc > 5 ? ToNumber(seconds) : 0;
294 ms = argc > 6 ? $toNumber(ms) : 0; 297 ms = argc > 6 ? ToNumber(ms) : 0;
295 year = (!NUMBER_IS_NAN(year) && 298 year = (!NUMBER_IS_NAN(year) &&
296 0 <= TO_INTEGER(year) && 299 0 <= TO_INTEGER(year) &&
297 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year; 300 TO_INTEGER(year) <= 99) ? 1900 + TO_INTEGER(year) : year;
298 var day = MakeDay(year, month, date); 301 var day = MakeDay(year, month, date);
299 var time = MakeTime(hours, minutes, seconds, ms); 302 var time = MakeTime(hours, minutes, seconds, ms);
300 return TimeClip(MakeDate(day, time)); 303 return TimeClip(MakeDate(day, time));
301 } 304 }
302 305
303 306
304 // ECMA 262 - 15.9.4.4 307 // ECMA 262 - 15.9.4.4
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 // ECMA 262 - 15.9.5.26 493 // ECMA 262 - 15.9.5.26
491 function DateGetTimezoneOffset() { 494 function DateGetTimezoneOffset() {
492 CHECK_DATE(this); 495 CHECK_DATE(this);
493 return TIMEZONE_OFFSET(this); 496 return TIMEZONE_OFFSET(this);
494 } 497 }
495 498
496 499
497 // ECMA 262 - 15.9.5.27 500 // ECMA 262 - 15.9.5.27
498 function DateSetTime(ms) { 501 function DateSetTime(ms) {
499 CHECK_DATE(this); 502 CHECK_DATE(this);
500 SET_UTC_DATE_VALUE(this, $toNumber(ms)); 503 SET_UTC_DATE_VALUE(this, ToNumber(ms));
501 return UTC_DATE_VALUE(this); 504 return UTC_DATE_VALUE(this);
502 } 505 }
503 506
504 507
505 // ECMA 262 - 15.9.5.28 508 // ECMA 262 - 15.9.5.28
506 function DateSetMilliseconds(ms) { 509 function DateSetMilliseconds(ms) {
507 CHECK_DATE(this); 510 CHECK_DATE(this);
508 var t = LOCAL_DATE_VALUE(this); 511 var t = LOCAL_DATE_VALUE(this);
509 ms = $toNumber(ms); 512 ms = ToNumber(ms);
510 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms); 513 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms);
511 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 514 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
512 } 515 }
513 516
514 517
515 // ECMA 262 - 15.9.5.29 518 // ECMA 262 - 15.9.5.29
516 function DateSetUTCMilliseconds(ms) { 519 function DateSetUTCMilliseconds(ms) {
517 CHECK_DATE(this); 520 CHECK_DATE(this);
518 var t = UTC_DATE_VALUE(this); 521 var t = UTC_DATE_VALUE(this);
519 ms = $toNumber(ms); 522 ms = ToNumber(ms);
520 var time = MakeTime(UTC_HOUR(this), 523 var time = MakeTime(UTC_HOUR(this),
521 UTC_MIN(this), 524 UTC_MIN(this),
522 UTC_SEC(this), 525 UTC_SEC(this),
523 ms); 526 ms);
524 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 527 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
525 } 528 }
526 529
527 530
528 // ECMA 262 - 15.9.5.30 531 // ECMA 262 - 15.9.5.30
529 function DateSetSeconds(sec, ms) { 532 function DateSetSeconds(sec, ms) {
530 CHECK_DATE(this); 533 CHECK_DATE(this);
531 var t = LOCAL_DATE_VALUE(this); 534 var t = LOCAL_DATE_VALUE(this);
532 sec = $toNumber(sec); 535 sec = ToNumber(sec);
533 ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : $toNumber(ms); 536 ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : ToNumber(ms);
534 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), sec, ms); 537 var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), sec, ms);
535 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 538 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
536 } 539 }
537 540
538 541
539 // ECMA 262 - 15.9.5.31 542 // ECMA 262 - 15.9.5.31
540 function DateSetUTCSeconds(sec, ms) { 543 function DateSetUTCSeconds(sec, ms) {
541 CHECK_DATE(this); 544 CHECK_DATE(this);
542 var t = UTC_DATE_VALUE(this); 545 var t = UTC_DATE_VALUE(this);
543 sec = $toNumber(sec); 546 sec = ToNumber(sec);
544 ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : $toNumber(ms); 547 ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : ToNumber(ms);
545 var time = MakeTime(UTC_HOUR(this), UTC_MIN(this), sec, ms); 548 var time = MakeTime(UTC_HOUR(this), UTC_MIN(this), sec, ms);
546 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 549 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
547 } 550 }
548 551
549 552
550 // ECMA 262 - 15.9.5.33 553 // ECMA 262 - 15.9.5.33
551 function DateSetMinutes(min, sec, ms) { 554 function DateSetMinutes(min, sec, ms) {
552 CHECK_DATE(this); 555 CHECK_DATE(this);
553 var t = LOCAL_DATE_VALUE(this); 556 var t = LOCAL_DATE_VALUE(this);
554 min = $toNumber(min); 557 min = ToNumber(min);
555 var argc = %_ArgumentsLength(); 558 var argc = %_ArgumentsLength();
556 sec = argc < 2 ? LOCAL_SEC(this) : $toNumber(sec); 559 sec = argc < 2 ? LOCAL_SEC(this) : ToNumber(sec);
557 ms = argc < 3 ? LOCAL_MS(this) : $toNumber(ms); 560 ms = argc < 3 ? LOCAL_MS(this) : ToNumber(ms);
558 var time = MakeTime(LOCAL_HOUR(this), min, sec, ms); 561 var time = MakeTime(LOCAL_HOUR(this), min, sec, ms);
559 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 562 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
560 } 563 }
561 564
562 565
563 // ECMA 262 - 15.9.5.34 566 // ECMA 262 - 15.9.5.34
564 function DateSetUTCMinutes(min, sec, ms) { 567 function DateSetUTCMinutes(min, sec, ms) {
565 CHECK_DATE(this); 568 CHECK_DATE(this);
566 var t = UTC_DATE_VALUE(this); 569 var t = UTC_DATE_VALUE(this);
567 min = $toNumber(min); 570 min = ToNumber(min);
568 var argc = %_ArgumentsLength(); 571 var argc = %_ArgumentsLength();
569 sec = argc < 2 ? UTC_SEC(this) : $toNumber(sec); 572 sec = argc < 2 ? UTC_SEC(this) : ToNumber(sec);
570 ms = argc < 3 ? UTC_MS(this) : $toNumber(ms); 573 ms = argc < 3 ? UTC_MS(this) : ToNumber(ms);
571 var time = MakeTime(UTC_HOUR(this), min, sec, ms); 574 var time = MakeTime(UTC_HOUR(this), min, sec, ms);
572 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 575 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
573 } 576 }
574 577
575 578
576 // ECMA 262 - 15.9.5.35 579 // ECMA 262 - 15.9.5.35
577 function DateSetHours(hour, min, sec, ms) { 580 function DateSetHours(hour, min, sec, ms) {
578 CHECK_DATE(this); 581 CHECK_DATE(this);
579 var t = LOCAL_DATE_VALUE(this); 582 var t = LOCAL_DATE_VALUE(this);
580 hour = $toNumber(hour); 583 hour = ToNumber(hour);
581 var argc = %_ArgumentsLength(); 584 var argc = %_ArgumentsLength();
582 min = argc < 2 ? LOCAL_MIN(this) : $toNumber(min); 585 min = argc < 2 ? LOCAL_MIN(this) : ToNumber(min);
583 sec = argc < 3 ? LOCAL_SEC(this) : $toNumber(sec); 586 sec = argc < 3 ? LOCAL_SEC(this) : ToNumber(sec);
584 ms = argc < 4 ? LOCAL_MS(this) : $toNumber(ms); 587 ms = argc < 4 ? LOCAL_MS(this) : ToNumber(ms);
585 var time = MakeTime(hour, min, sec, ms); 588 var time = MakeTime(hour, min, sec, ms);
586 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time)); 589 return SET_LOCAL_DATE_VALUE(this, MakeDate(LOCAL_DAYS(this), time));
587 } 590 }
588 591
589 592
590 // ECMA 262 - 15.9.5.34 593 // ECMA 262 - 15.9.5.34
591 function DateSetUTCHours(hour, min, sec, ms) { 594 function DateSetUTCHours(hour, min, sec, ms) {
592 CHECK_DATE(this); 595 CHECK_DATE(this);
593 var t = UTC_DATE_VALUE(this); 596 var t = UTC_DATE_VALUE(this);
594 hour = $toNumber(hour); 597 hour = ToNumber(hour);
595 var argc = %_ArgumentsLength(); 598 var argc = %_ArgumentsLength();
596 min = argc < 2 ? UTC_MIN(this) : $toNumber(min); 599 min = argc < 2 ? UTC_MIN(this) : ToNumber(min);
597 sec = argc < 3 ? UTC_SEC(this) : $toNumber(sec); 600 sec = argc < 3 ? UTC_SEC(this) : ToNumber(sec);
598 ms = argc < 4 ? UTC_MS(this) : $toNumber(ms); 601 ms = argc < 4 ? UTC_MS(this) : ToNumber(ms);
599 var time = MakeTime(hour, min, sec, ms); 602 var time = MakeTime(hour, min, sec, ms);
600 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time)); 603 return SET_UTC_DATE_VALUE(this, MakeDate(UTC_DAYS(this), time));
601 } 604 }
602 605
603 606
604 // ECMA 262 - 15.9.5.36 607 // ECMA 262 - 15.9.5.36
605 function DateSetDate(date) { 608 function DateSetDate(date) {
606 CHECK_DATE(this); 609 CHECK_DATE(this);
607 var t = LOCAL_DATE_VALUE(this); 610 var t = LOCAL_DATE_VALUE(this);
608 date = $toNumber(date); 611 date = ToNumber(date);
609 var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date); 612 var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date);
610 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this))); 613 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
611 } 614 }
612 615
613 616
614 // ECMA 262 - 15.9.5.37 617 // ECMA 262 - 15.9.5.37
615 function DateSetUTCDate(date) { 618 function DateSetUTCDate(date) {
616 CHECK_DATE(this); 619 CHECK_DATE(this);
617 var t = UTC_DATE_VALUE(this); 620 var t = UTC_DATE_VALUE(this);
618 date = $toNumber(date); 621 date = ToNumber(date);
619 var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date); 622 var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date);
620 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this))); 623 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
621 } 624 }
622 625
623 626
624 // ECMA 262 - 15.9.5.38 627 // ECMA 262 - 15.9.5.38
625 function DateSetMonth(month, date) { 628 function DateSetMonth(month, date) {
626 CHECK_DATE(this); 629 CHECK_DATE(this);
627 var t = LOCAL_DATE_VALUE(this); 630 var t = LOCAL_DATE_VALUE(this);
628 month = $toNumber(month); 631 month = ToNumber(month);
629 date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : $toNumber(date); 632 date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : ToNumber(date);
630 var day = MakeDay(LOCAL_YEAR(this), month, date); 633 var day = MakeDay(LOCAL_YEAR(this), month, date);
631 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this))); 634 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, LOCAL_TIME_IN_DAY(this)));
632 } 635 }
633 636
634 637
635 // ECMA 262 - 15.9.5.39 638 // ECMA 262 - 15.9.5.39
636 function DateSetUTCMonth(month, date) { 639 function DateSetUTCMonth(month, date) {
637 CHECK_DATE(this); 640 CHECK_DATE(this);
638 var t = UTC_DATE_VALUE(this); 641 var t = UTC_DATE_VALUE(this);
639 month = $toNumber(month); 642 month = ToNumber(month);
640 date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : $toNumber(date); 643 date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : ToNumber(date);
641 var day = MakeDay(UTC_YEAR(this), month, date); 644 var day = MakeDay(UTC_YEAR(this), month, date);
642 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this))); 645 return SET_UTC_DATE_VALUE(this, MakeDate(day, UTC_TIME_IN_DAY(this)));
643 } 646 }
644 647
645 648
646 // ECMA 262 - 15.9.5.40 649 // ECMA 262 - 15.9.5.40
647 function DateSetFullYear(year, month, date) { 650 function DateSetFullYear(year, month, date) {
648 CHECK_DATE(this); 651 CHECK_DATE(this);
649 var t = LOCAL_DATE_VALUE(this); 652 var t = LOCAL_DATE_VALUE(this);
650 year = $toNumber(year); 653 year = ToNumber(year);
651 var argc = %_ArgumentsLength(); 654 var argc = %_ArgumentsLength();
652 var time ; 655 var time ;
653 if (NUMBER_IS_NAN(t)) { 656 if (NUMBER_IS_NAN(t)) {
654 month = argc < 2 ? 0 : $toNumber(month); 657 month = argc < 2 ? 0 : ToNumber(month);
655 date = argc < 3 ? 1 : $toNumber(date); 658 date = argc < 3 ? 1 : ToNumber(date);
656 time = 0; 659 time = 0;
657 } else { 660 } else {
658 month = argc < 2 ? LOCAL_MONTH(this) : $toNumber(month); 661 month = argc < 2 ? LOCAL_MONTH(this) : ToNumber(month);
659 date = argc < 3 ? LOCAL_DAY(this) : $toNumber(date); 662 date = argc < 3 ? LOCAL_DAY(this) : ToNumber(date);
660 time = LOCAL_TIME_IN_DAY(this); 663 time = LOCAL_TIME_IN_DAY(this);
661 } 664 }
662 var day = MakeDay(year, month, date); 665 var day = MakeDay(year, month, date);
663 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, time)); 666 return SET_LOCAL_DATE_VALUE(this, MakeDate(day, time));
664 } 667 }
665 668
666 669
667 // ECMA 262 - 15.9.5.41 670 // ECMA 262 - 15.9.5.41
668 function DateSetUTCFullYear(year, month, date) { 671 function DateSetUTCFullYear(year, month, date) {
669 CHECK_DATE(this); 672 CHECK_DATE(this);
670 var t = UTC_DATE_VALUE(this); 673 var t = UTC_DATE_VALUE(this);
671 year = $toNumber(year); 674 year = ToNumber(year);
672 var argc = %_ArgumentsLength(); 675 var argc = %_ArgumentsLength();
673 var time ; 676 var time ;
674 if (NUMBER_IS_NAN(t)) { 677 if (NUMBER_IS_NAN(t)) {
675 month = argc < 2 ? 0 : $toNumber(month); 678 month = argc < 2 ? 0 : ToNumber(month);
676 date = argc < 3 ? 1 : $toNumber(date); 679 date = argc < 3 ? 1 : ToNumber(date);
677 time = 0; 680 time = 0;
678 } else { 681 } else {
679 month = argc < 2 ? UTC_MONTH(this) : $toNumber(month); 682 month = argc < 2 ? UTC_MONTH(this) : ToNumber(month);
680 date = argc < 3 ? UTC_DAY(this) : $toNumber(date); 683 date = argc < 3 ? UTC_DAY(this) : ToNumber(date);
681 time = UTC_TIME_IN_DAY(this); 684 time = UTC_TIME_IN_DAY(this);
682 } 685 }
683 var day = MakeDay(year, month, date); 686 var day = MakeDay(year, month, date);
684 return SET_UTC_DATE_VALUE(this, MakeDate(day, time)); 687 return SET_UTC_DATE_VALUE(this, MakeDate(day, time));
685 } 688 }
686 689
687 690
688 // ECMA 262 - 15.9.5.42 691 // ECMA 262 - 15.9.5.42
689 function DateToUTCString() { 692 function DateToUTCString() {
690 CHECK_DATE(this); 693 CHECK_DATE(this);
(...skipping 11 matching lines...) Expand all
702 // ECMA 262 - B.2.4 705 // ECMA 262 - B.2.4
703 function DateGetYear() { 706 function DateGetYear() {
704 CHECK_DATE(this); 707 CHECK_DATE(this);
705 return LOCAL_YEAR(this) - 1900; 708 return LOCAL_YEAR(this) - 1900;
706 } 709 }
707 710
708 711
709 // ECMA 262 - B.2.5 712 // ECMA 262 - B.2.5
710 function DateSetYear(year) { 713 function DateSetYear(year) {
711 CHECK_DATE(this); 714 CHECK_DATE(this);
712 year = $toNumber(year); 715 year = ToNumber(year);
713 if (NUMBER_IS_NAN(year)) return SET_UTC_DATE_VALUE(this, NAN); 716 if (NUMBER_IS_NAN(year)) return SET_UTC_DATE_VALUE(this, NAN);
714 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99) 717 year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
715 ? 1900 + TO_INTEGER(year) : year; 718 ? 1900 + TO_INTEGER(year) : year;
716 var t = LOCAL_DATE_VALUE(this); 719 var t = LOCAL_DATE_VALUE(this);
717 var month, date, time; 720 var month, date, time;
718 if (NUMBER_IS_NAN(t)) { 721 if (NUMBER_IS_NAN(t)) {
719 month = 0; 722 month = 0;
720 date = 1; 723 date = 1;
721 time = 0; 724 time = 0;
722 } else { 725 } else {
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 "setYear", DateSetYear, 881 "setYear", DateSetYear,
879 "toISOString", DateToISOString, 882 "toISOString", DateToISOString,
880 "toJSON", DateToJSON 883 "toJSON", DateToJSON
881 ]); 884 ]);
882 885
883 utils.ExportToRuntime(function(to) { 886 utils.ExportToRuntime(function(to) {
884 to.CreateDate = CreateDate; 887 to.CreateDate = CreateDate;
885 }); 888 });
886 889
887 }) 890 })
OLDNEW
« no previous file with comments | « src/arraybuffer.js ('k') | src/debug/debug.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698