| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 7857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7868 ASSERT(args.length() == 2); | 7868 ASSERT(args.length() == 2); |
| 7869 | 7869 |
| 7870 CONVERT_DOUBLE_ARG_CHECKED(t, 0); | 7870 CONVERT_DOUBLE_ARG_CHECKED(t, 0); |
| 7871 CONVERT_CHECKED(JSArray, res_array, args[1]); | 7871 CONVERT_CHECKED(JSArray, res_array, args[1]); |
| 7872 | 7872 |
| 7873 int year, month, day; | 7873 int year, month, day; |
| 7874 DateYMDFromTime(static_cast<int>(floor(t / 86400000)), year, month, day); | 7874 DateYMDFromTime(static_cast<int>(floor(t / 86400000)), year, month, day); |
| 7875 | 7875 |
| 7876 FixedArrayBase* elms_base = FixedArrayBase::cast(res_array->elements()); | 7876 FixedArrayBase* elms_base = FixedArrayBase::cast(res_array->elements()); |
| 7877 RUNTIME_ASSERT(elms_base->length() == 3); | 7877 RUNTIME_ASSERT(elms_base->length() == 3); |
| 7878 RUNTIME_ASSERT(res_array->GetElementsKind() <= FAST_DOUBLE_ELEMENTS); | 7878 RUNTIME_ASSERT(res_array->HasFastTypeElements()); |
| 7879 | 7879 |
| 7880 if (res_array->HasFastDoubleElements()) { | 7880 MaybeObject* maybe = res_array->EnsureWritableFastElements(); |
| 7881 FixedDoubleArray* elms = FixedDoubleArray::cast(res_array->elements()); | 7881 if (maybe->IsFailure()) return maybe; |
| 7882 elms->set(0, year); | 7882 FixedArray* elms = FixedArray::cast(res_array->elements()); |
| 7883 elms->set(1, month); | 7883 elms->set(0, Smi::FromInt(year)); |
| 7884 elms->set(2, day); | 7884 elms->set(1, Smi::FromInt(month)); |
| 7885 } else { | 7885 elms->set(2, Smi::FromInt(day)); |
| 7886 FixedArray* elms = FixedArray::cast(res_array->elements()); | |
| 7887 elms->set(0, Smi::FromInt(year)); | |
| 7888 elms->set(1, Smi::FromInt(month)); | |
| 7889 elms->set(2, Smi::FromInt(day)); | |
| 7890 } | |
| 7891 | 7886 |
| 7892 return isolate->heap()->undefined_value(); | 7887 return isolate->heap()->undefined_value(); |
| 7893 } | 7888 } |
| 7894 | 7889 |
| 7895 | 7890 |
| 7896 RUNTIME_FUNCTION(MaybeObject*, Runtime_NewArgumentsFast) { | 7891 RUNTIME_FUNCTION(MaybeObject*, Runtime_NewArgumentsFast) { |
| 7897 HandleScope scope(isolate); | 7892 HandleScope scope(isolate); |
| 7898 ASSERT(args.length() == 3); | 7893 ASSERT(args.length() == 3); |
| 7899 | 7894 |
| 7900 Handle<JSFunction> callee = args.at<JSFunction>(0); | 7895 Handle<JSFunction> callee = args.at<JSFunction>(0); |
| (...skipping 5584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13485 } else { | 13480 } else { |
| 13486 // Handle last resort GC and make sure to allow future allocations | 13481 // Handle last resort GC and make sure to allow future allocations |
| 13487 // to grow the heap without causing GCs (if possible). | 13482 // to grow the heap without causing GCs (if possible). |
| 13488 isolate->counters()->gc_last_resort_from_js()->Increment(); | 13483 isolate->counters()->gc_last_resort_from_js()->Increment(); |
| 13489 isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags); | 13484 isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags); |
| 13490 } | 13485 } |
| 13491 } | 13486 } |
| 13492 | 13487 |
| 13493 | 13488 |
| 13494 } } // namespace v8::internal | 13489 } } // namespace v8::internal |
| OLD | NEW |