| OLD | NEW |
| 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 1732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1743 // Found a previously materialized object by de-duplication. | 1743 // Found a previously materialized object by de-duplication. |
| 1744 object_index = desc.duplicate_object(); | 1744 object_index = desc.duplicate_object(); |
| 1745 materialized_objects_->Add(Handle<Object>()); | 1745 materialized_objects_->Add(Handle<Object>()); |
| 1746 } else if (desc.is_arguments() && ArgumentsObjectIsAdapted(object_index)) { | 1746 } else if (desc.is_arguments() && ArgumentsObjectIsAdapted(object_index)) { |
| 1747 // Use the arguments adapter frame we just built to materialize the | 1747 // Use the arguments adapter frame we just built to materialize the |
| 1748 // arguments object. FunctionGetArguments can't throw an exception. | 1748 // arguments object. FunctionGetArguments can't throw an exception. |
| 1749 Handle<JSFunction> function = ArgumentsObjectFunction(object_index); | 1749 Handle<JSFunction> function = ArgumentsObjectFunction(object_index); |
| 1750 Handle<JSObject> arguments = Handle<JSObject>::cast( | 1750 Handle<JSObject> arguments = Handle<JSObject>::cast( |
| 1751 Accessors::FunctionGetArguments(function)); | 1751 Accessors::FunctionGetArguments(function)); |
| 1752 materialized_objects_->Add(arguments); | 1752 materialized_objects_->Add(arguments); |
| 1753 materialization_value_index_ += length; | 1753 // To keep consistent object counters, we still materialize the |
| 1754 // nested values (but we throw them away). |
| 1755 for (int i = 0; i < length; ++i) { |
| 1756 MaterializeNextValue(); |
| 1757 } |
| 1754 } else if (desc.is_arguments()) { | 1758 } else if (desc.is_arguments()) { |
| 1755 // Construct an arguments object and copy the parameters to a newly | 1759 // Construct an arguments object and copy the parameters to a newly |
| 1756 // allocated arguments object backing store. | 1760 // allocated arguments object backing store. |
| 1757 Handle<JSFunction> function = ArgumentsObjectFunction(object_index); | 1761 Handle<JSFunction> function = ArgumentsObjectFunction(object_index); |
| 1758 Handle<JSObject> arguments = | 1762 Handle<JSObject> arguments = |
| 1759 isolate_->factory()->NewArgumentsObject(function, length); | 1763 isolate_->factory()->NewArgumentsObject(function, length); |
| 1760 Handle<FixedArray> array = isolate_->factory()->NewFixedArray(length); | 1764 Handle<FixedArray> array = isolate_->factory()->NewFixedArray(length); |
| 1761 ASSERT(array->length() == length); | 1765 ASSERT(array->length() == length); |
| 1762 arguments->set_elements(*array); | 1766 arguments->set_elements(*array); |
| 1763 materialized_objects_->Add(arguments); | 1767 materialized_objects_->Add(arguments); |
| (...skipping 1702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3466 | 3470 |
| 3467 void DeoptimizedFrameInfo::Iterate(ObjectVisitor* v) { | 3471 void DeoptimizedFrameInfo::Iterate(ObjectVisitor* v) { |
| 3468 v->VisitPointer(BitCast<Object**>(&function_)); | 3472 v->VisitPointer(BitCast<Object**>(&function_)); |
| 3469 v->VisitPointers(parameters_, parameters_ + parameters_count_); | 3473 v->VisitPointers(parameters_, parameters_ + parameters_count_); |
| 3470 v->VisitPointers(expression_stack_, expression_stack_ + expression_count_); | 3474 v->VisitPointers(expression_stack_, expression_stack_ + expression_count_); |
| 3471 } | 3475 } |
| 3472 | 3476 |
| 3473 #endif // ENABLE_DEBUGGER_SUPPORT | 3477 #endif // ENABLE_DEBUGGER_SUPPORT |
| 3474 | 3478 |
| 3475 } } // namespace v8::internal | 3479 } } // namespace v8::internal |
| OLD | NEW |