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

Side by Side Diff: src/hydrogen.cc

Issue 150983002: Fix regression caused by supporting inlining accesses to non-JSObjects (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 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
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-keyed-access-string-length.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6696 matching lines...) Expand 10 before | Expand all | Expand 10 after
6707 if (current_map->DictionaryElementsInPrototypeChainOnly()) { 6707 if (current_map->DictionaryElementsInPrototypeChainOnly()) {
6708 force_generic = true; 6708 force_generic = true;
6709 monomorphic = false; 6709 monomorphic = false;
6710 break; 6710 break;
6711 } 6711 }
6712 } 6712 }
6713 } 6713 }
6714 6714
6715 if (monomorphic) { 6715 if (monomorphic) {
6716 Handle<Map> map = types->first(); 6716 Handle<Map> map = types->first();
6717 if (map->has_slow_elements_kind()) { 6717 if (map->has_slow_elements_kind() || !map->IsJSObjectMap()) {
6718 instr = is_store ? BuildStoreKeyedGeneric(obj, key, val) 6718 instr = is_store ? BuildStoreKeyedGeneric(obj, key, val)
6719 : BuildLoadKeyedGeneric(obj, key); 6719 : BuildLoadKeyedGeneric(obj, key);
6720 AddInstruction(instr); 6720 AddInstruction(instr);
6721 } else { 6721 } else {
6722 BuildCheckHeapObject(obj); 6722 BuildCheckHeapObject(obj);
6723 instr = BuildMonomorphicElementAccess( 6723 instr = BuildMonomorphicElementAccess(
6724 obj, key, val, NULL, map, is_store, expr->GetStoreMode()); 6724 obj, key, val, NULL, map, is_store, expr->GetStoreMode());
6725 } 6725 }
6726 } else if (!force_generic && (types != NULL && !types->is_empty())) { 6726 } else if (!force_generic && (types != NULL && !types->is_empty())) {
6727 return HandlePolymorphicElementAccess( 6727 return HandlePolymorphicElementAccess(
(...skipping 4732 matching lines...) Expand 10 before | Expand all | Expand 10 after
11460 if (ShouldProduceTraceOutput()) { 11460 if (ShouldProduceTraceOutput()) {
11461 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 11461 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
11462 } 11462 }
11463 11463
11464 #ifdef DEBUG 11464 #ifdef DEBUG
11465 graph_->Verify(false); // No full verify. 11465 graph_->Verify(false); // No full verify.
11466 #endif 11466 #endif
11467 } 11467 }
11468 11468
11469 } } // namespace v8::internal 11469 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-keyed-access-string-length.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698