| Index: src/full-codegen.h | 
| diff --git a/src/full-codegen.h b/src/full-codegen.h | 
| index 25e3dba124dfc2f954b5b4dffa90f2e67784443f..58d59862a5dc1703d91d0baf43e4fffde9ed4af4 100644 | 
| --- a/src/full-codegen.h | 
| +++ b/src/full-codegen.h | 
| @@ -470,6 +470,8 @@ class FullCodeGenerator: public AstVisitor { | 
| Label* done); | 
| void EmitVariableLoad(VariableProxy* proxy); | 
|  | 
| +  void EmitAccessor(Expression* expression); | 
| + | 
| // Expects the arguments and the function already pushed. | 
| void EmitResolvePossiblyDirectEval(int arg_count); | 
|  | 
| @@ -804,6 +806,28 @@ class FullCodeGenerator: public AstVisitor { | 
| }; | 
|  | 
|  | 
| +// A map from property names to getter/setter pairs allocated in the zone. | 
| +class AccessorTable: public TemplateHashMap<Literal, | 
| +                                            ObjectLiteral::Accessors, | 
| +                                            ZoneListAllocationPolicy> { | 
| + public: | 
| +  explicit AccessorTable(Zone* zone) : | 
| +      TemplateHashMap<Literal, | 
| +                      ObjectLiteral::Accessors, | 
| +                      ZoneListAllocationPolicy>(Literal::Match), | 
| +      zone_(zone) { } | 
| + | 
| +  Iterator lookup(Literal* literal) { | 
| +    Iterator it = find(literal, true); | 
| +    if (it->second == NULL) it->second = new(zone_) ObjectLiteral::Accessors(); | 
| +    return it; | 
| +  } | 
| + | 
| + private: | 
| +  Zone* zone_; | 
| +}; | 
| + | 
| + | 
| } }  // namespace v8::internal | 
|  | 
| #endif  // V8_FULL_CODEGEN_H_ | 
|  |