| Index: runtime/vm/precompiler.cc
|
| diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
|
| index 5c504582ad160bc9a5eb2a055fed061e7c46b561..8d72d929abe6c6db84d12611f4966a5a61782a1d 100644
|
| --- a/runtime/vm/precompiler.cc
|
| +++ b/runtime/vm/precompiler.cc
|
| @@ -1118,12 +1118,20 @@ RawFunction* Precompiler::CompileStaticInitializer(const Field& field,
|
| bool compute_type) {
|
| ASSERT(field.is_static());
|
| Thread* thread = Thread::Current();
|
| - StackZone zone(thread);
|
| + StackZone stack_zone(thread);
|
| + Zone* zone = stack_zone.GetZone();
|
| +
|
| + ParsedFunction* parsed_function;
|
| + // Check if this field is comming from the Kernel binary.
|
| + if (field.kernel_field() != NULL) {
|
| + parsed_function = kernel::ParseStaticFieldInitializer(zone, field);
|
| + } else {
|
| + parsed_function = Parser::ParseStaticFieldInitializer(field);
|
| + parsed_function->AllocateVariables();
|
| + }
|
|
|
| - ParsedFunction* parsed_function = Parser::ParseStaticFieldInitializer(field);
|
|
|
| - parsed_function->AllocateVariables();
|
| - DartPrecompilationPipeline pipeline(zone.GetZone());
|
| + DartPrecompilationPipeline pipeline(zone);
|
| PrecompileParsedFunctionHelper helper(/* precompiler = */ NULL,
|
| parsed_function,
|
| /* optimized = */ true);
|
|
|