Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(358)

Side by Side Diff: src/factory.cc

Issue 184923002: Clear optimized code cache in shared function info when code gets deoptimized (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 context->native_context()); 960 context->native_context());
961 } 961 }
962 result->set_literals(*literals); 962 result->set_literals(*literals);
963 } 963 }
964 964
965 if (index > 0) { 965 if (index > 0) {
966 // Caching of optimized code enabled and optimized code found. 966 // Caching of optimized code enabled and optimized code found.
967 FixedArray* literals = 967 FixedArray* literals =
968 function_info->GetLiteralsFromOptimizedCodeMap(index); 968 function_info->GetLiteralsFromOptimizedCodeMap(index);
969 if (literals != NULL) result->set_literals(literals); 969 if (literals != NULL) result->set_literals(literals);
970 Code* code = function_info->GetCodeFromOptimizedCodeMap(index); 970 result->ReplaceCode(function_info->GetCodeFromOptimizedCodeMap(index));
ulan 2014/03/01 13:59:43 Revert change from r19603
971 result->ReplaceCode(code);
972 return result; 971 return result;
973 } 972 }
974 973
975 if (isolate()->use_crankshaft() && 974 if (isolate()->use_crankshaft() &&
976 FLAG_always_opt && 975 FLAG_always_opt &&
977 result->is_compiled() && 976 result->is_compiled() &&
978 !function_info->is_toplevel() && 977 !function_info->is_toplevel() &&
979 function_info->allows_lazy_compilation() && 978 function_info->allows_lazy_compilation() &&
980 !function_info->optimization_disabled() && 979 !function_info->optimization_disabled() &&
981 !isolate()->DebuggerHasBreakPoints()) { 980 !isolate()->DebuggerHasBreakPoints()) {
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after
1989 return Handle<Object>::null(); 1988 return Handle<Object>::null();
1990 } 1989 }
1991 1990
1992 1991
1993 Handle<Object> Factory::ToBoolean(bool value) { 1992 Handle<Object> Factory::ToBoolean(bool value) {
1994 return value ? true_value() : false_value(); 1993 return value ? true_value() : false_value();
1995 } 1994 }
1996 1995
1997 1996
1998 } } // namespace v8::internal 1997 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698