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

Side by Side Diff: src/hydrogen-instructions.cc

Issue 10831153: Improve load IC so it can call a native accessor even if the holder is (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 4 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 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 1725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 break; 1736 break;
1737 case TRANSITION: 1737 case TRANSITION:
1738 case INTERCEPTOR: 1738 case INTERCEPTOR:
1739 case NONEXISTENT: 1739 case NONEXISTENT:
1740 case NORMAL: 1740 case NORMAL:
1741 case HANDLER: 1741 case HANDLER:
1742 UNREACHABLE(); 1742 UNREACHABLE();
1743 break; 1743 break;
1744 } 1744 }
1745 } else if (lookup.IsCacheable() && 1745 } else if (lookup.IsCacheable() &&
1746 // For dicts the lookup on the map will fail, but the object may
1747 // contain the property so we cannot generate a negative lookup
1748 // (which would just be a map check and return undefined).
1749 !map->is_dictionary_map() &&
1746 PrototypeChainCanNeverResolve(map, name)) { 1750 PrototypeChainCanNeverResolve(map, name)) {
1747 negative_lookups.Add(types->at(i), zone); 1751 negative_lookups.Add(types->at(i), zone);
1748 } 1752 }
1749 } 1753 }
1750 1754
1751 bool need_generic = 1755 bool need_generic =
1752 (types->length() != negative_lookups.length() + types_.length()); 1756 (types->length() != negative_lookups.length() + types_.length());
1753 if (!need_generic && FLAG_deoptimize_uncommon_cases) { 1757 if (!need_generic && FLAG_deoptimize_uncommon_cases) {
1754 SetFlag(kUseGVN); 1758 SetFlag(kUseGVN);
1755 for (int i = 0; i < negative_lookups.length(); i++) { 1759 for (int i = 0; i < negative_lookups.length(); i++) {
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
2584 2588
2585 2589
2586 void HCheckPrototypeMaps::Verify() { 2590 void HCheckPrototypeMaps::Verify() {
2587 HInstruction::Verify(); 2591 HInstruction::Verify();
2588 ASSERT(HasNoUses()); 2592 ASSERT(HasNoUses());
2589 } 2593 }
2590 2594
2591 #endif 2595 #endif
2592 2596
2593 } } // namespace v8::internal 2597 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698