Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 841c950132342db140a11aacebcc89d45cd9981e..9dea9e414cab3b6dd7761507d36bafd1eef3d3bc 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -797,13 +797,12 @@ bool CompileUnoptimizedCode(CompilationInfo* info) { |
bool UseIgnition(CompilationInfo* info) { |
// TODO(4681): Generator functions are not yet supported. |
- if ((info->has_shared_info() && info->shared_info()->is_generator()) || |
- (info->has_literal() && IsGeneratorFunction(info->literal()->kind()))) { |
+ if (info->shared_info()->is_generator()) { |
return false; |
} |
// TODO(4681): Resuming a suspended frame is not supported. |
- if (info->has_shared_info() && info->shared_info()->HasBuiltinFunctionId() && |
+ if (info->shared_info()->HasBuiltinFunctionId() && |
(info->shared_info()->builtin_function_id() == kGeneratorObjectNext || |
info->shared_info()->builtin_function_id() == kGeneratorObjectReturn || |
info->shared_info()->builtin_function_id() == kGeneratorObjectThrow)) { |
@@ -811,13 +810,13 @@ bool UseIgnition(CompilationInfo* info) { |
} |
// Checks whether top level functions should be passed by the filter. |
- if (info->closure().is_null()) { |
+ if (info->shared_info()->is_toplevel()) { |
Vector<const char> filter = CStrVector(FLAG_ignition_filter); |
return (filter.length() == 0) || (filter.length() == 1 && filter[0] == '*'); |
} |
// Finally respect the filter. |
- return info->closure()->shared()->PassesFilter(FLAG_ignition_filter); |
+ return info->shared_info()->PassesFilter(FLAG_ignition_filter); |
} |
int CodeAndMetadataSize(CompilationInfo* info) { |
@@ -1316,6 +1315,7 @@ Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) { |
// Eval scripts cannot be (re-)compiled without context. |
result->set_allows_lazy_compilation_without_context(false); |
} |
+ parse_info->set_shared_info(result); |
// Compile the code. |
if (!CompileBaselineCode(info)) { |
@@ -1763,6 +1763,7 @@ Handle<SharedFunctionInfo> Compiler::GetSharedFunctionInfo( |
ParseInfo parse_info(&zone, script); |
CompilationInfo info(&parse_info); |
parse_info.set_literal(literal); |
+ parse_info.set_shared_info(result); |
parse_info.set_scope(literal->scope()); |
parse_info.set_language_mode(literal->scope()->language_mode()); |
if (outer_info->will_serialize()) info.PrepareForSerializing(); |