OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_DEOPTIMIZER_H_ | 5 #ifndef V8_DEOPTIMIZER_H_ |
6 #define V8_DEOPTIMIZER_H_ | 6 #define V8_DEOPTIMIZER_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/deoptimize-reason.h" | 9 #include "src/deoptimize-reason.h" |
10 #include "src/macro-assembler.h" | 10 #include "src/macro-assembler.h" |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 TranslatedValue CreateNextTranslatedValue(int frame_index, int value_index, | 285 TranslatedValue CreateNextTranslatedValue(int frame_index, int value_index, |
286 TranslationIterator* iterator, | 286 TranslationIterator* iterator, |
287 FixedArray* literal_array, | 287 FixedArray* literal_array, |
288 Address fp, | 288 Address fp, |
289 RegisterValues* registers, | 289 RegisterValues* registers, |
290 FILE* trace_file); | 290 FILE* trace_file); |
291 | 291 |
292 void UpdateFromPreviouslyMaterializedObjects(); | 292 void UpdateFromPreviouslyMaterializedObjects(); |
293 Handle<Object> MaterializeAt(int frame_index, int* value_index); | 293 Handle<Object> MaterializeAt(int frame_index, int* value_index); |
294 Handle<Object> MaterializeObjectAt(int object_index); | 294 Handle<Object> MaterializeObjectAt(int object_index); |
| 295 class CapturedObjectMaterializer; |
| 296 Handle<Object> MaterializeCapturedObjectAt(TranslatedValue* slot, |
| 297 int frame_index, int* value_index); |
295 bool GetAdaptedArguments(Handle<JSObject>* result, int frame_index); | 298 bool GetAdaptedArguments(Handle<JSObject>* result, int frame_index); |
296 | 299 |
297 static uint32_t GetUInt32Slot(Address fp, int slot_index); | 300 static uint32_t GetUInt32Slot(Address fp, int slot_index); |
298 | 301 |
299 std::vector<TranslatedFrame> frames_; | 302 std::vector<TranslatedFrame> frames_; |
300 Isolate* isolate_; | 303 Isolate* isolate_; |
301 Address stack_frame_pointer_; | 304 Address stack_frame_pointer_; |
302 bool has_adapted_arguments_; | 305 bool has_adapted_arguments_; |
303 | 306 |
304 struct ObjectPosition { | 307 struct ObjectPosition { |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1056 std::vector<Handle<Object> > expression_stack_; | 1059 std::vector<Handle<Object> > expression_stack_; |
1057 int source_position_; | 1060 int source_position_; |
1058 | 1061 |
1059 friend class Deoptimizer; | 1062 friend class Deoptimizer; |
1060 }; | 1063 }; |
1061 | 1064 |
1062 } // namespace internal | 1065 } // namespace internal |
1063 } // namespace v8 | 1066 } // namespace v8 |
1064 | 1067 |
1065 #endif // V8_DEOPTIMIZER_H_ | 1068 #endif // V8_DEOPTIMIZER_H_ |
OLD | NEW |