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_ |