| Index: runtime/vm/precompiler.h
|
| diff --git a/runtime/vm/precompiler.h b/runtime/vm/precompiler.h
|
| index d18a9fae29adb1ef8787af39a681ce4560023f4a..6ec2ed3bbb6fe320230a3189c79902f73e794945 100644
|
| --- a/runtime/vm/precompiler.h
|
| +++ b/runtime/vm/precompiler.h
|
| @@ -270,12 +270,13 @@ class Precompiler : public ValueObject {
|
| static RawObject* EvaluateStaticInitializer(const Field& field);
|
| static RawObject* ExecuteOnce(SequenceNode* fragment);
|
|
|
| + static RawFunction* CompileStaticInitializer(const Field& field,
|
| + bool compute_type);
|
| +
|
| private:
|
| Precompiler(Thread* thread, bool reset_fields);
|
|
|
|
|
| - static RawFunction* CompileStaticInitializer(const Field& field);
|
| -
|
| void DoCompileAll(Dart_QualifiedFunctionName embedder_entry_points[]);
|
| void ClearAllCode();
|
| void AddRoots(Dart_QualifiedFunctionName embedder_entry_points[]);
|
| @@ -317,13 +318,19 @@ class Precompiler : public ValueObject {
|
|
|
| void CollectDynamicFunctionNames();
|
|
|
| - class FunctionVisitor : public ValueObject {
|
| + void PrecompileStaticInitializers();
|
| +
|
| + template<typename T>
|
| + class Visitor : public ValueObject {
|
| public:
|
| - virtual ~FunctionVisitor() {}
|
| - virtual void VisitFunction(const Function& function) = 0;
|
| + virtual ~Visitor() {}
|
| + virtual void Visit(const T& obj) = 0;
|
| };
|
| + typedef Visitor<Function> FunctionVisitor;
|
| + typedef Visitor<Class> ClassVisitor;
|
|
|
| void VisitFunctions(FunctionVisitor* visitor);
|
| + void VisitClasses(ClassVisitor* visitor);
|
|
|
| void FinalizeAllClasses();
|
|
|
|
|