OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "accessors.h" | 7 #include "accessors.h" |
8 #include "allocation-site-scopes.h" | 8 #include "allocation-site-scopes.h" |
9 #include "api.h" | 9 #include "api.h" |
10 #include "arguments.h" | 10 #include "arguments.h" |
(...skipping 10719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10730 ASSERT_EQ(builtins->builtin(Builtins::kJSConstructStubGeneric), | 10730 ASSERT_EQ(builtins->builtin(Builtins::kJSConstructStubGeneric), |
10731 *RawField(this, kConstructStubOffset)); | 10731 *RawField(this, kConstructStubOffset)); |
10732 set_construct_stub(builtins->builtin(Builtins::kJSConstructStubCountdown)); | 10732 set_construct_stub(builtins->builtin(Builtins::kJSConstructStubCountdown)); |
10733 // The map survived the gc, so there may be objects referencing it. | 10733 // The map survived the gc, so there may be objects referencing it. |
10734 set_live_objects_may_exist(true); | 10734 set_live_objects_may_exist(true); |
10735 } | 10735 } |
10736 | 10736 |
10737 | 10737 |
10738 void SharedFunctionInfo::ResetForNewContext(int new_ic_age) { | 10738 void SharedFunctionInfo::ResetForNewContext(int new_ic_age) { |
10739 code()->ClearInlineCaches(); | 10739 code()->ClearInlineCaches(); |
| 10740 // If we clear ICs, we need to clear the type feedback vector too, since |
| 10741 // CallICs are synced with a feedback vector slot. |
| 10742 ClearTypeFeedbackInfo(); |
10740 set_ic_age(new_ic_age); | 10743 set_ic_age(new_ic_age); |
10741 if (code()->kind() == Code::FUNCTION) { | 10744 if (code()->kind() == Code::FUNCTION) { |
10742 code()->set_profiler_ticks(0); | 10745 code()->set_profiler_ticks(0); |
10743 if (optimization_disabled() && | 10746 if (optimization_disabled() && |
10744 opt_count() >= FLAG_max_opt_count) { | 10747 opt_count() >= FLAG_max_opt_count) { |
10745 // Re-enable optimizations if they were disabled due to opt_count limit. | 10748 // Re-enable optimizations if they were disabled due to opt_count limit. |
10746 set_optimization_disabled(false); | 10749 set_optimization_disabled(false); |
10747 code()->set_optimizable(true); | 10750 code()->set_optimizable(true); |
10748 } | 10751 } |
10749 set_opt_count(0); | 10752 set_opt_count(0); |
(...skipping 6467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17217 #define ERROR_MESSAGES_TEXTS(C, T) T, | 17220 #define ERROR_MESSAGES_TEXTS(C, T) T, |
17218 static const char* error_messages_[] = { | 17221 static const char* error_messages_[] = { |
17219 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 17222 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
17220 }; | 17223 }; |
17221 #undef ERROR_MESSAGES_TEXTS | 17224 #undef ERROR_MESSAGES_TEXTS |
17222 return error_messages_[reason]; | 17225 return error_messages_[reason]; |
17223 } | 17226 } |
17224 | 17227 |
17225 | 17228 |
17226 } } // namespace v8::internal | 17229 } } // namespace v8::internal |
OLD | NEW |