| OLD | NEW |
| 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 8142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8153 HBasicBlock* if_true = inlined_test_context()->if_true(); | 8153 HBasicBlock* if_true = inlined_test_context()->if_true(); |
| 8154 HBasicBlock* if_false = inlined_test_context()->if_false(); | 8154 HBasicBlock* if_false = inlined_test_context()->if_false(); |
| 8155 | 8155 |
| 8156 HEnterInlined* entry = function_state()->entry(); | 8156 HEnterInlined* entry = function_state()->entry(); |
| 8157 | 8157 |
| 8158 // Pop the return test context from the expression context stack. | 8158 // Pop the return test context from the expression context stack. |
| 8159 ASSERT(ast_context() == inlined_test_context()); | 8159 ASSERT(ast_context() == inlined_test_context()); |
| 8160 ClearInlinedTestContext(); | 8160 ClearInlinedTestContext(); |
| 8161 delete target_state; | 8161 delete target_state; |
| 8162 | 8162 |
| 8163 TestContext* test_context = TestContext::cast(ast_context()); |
| 8164 |
| 8163 // Forward to the real test context. | 8165 // Forward to the real test context. |
| 8164 if (if_true->HasPredecessor()) { | 8166 if (if_true->HasPredecessor()) { |
| 8165 entry->RegisterReturnTarget(if_true, zone()); | 8167 entry->RegisterReturnTarget(if_true, zone()); |
| 8166 if_true->SetJoinId(ast_id); | 8168 if_true->SetJoinId(ast_id); |
| 8167 HBasicBlock* true_target = TestContext::cast(ast_context())->if_true(); | 8169 HBasicBlock* true_target = test_context->if_true(); |
| 8168 if_true->Goto(true_target, function_state()); | 8170 if_true->Goto(true_target, function_state()); |
| 8169 } | 8171 } |
| 8170 if (if_false->HasPredecessor()) { | 8172 if (if_false->HasPredecessor()) { |
| 8171 entry->RegisterReturnTarget(if_false, zone()); | 8173 entry->RegisterReturnTarget(if_false, zone()); |
| 8172 if_false->SetJoinId(ast_id); | 8174 if_false->SetJoinId(ast_id); |
| 8173 HBasicBlock* false_target = TestContext::cast(ast_context())->if_false(); | 8175 HBasicBlock* false_target = test_context->if_false(); |
| 8174 if_false->Goto(false_target, function_state()); | 8176 if_false->Goto(false_target, function_state()); |
| 8175 } | 8177 } |
| 8176 set_current_block(NULL); | 8178 set_current_block(NULL); |
| 8177 return true; | 8179 return true; |
| 8178 | 8180 |
| 8179 } else if (function_return()->HasPredecessor()) { | 8181 } else if (function_return()->HasPredecessor()) { |
| 8180 function_state()->entry()->RegisterReturnTarget(function_return(), zone()); | 8182 function_state()->entry()->RegisterReturnTarget(function_return(), zone()); |
| 8181 function_return()->SetJoinId(ast_id); | 8183 function_return()->SetJoinId(ast_id); |
| 8182 set_current_block(function_return()); | 8184 set_current_block(function_return()); |
| 8183 } else { | 8185 } else { |
| (...skipping 3400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11584 } | 11586 } |
| 11585 } | 11587 } |
| 11586 | 11588 |
| 11587 #ifdef DEBUG | 11589 #ifdef DEBUG |
| 11588 if (graph_ != NULL) graph_->Verify(false); // No full verify. | 11590 if (graph_ != NULL) graph_->Verify(false); // No full verify. |
| 11589 if (allocator_ != NULL) allocator_->Verify(); | 11591 if (allocator_ != NULL) allocator_->Verify(); |
| 11590 #endif | 11592 #endif |
| 11591 } | 11593 } |
| 11592 | 11594 |
| 11593 } } // namespace v8::internal | 11595 } } // namespace v8::internal |
| OLD | NEW |