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

Side by Side Diff: src/hydrogen.cc

Issue 9280007: Replaced LookupResult::IsProperty by LookupResult::IsFound where possible. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: 2 fixes Created 8 years, 11 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 | « src/bootstrapper.cc ('k') | src/hydrogen-instructions.cc » ('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 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 3189 matching lines...) Expand 10 before | Expand all | Expand 10 after
3200 } 3200 }
3201 3201
3202 3202
3203 HGraphBuilder::GlobalPropertyAccess HGraphBuilder::LookupGlobalProperty( 3203 HGraphBuilder::GlobalPropertyAccess HGraphBuilder::LookupGlobalProperty(
3204 Variable* var, LookupResult* lookup, bool is_store) { 3204 Variable* var, LookupResult* lookup, bool is_store) {
3205 if (var->is_this() || !info()->has_global_object()) { 3205 if (var->is_this() || !info()->has_global_object()) {
3206 return kUseGeneric; 3206 return kUseGeneric;
3207 } 3207 }
3208 Handle<GlobalObject> global(info()->global_object()); 3208 Handle<GlobalObject> global(info()->global_object());
3209 global->Lookup(*var->name(), lookup); 3209 global->Lookup(*var->name(), lookup);
3210 if (!lookup->IsProperty() || 3210 if (!lookup->IsFound() ||
3211 lookup->type() != NORMAL || 3211 lookup->type() != NORMAL ||
3212 (is_store && lookup->IsReadOnly()) || 3212 (is_store && lookup->IsReadOnly()) ||
3213 lookup->holder() != *global) { 3213 lookup->holder() != *global) {
3214 return kUseGeneric; 3214 return kUseGeneric;
3215 } 3215 }
3216 3216
3217 return kUseCell; 3217 return kUseCell;
3218 } 3218 }
3219 3219
3220 3220
(...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after
4152 return new(zone()) HLoadNamedGeneric(context, obj, name); 4152 return new(zone()) HLoadNamedGeneric(context, obj, name);
4153 } 4153 }
4154 4154
4155 4155
4156 HInstruction* HGraphBuilder::BuildLoadNamed(HValue* obj, 4156 HInstruction* HGraphBuilder::BuildLoadNamed(HValue* obj,
4157 Property* expr, 4157 Property* expr,
4158 Handle<Map> map, 4158 Handle<Map> map,
4159 Handle<String> name) { 4159 Handle<String> name) {
4160 LookupResult lookup(isolate()); 4160 LookupResult lookup(isolate());
4161 map->LookupInDescriptors(NULL, *name, &lookup); 4161 map->LookupInDescriptors(NULL, *name, &lookup);
4162 if (lookup.IsProperty() && lookup.type() == FIELD) { 4162 if (lookup.IsFound() && lookup.type() == FIELD) {
4163 return BuildLoadNamedField(obj, 4163 return BuildLoadNamedField(obj,
4164 expr, 4164 expr,
4165 map, 4165 map,
4166 &lookup, 4166 &lookup,
4167 true); 4167 true);
4168 } else if (lookup.IsProperty() && lookup.type() == CONSTANT_FUNCTION) { 4168 } else if (lookup.IsFound() && lookup.type() == CONSTANT_FUNCTION) {
4169 AddInstruction(new(zone()) HCheckNonSmi(obj)); 4169 AddInstruction(new(zone()) HCheckNonSmi(obj));
4170 AddInstruction(new(zone()) HCheckMap(obj, map, NULL, 4170 AddInstruction(new(zone()) HCheckMap(obj, map, NULL,
4171 ALLOW_ELEMENT_TRANSITION_MAPS)); 4171 ALLOW_ELEMENT_TRANSITION_MAPS));
4172 Handle<JSFunction> function(lookup.GetConstantFunctionFromMap(*map)); 4172 Handle<JSFunction> function(lookup.GetConstantFunctionFromMap(*map));
4173 return new(zone()) HConstant(function, Representation::Tagged()); 4173 return new(zone()) HConstant(function, Representation::Tagged());
4174 } else { 4174 } else {
4175 return BuildLoadNamedGeneric(obj, expr); 4175 return BuildLoadNamedGeneric(obj, expr);
4176 } 4176 }
4177 } 4177 }
4178 4178
(...skipping 2067 matching lines...) Expand 10 before | Expand all | Expand 10 after
6246 Handle<JSFunction> target = Handle<JSFunction>::null(); 6246 Handle<JSFunction> target = Handle<JSFunction>::null();
6247 VariableProxy* proxy = expr->right()->AsVariableProxy(); 6247 VariableProxy* proxy = expr->right()->AsVariableProxy();
6248 bool global_function = (proxy != NULL) && proxy->var()->IsUnallocated(); 6248 bool global_function = (proxy != NULL) && proxy->var()->IsUnallocated();
6249 if (global_function && 6249 if (global_function &&
6250 info()->has_global_object() && 6250 info()->has_global_object() &&
6251 !info()->global_object()->IsAccessCheckNeeded()) { 6251 !info()->global_object()->IsAccessCheckNeeded()) {
6252 Handle<String> name = proxy->name(); 6252 Handle<String> name = proxy->name();
6253 Handle<GlobalObject> global(info()->global_object()); 6253 Handle<GlobalObject> global(info()->global_object());
6254 LookupResult lookup(isolate()); 6254 LookupResult lookup(isolate());
6255 global->Lookup(*name, &lookup); 6255 global->Lookup(*name, &lookup);
6256 if (lookup.IsProperty() && 6256 if (lookup.IsFound() &&
6257 lookup.type() == NORMAL && 6257 lookup.type() == NORMAL &&
6258 lookup.GetValue()->IsJSFunction()) { 6258 lookup.GetValue()->IsJSFunction()) {
6259 Handle<JSFunction> candidate(JSFunction::cast(lookup.GetValue())); 6259 Handle<JSFunction> candidate(JSFunction::cast(lookup.GetValue()));
6260 // If the function is in new space we assume it's more likely to 6260 // If the function is in new space we assume it's more likely to
6261 // change and thus prefer the general IC code. 6261 // change and thus prefer the general IC code.
6262 if (!isolate()->heap()->InNewSpace(*candidate)) { 6262 if (!isolate()->heap()->InNewSpace(*candidate)) {
6263 target = candidate; 6263 target = candidate;
6264 } 6264 }
6265 } 6265 }
6266 } 6266 }
(...skipping 1145 matching lines...) Expand 10 before | Expand all | Expand 10 after
7412 } 7412 }
7413 } 7413 }
7414 7414
7415 #ifdef DEBUG 7415 #ifdef DEBUG
7416 if (graph_ != NULL) graph_->Verify(false); // No full verify. 7416 if (graph_ != NULL) graph_->Verify(false); // No full verify.
7417 if (allocator_ != NULL) allocator_->Verify(); 7417 if (allocator_ != NULL) allocator_->Verify();
7418 #endif 7418 #endif
7419 } 7419 }
7420 7420
7421 } } // namespace v8::internal 7421 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/bootstrapper.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698