| Index: src/compiler.cc
|
| diff --git a/src/compiler.cc b/src/compiler.cc
|
| index de539bc146bce27cf1fab641d6736611eccb37f9..052e7430d282a1e2af1ef83ea2b74ce97a18672a 100644
|
| --- a/src/compiler.cc
|
| +++ b/src/compiler.cc
|
| @@ -50,9 +50,6 @@ namespace internal {
|
|
|
|
|
| PARSE_INFO_GETTER(Handle<Script>, script)
|
| -PARSE_INFO_GETTER(bool, is_eval)
|
| -PARSE_INFO_GETTER(bool, is_native)
|
| -PARSE_INFO_GETTER(bool, is_module)
|
| PARSE_INFO_GETTER(FunctionLiteral*, literal)
|
| PARSE_INFO_GETTER_WITH_DEFAULT(Scope*, scope, nullptr)
|
| PARSE_INFO_GETTER_WITH_DEFAULT(Handle<Context>, context,
|
| @@ -268,8 +265,15 @@ StackFrame::Type CompilationInfo::GetOutputStackFrameType() const {
|
| }
|
| }
|
|
|
| +int CompilationInfo::GetDeclareGlobalsFlags() const {
|
| + DCHECK(DeclareGlobalsLanguageMode::is_valid(parse_info()->language_mode()));
|
| + return DeclareGlobalsEvalFlag::encode(parse_info()->is_eval()) |
|
| + DeclareGlobalsNativeFlag::encode(parse_info()->is_native()) |
|
| + DeclareGlobalsLanguageMode::encode(parse_info()->language_mode());
|
| +}
|
| +
|
| bool CompilationInfo::ExpectsJSReceiverAsReceiver() {
|
| - return is_sloppy(parse_info()->language_mode()) && !is_native();
|
| + return is_sloppy(parse_info()->language_mode()) && !parse_info()->is_native();
|
| }
|
|
|
| #if DEBUG
|
| @@ -1086,17 +1090,17 @@ Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
|
| // Measure how long it takes to do the compilation; only take the
|
| // rest of the function into account to avoid overlap with the
|
| // parsing statistics.
|
| - HistogramTimer* rate = info->is_eval()
|
| - ? info->isolate()->counters()->compile_eval()
|
| - : info->isolate()->counters()->compile();
|
| + HistogramTimer* rate = parse_info->is_eval()
|
| + ? info->isolate()->counters()->compile_eval()
|
| + : info->isolate()->counters()->compile();
|
| HistogramTimerScope timer(rate);
|
| - TRACE_EVENT0("v8", info->is_eval() ? "V8.CompileEval" : "V8.Compile");
|
| + TRACE_EVENT0("v8", parse_info->is_eval() ? "V8.CompileEval" : "V8.Compile");
|
|
|
| // Allocate a shared function info object.
|
| DCHECK_EQ(RelocInfo::kNoPosition, lit->function_token_position());
|
| result = NewSharedFunctionInfoForLiteral(isolate, lit, script);
|
| result->set_is_toplevel(true);
|
| - if (info->is_eval()) {
|
| + if (parse_info->is_eval()) {
|
| // Eval scripts cannot be (re-)compiled without context.
|
| result->set_allows_lazy_compilation_without_context(false);
|
| }
|
| @@ -1117,9 +1121,10 @@ Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
|
| script->name()->IsString()
|
| ? Handle<String>(String::cast(script->name()))
|
| : isolate->factory()->empty_string();
|
| - Logger::LogEventsAndTags log_tag = info->is_eval()
|
| - ? Logger::EVAL_TAG
|
| - : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script);
|
| + Logger::LogEventsAndTags log_tag =
|
| + parse_info->is_eval()
|
| + ? Logger::EVAL_TAG
|
| + : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script);
|
|
|
| PROFILE(isolate, CodeCreateEvent(log_tag, result->abstract_code(), *result,
|
| *script_name));
|
|
|