Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 4912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4923 static Object* Runtime_Math_tan(Arguments args) { | 4923 static Object* Runtime_Math_tan(Arguments args) { |
| 4924 NoHandleAllocation ha; | 4924 NoHandleAllocation ha; |
| 4925 ASSERT(args.length() == 1); | 4925 ASSERT(args.length() == 1); |
| 4926 Counters::math_tan.Increment(); | 4926 Counters::math_tan.Increment(); |
| 4927 | 4927 |
| 4928 CONVERT_DOUBLE_CHECKED(x, args[0]); | 4928 CONVERT_DOUBLE_CHECKED(x, args[0]); |
| 4929 return TranscendentalCache::Get(TranscendentalCache::TAN, x); | 4929 return TranscendentalCache::Get(TranscendentalCache::TAN, x); |
| 4930 } | 4930 } |
| 4931 | 4931 |
| 4932 | 4932 |
| 4933 static Object* Runtime_DateMakeDay(Arguments args) { | |
| 4934 NoHandleAllocation ha; | |
| 4935 ASSERT(args.length() == 3); | |
| 4936 | |
| 4937 CONVERT_SMI_CHECKED(year, args[0]); | |
| 4938 CONVERT_SMI_CHECKED(month, args[1]); | |
| 4939 CONVERT_SMI_CHECKED(date, args[2]); | |
| 4940 | |
| 4941 static const int day_from_month[] = {0, 31, 59, 90, 120, 151, | |
| 4942 181, 212, 243, 273, 304, 334}; | |
| 4943 static const int day_from_month_leap[] = {0, 31, 60, 91, 121, 152, | |
| 4944 182, 213, 244, 274, 305, 335}; | |
| 4945 | |
| 4946 year += month / 12; | |
| 4947 month %= 12; | |
| 4948 if (month < 0) { | |
| 4949 year--; | |
| 4950 month += 12; | |
| 4951 } | |
| 4952 | |
| 4953 static const int base_day = 365*1970 + 1969/4 - 1969/100 + 1969/400; | |
| 4954 | |
| 4955 int day_from_year = 365*year + (year - 1)/4 - (year - 1)/100 + (year - 1)/400 - base_day; | |
|
Mads Ager (chromium)
2010/03/02 13:04:08
Line too long, please reformat. Also, please have
Oleg Eterevsky
2010/03/02 13:28:23
I tried to reformat it to make it more readable, a
| |
| 4956 | |
| 4957 if (year % 4 || (year % 100 == 0 && year % 400 != 0)) { | |
| 4958 return Smi::FromInt(day_from_year + day_from_month[month] + date - 1); | |
| 4959 } else { | |
| 4960 return Smi::FromInt(day_from_year + day_from_month_leap[month] + date - 1); | |
| 4961 } | |
| 4962 } | |
| 4963 | |
| 4964 | |
| 4933 static Object* Runtime_NewArgumentsFast(Arguments args) { | 4965 static Object* Runtime_NewArgumentsFast(Arguments args) { |
| 4934 NoHandleAllocation ha; | 4966 NoHandleAllocation ha; |
| 4935 ASSERT(args.length() == 3); | 4967 ASSERT(args.length() == 3); |
| 4936 | 4968 |
| 4937 JSFunction* callee = JSFunction::cast(args[0]); | 4969 JSFunction* callee = JSFunction::cast(args[0]); |
| 4938 Object** parameters = reinterpret_cast<Object**>(args[1]); | 4970 Object** parameters = reinterpret_cast<Object**>(args[1]); |
| 4939 const int length = Smi::cast(args[2])->value(); | 4971 const int length = Smi::cast(args[2])->value(); |
| 4940 | 4972 |
| 4941 Object* result = Heap::AllocateArgumentsObject(callee, length); | 4973 Object* result = Heap::AllocateArgumentsObject(callee, length); |
| 4942 if (result->IsFailure()) return result; | 4974 if (result->IsFailure()) return result; |
| (...skipping 3404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8347 } else { | 8379 } else { |
| 8348 // Handle last resort GC and make sure to allow future allocations | 8380 // Handle last resort GC and make sure to allow future allocations |
| 8349 // to grow the heap without causing GCs (if possible). | 8381 // to grow the heap without causing GCs (if possible). |
| 8350 Counters::gc_last_resort_from_js.Increment(); | 8382 Counters::gc_last_resort_from_js.Increment(); |
| 8351 Heap::CollectAllGarbage(false); | 8383 Heap::CollectAllGarbage(false); |
| 8352 } | 8384 } |
| 8353 } | 8385 } |
| 8354 | 8386 |
| 8355 | 8387 |
| 8356 } } // namespace v8::internal | 8388 } } // namespace v8::internal |
| OLD | NEW |