| Index: src/hydrogen.h
 | 
| ===================================================================
 | 
| --- src/hydrogen.h	(revision 7211)
 | 
| +++ src/hydrogen.h	(working copy)
 | 
| @@ -445,6 +445,9 @@
 | 
|    // the instruction as value.
 | 
|    virtual void ReturnInstruction(HInstruction* instr, int ast_id) = 0;
 | 
|  
 | 
| +  void set_for_typeof(bool for_typeof) { for_typeof_ = for_typeof; }
 | 
| +  bool is_for_typeof() { return for_typeof_; }
 | 
| +
 | 
|   protected:
 | 
|    AstContext(HGraphBuilder* owner, Expression::Context kind);
 | 
|    virtual ~AstContext();
 | 
| @@ -461,6 +464,7 @@
 | 
|    HGraphBuilder* owner_;
 | 
|    Expression::Context kind_;
 | 
|    AstContext* outer_;
 | 
| +  bool for_typeof_;
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -727,6 +731,7 @@
 | 
|    void Bind(Variable* var, HValue* value) { environment()->Bind(var, value); }
 | 
|  
 | 
|    void VisitForValue(Expression* expr);
 | 
| +  void VisitForTypeOf(Expression* expr);
 | 
|    void VisitForEffect(Expression* expr);
 | 
|    void VisitForControl(Expression* expr,
 | 
|                         HBasicBlock* true_block,
 | 
| @@ -762,9 +767,13 @@
 | 
|    HBasicBlock* CreateLoopHeaderBlock();
 | 
|  
 | 
|    // Helpers for flow graph construction.
 | 
| -  void LookupGlobalPropertyCell(Variable* var,
 | 
| -                                LookupResult* lookup,
 | 
| -                                bool is_store);
 | 
| +  enum GlobalPropertyAccess {
 | 
| +    kUseCell,
 | 
| +    kUseGeneric
 | 
| +  };
 | 
| +  GlobalPropertyAccess LookupGlobalProperty(Variable* var,
 | 
| +                                            LookupResult* lookup,
 | 
| +                                            bool is_store);
 | 
|  
 | 
|    bool TryArgumentsAccess(Property* expr);
 | 
|    bool TryCallApply(Call* expr);
 | 
| 
 |