Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 426fad4c6852e76093358531f51a0f8092e460bb..25522e87ec0b128fd4f020486e4fbb06c5162a8a 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -4655,14 +4655,14 @@ static bool PrototypeChainCanNeverResolve( |
void HOptimizedGraphBuilder::HandlePolymorphicLoadNamedField( |
int position, |
- BailoutId return_id, |
+ BailoutId ast_id, |
HValue* object, |
SmallMapList* types, |
Handle<String> name) { |
HInstruction* instr = TryLoadPolymorphicAsMonomorphic(object, types, name); |
if (instr != NULL) { |
instr->set_position(position); |
- return ast_context()->ReturnInstruction(instr, return_id); |
+ return ast_context()->ReturnInstruction(instr, ast_id); |
} |
// Something did not match; must use a polymorphic load. |
@@ -4734,14 +4734,14 @@ void HOptimizedGraphBuilder::HandlePolymorphicLoadNamedField( |
if (join != NULL) { |
current_block()->Goto(join); |
} else { |
- Add<HSimulate>(return_id, REMOVABLE_SIMULATE); |
+ Add<HSimulate>(ast_id, REMOVABLE_SIMULATE); |
if (!ast_context()->IsEffect()) ast_context()->ReturnValue(Pop()); |
return; |
} |
} |
ASSERT(join != NULL); |
- join->SetJoinId(return_id); |
+ join->SetJoinId(ast_id); |
set_current_block(join); |
if (!ast_context()->IsEffect()) ast_context()->ReturnValue(Pop()); |
} |
@@ -5122,7 +5122,7 @@ void HOptimizedGraphBuilder::HandleCompoundAssignment(Assignment* expr) { |
// Named property. |
CHECK_ALIVE(VisitForValue(prop->obj())); |
HValue* object = Top(); |
- PushLoad(prop, object, expr->position(), expr->id(), prop->LoadId()); |
+ PushLoad(prop, object, expr->position()); |
CHECK_ALIVE(VisitForValue(expr->value())); |
HValue* right = Pop(); |
@@ -5825,19 +5825,16 @@ bool HOptimizedGraphBuilder::TryArgumentsAccess(Property* expr) { |
void HOptimizedGraphBuilder::PushLoad(Property* expr, |
HValue* object, |
- int position, |
- BailoutId ast_id, |
- BailoutId return_id) { |
+ int position) { |
ValueContext for_value(this, ARGUMENTS_NOT_ALLOWED); |
Push(object); |
- BuildLoad(expr, position, ast_id, return_id); |
+ BuildLoad(expr, position, expr->LoadId()); |
} |
void HOptimizedGraphBuilder::BuildLoad(Property* expr, |
int position, |
- BailoutId ast_id, |
- BailoutId return_id) { |
+ BailoutId ast_id) { |
HInstruction* instr = NULL; |
if (expr->IsStringLength()) { |
HValue* string = Pop(); |
@@ -5879,7 +5876,10 @@ void HOptimizedGraphBuilder::BuildLoad(Property* expr, |
Handle<JSObject> holder; |
if (LookupGetter(map, name, &getter, &holder)) { |
AddCheckConstantFunction(holder, Top(), map); |
- if (FLAG_inline_accessors && TryInlineGetter(getter, return_id)) return; |
+ if (FLAG_inline_accessors && |
+ TryInlineGetter(getter, ast_id, expr->LoadId())) { |
+ return; |
+ } |
Add<HPushArgument>(Pop()); |
instr = new(zone()) HCallConstantFunction(getter, 1); |
} else { |
@@ -5887,7 +5887,7 @@ void HOptimizedGraphBuilder::BuildLoad(Property* expr, |
} |
} else if (types != NULL && types->length() > 1) { |
return HandlePolymorphicLoadNamedField( |
- position, return_id, Pop(), types, name); |
+ position, ast_id, Pop(), types, name); |
} else { |
instr = BuildLoadNamedGeneric(Pop(), name, expr); |
} |
@@ -5900,22 +5900,22 @@ void HOptimizedGraphBuilder::BuildLoad(Property* expr, |
bool has_side_effects = false; |
HValue* load = HandleKeyedElementAccess( |
- obj, key, NULL, expr, return_id, position, |
+ obj, key, NULL, expr, ast_id, position, |
false, // is_store |
&has_side_effects); |
if (has_side_effects) { |
if (ast_context()->IsEffect()) { |
- Add<HSimulate>(return_id, REMOVABLE_SIMULATE); |
+ Add<HSimulate>(ast_id, REMOVABLE_SIMULATE); |
} else { |
Push(load); |
- Add<HSimulate>(return_id, REMOVABLE_SIMULATE); |
+ Add<HSimulate>(ast_id, REMOVABLE_SIMULATE); |
Drop(1); |
} |
} |
return ast_context()->ReturnValue(load); |
} |
instr->set_position(position); |
- return ast_context()->ReturnInstruction(instr, return_id); |
+ return ast_context()->ReturnInstruction(instr, ast_id); |
} |
@@ -5927,7 +5927,7 @@ void HOptimizedGraphBuilder::VisitProperty(Property* expr) { |
if (TryArgumentsAccess(expr)) return; |
CHECK_ALIVE(VisitForValue(expr->obj())); |
- BuildLoad(expr, expr->position(), expr->id(), expr->id()); |
+ BuildLoad(expr, expr->position(), expr->id()); |
} |
@@ -6604,12 +6604,13 @@ bool HOptimizedGraphBuilder::TryInlineConstruct(CallNew* expr, |
bool HOptimizedGraphBuilder::TryInlineGetter(Handle<JSFunction> getter, |
+ BailoutId ast_id, |
BailoutId return_id) { |
return TryInline(CALL_AS_METHOD, |
getter, |
0, |
NULL, |
- return_id, |
+ ast_id, |
return_id, |
GETTER_CALL_RETURN); |
} |
@@ -7560,7 +7561,7 @@ void HOptimizedGraphBuilder::VisitCountOperation(CountOperation* expr) { |
CHECK_ALIVE(VisitForValue(prop->obj())); |
HValue* object = Top(); |
- PushLoad(prop, object, expr->position(), expr->id(), prop->LoadId()); |
+ PushLoad(prop, object, expr->position()); |
after = BuildIncrement(returns_original_input, expr); |