OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 5600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5611 | 5611 |
5612 void v8::Date::DateTimeConfigurationChangeNotification(Isolate* isolate) { | 5612 void v8::Date::DateTimeConfigurationChangeNotification(Isolate* isolate) { |
5613 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); | 5613 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
5614 ON_BAILOUT(i_isolate, "v8::Date::DateTimeConfigurationChangeNotification()", | 5614 ON_BAILOUT(i_isolate, "v8::Date::DateTimeConfigurationChangeNotification()", |
5615 return); | 5615 return); |
5616 LOG_API(i_isolate, "Date::DateTimeConfigurationChangeNotification"); | 5616 LOG_API(i_isolate, "Date::DateTimeConfigurationChangeNotification"); |
5617 ENTER_V8(i_isolate); | 5617 ENTER_V8(i_isolate); |
5618 | 5618 |
5619 i_isolate->date_cache()->ResetDateCache(); | 5619 i_isolate->date_cache()->ResetDateCache(); |
5620 | 5620 |
5621 i::HandleScope scope(i_isolate); | 5621 if (!i_isolate->eternal_handles()->Exists( |
5622 // Get the function ResetDateCache (defined in date.js). | 5622 i::EternalHandles::DATE_CACHE_VERSION)) { |
5623 i::Handle<i::String> func_name_str = | |
5624 i_isolate->factory()->InternalizeOneByteString( | |
5625 STATIC_ASCII_VECTOR("ResetDateCache")); | |
5626 i::MaybeObject* result = | |
5627 i_isolate->js_builtins_object()->GetProperty(*func_name_str); | |
5628 i::Object* object_func; | |
5629 if (!result->ToObject(&object_func)) { | |
5630 return; | 5623 return; |
5631 } | 5624 } |
5632 | 5625 i::Handle<i::FixedArray> date_cache_version = |
5633 if (object_func->IsJSFunction()) { | 5626 i::Handle<i::FixedArray>::cast(i_isolate->eternal_handles()->GetSingleton( |
5634 i::Handle<i::JSFunction> func = | 5627 i::EternalHandles::DATE_CACHE_VERSION)); |
5635 i::Handle<i::JSFunction>(i::JSFunction::cast(object_func)); | 5628 ASSERT_EQ(1, date_cache_version->length()); |
5636 | 5629 ASSERT(date_cache_version->get(0)->IsNumber()); |
5637 // Call ResetDateCache(0 but expect no exceptions: | 5630 date_cache_version->set(0, i::Smi::FromInt( |
5638 bool caught_exception = false; | 5631 date_cache_version->get(0)->Number() + 1)); |
5639 i::Execution::TryCall(func, | |
5640 i_isolate->js_builtins_object(), | |
5641 0, | |
5642 NULL, | |
5643 &caught_exception); | |
5644 } | |
5645 } | 5632 } |
5646 | 5633 |
5647 | 5634 |
5648 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) { | 5635 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) { |
5649 i::Isolate* isolate = i::Isolate::Current(); | 5636 i::Isolate* isolate = i::Isolate::Current(); |
5650 uint8_t flags_buf[3]; | 5637 uint8_t flags_buf[3]; |
5651 int num_flags = 0; | 5638 int num_flags = 0; |
5652 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g'; | 5639 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g'; |
5653 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm'; | 5640 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm'; |
5654 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i'; | 5641 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i'; |
(...skipping 1687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7342 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 7329 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
7343 Address callback_address = | 7330 Address callback_address = |
7344 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 7331 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
7345 VMState<EXTERNAL> state(isolate); | 7332 VMState<EXTERNAL> state(isolate); |
7346 ExternalCallbackScope call_scope(isolate, callback_address); | 7333 ExternalCallbackScope call_scope(isolate, callback_address); |
7347 callback(info); | 7334 callback(info); |
7348 } | 7335 } |
7349 | 7336 |
7350 | 7337 |
7351 } } // namespace v8::internal | 7338 } } // namespace v8::internal |
OLD | NEW |