OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 10788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10799 ASSERT_EQ(builtins->builtin(Builtins::kJSConstructStubGeneric), | 10799 ASSERT_EQ(builtins->builtin(Builtins::kJSConstructStubGeneric), |
10800 *RawField(this, kConstructStubOffset)); | 10800 *RawField(this, kConstructStubOffset)); |
10801 set_construct_stub(builtins->builtin(Builtins::kJSConstructStubCountdown)); | 10801 set_construct_stub(builtins->builtin(Builtins::kJSConstructStubCountdown)); |
10802 // The map survived the gc, so there may be objects referencing it. | 10802 // The map survived the gc, so there may be objects referencing it. |
10803 set_live_objects_may_exist(true); | 10803 set_live_objects_may_exist(true); |
10804 } | 10804 } |
10805 | 10805 |
10806 | 10806 |
10807 void SharedFunctionInfo::ResetForNewContext(int new_ic_age) { | 10807 void SharedFunctionInfo::ResetForNewContext(int new_ic_age) { |
10808 code()->ClearInlineCaches(); | 10808 code()->ClearInlineCaches(); |
| 10809 // If we clear ICs, we need to clear the type feedback vector too, since |
| 10810 // CallICs are synced with a feedback vector slot. |
| 10811 ClearTypeFeedbackInfo(map()->GetHeap()); |
10809 set_ic_age(new_ic_age); | 10812 set_ic_age(new_ic_age); |
10810 if (code()->kind() == Code::FUNCTION) { | 10813 if (code()->kind() == Code::FUNCTION) { |
10811 code()->set_profiler_ticks(0); | 10814 code()->set_profiler_ticks(0); |
10812 if (optimization_disabled() && | 10815 if (optimization_disabled() && |
10813 opt_count() >= FLAG_max_opt_count) { | 10816 opt_count() >= FLAG_max_opt_count) { |
10814 // Re-enable optimizations if they were disabled due to opt_count limit. | 10817 // Re-enable optimizations if they were disabled due to opt_count limit. |
10815 set_optimization_disabled(false); | 10818 set_optimization_disabled(false); |
10816 code()->set_optimizable(true); | 10819 code()->set_optimizable(true); |
10817 } | 10820 } |
10818 set_opt_count(0); | 10821 set_opt_count(0); |
(...skipping 6609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17428 #define ERROR_MESSAGES_TEXTS(C, T) T, | 17431 #define ERROR_MESSAGES_TEXTS(C, T) T, |
17429 static const char* error_messages_[] = { | 17432 static const char* error_messages_[] = { |
17430 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 17433 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
17431 }; | 17434 }; |
17432 #undef ERROR_MESSAGES_TEXTS | 17435 #undef ERROR_MESSAGES_TEXTS |
17433 return error_messages_[reason]; | 17436 return error_messages_[reason]; |
17434 } | 17437 } |
17435 | 17438 |
17436 | 17439 |
17437 } } // namespace v8::internal | 17440 } } // namespace v8::internal |
OLD | NEW |