Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index 67d96ae56a0aef9dcedd9975e017a9b8b354f961..db85ebf54187fed37a4c8a3b50aea93a94279a07 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -67,7 +67,7 @@ class TranslatedValue BASE_EMBEDDED { |
static TranslatedValue NewUInt32(TranslatedState* container, uint32_t value); |
static TranslatedValue NewBool(TranslatedState* container, uint32_t value); |
static TranslatedValue NewTagged(TranslatedState* container, Object* literal); |
- static TranslatedValue NewInvalid(); |
+ static TranslatedValue NewInvalid(TranslatedState* container); |
Isolate* isolate() const; |
void MaterializeSimple(); |
@@ -125,10 +125,10 @@ class TranslatedFrame { |
int GetValueCount(); |
Kind kind() const { return kind_; } |
- BailoutId node_id() { return node_id_; } |
- JSFunction* raw_function() { return raw_function_; } |
- Handle<JSFunction> function() { return function_; } |
- int height() { return height_; } |
+ BailoutId node_id() const { return node_id_; } |
+ JSFunction* raw_function() const { return raw_function_; } |
+ Handle<JSFunction> function() const { return function_; } |
+ int height() const { return height_; } |
class iterator { |
public: |
@@ -160,8 +160,13 @@ class TranslatedFrame { |
std::deque<TranslatedValue>::iterator position_; |
}; |
+ typedef TranslatedValue& reference; |
+ typedef TranslatedValue const& const_reference; |
+ |
iterator begin() { return iterator(values_.begin()); } |
iterator end() { return iterator(values_.end()); } |
+ reference front() { return values_.front(); } |
+ const_reference front() const { return values_.front(); } |
private: |
friend class TranslatedState; |
@@ -232,6 +237,10 @@ class TranslatedState { |
// Store newly materialized values into the isolate. |
void StoreMaterializedValuesAndDeopt(); |
+ typedef std::vector<TranslatedFrame>::const_iterator const_iterator; |
+ const_iterator begin() const { return frames_.begin(); } |
+ const_iterator end() const { return frames_.end(); } |
+ |
std::vector<TranslatedFrame>& frames() { return frames_; } |
TranslatedFrame* GetArgumentsInfoFromJSFrameIndex(int jsframe_index, |