OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <cmath> | 5 #include <cmath> |
6 | 6 |
7 #include "src/allocation.h" | 7 #include "src/allocation.h" |
8 #include "src/base/logging.h" | 8 #include "src/base/logging.h" |
9 #include "src/conversions-inl.h" | 9 #include "src/conversions-inl.h" |
10 #include "src/conversions.h" | 10 #include "src/conversions.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 // That means that contextual checks (like a label being declared where | 172 // That means that contextual checks (like a label being declared where |
173 // it is used) are generally omitted. | 173 // it is used) are generally omitted. |
174 | 174 |
175 PreParser::Expression PreParser::ParseFunctionLiteral( | 175 PreParser::Expression PreParser::ParseFunctionLiteral( |
176 Identifier function_name, Scanner::Location function_name_location, | 176 Identifier function_name, Scanner::Location function_name_location, |
177 FunctionNameValidity function_name_validity, FunctionKind kind, | 177 FunctionNameValidity function_name_validity, FunctionKind kind, |
178 int function_token_pos, FunctionLiteral::FunctionType function_type, | 178 int function_token_pos, FunctionLiteral::FunctionType function_type, |
179 LanguageMode language_mode, bool* ok) { | 179 LanguageMode language_mode, bool* ok) { |
180 // Function :: | 180 // Function :: |
181 // '(' FormalParameterList? ')' '{' FunctionBody '}' | 181 // '(' FormalParameterList? ')' '{' FunctionBody '}' |
| 182 const RuntimeCallStats::CounterId counters[2][2] = { |
| 183 {&RuntimeCallStats::PreParseWithVariableResolution, |
| 184 &RuntimeCallStats::PreParseBackgroundWithVariableResolution}, |
| 185 {&RuntimeCallStats::PreParseNoVariableResolution, |
| 186 &RuntimeCallStats::PreParseBackgroundNoVariableResolution}}; |
182 RuntimeCallTimerScope runtime_timer( | 187 RuntimeCallTimerScope runtime_timer( |
183 runtime_call_stats_, | 188 runtime_call_stats_, |
184 track_unresolved_variables_ | 189 counters[track_unresolved_variables_][parsing_on_main_thread_]); |
185 ? &RuntimeCallStats::PreParseWithVariableResolution | |
186 : &RuntimeCallStats::PreParseNoVariableResolution); | |
187 | 190 |
188 // Parse function body. | 191 // Parse function body. |
189 PreParserStatementList body; | 192 PreParserStatementList body; |
190 DeclarationScope* function_scope = NewFunctionScope(kind); | 193 DeclarationScope* function_scope = NewFunctionScope(kind); |
191 function_scope->SetLanguageMode(language_mode); | 194 function_scope->SetLanguageMode(language_mode); |
192 FunctionState function_state(&function_state_, &scope_state_, function_scope); | 195 FunctionState function_state(&function_state_, &scope_state_, function_scope); |
193 DuplicateFinder duplicate_finder(scanner()->unicode_cache()); | 196 DuplicateFinder duplicate_finder(scanner()->unicode_cache()); |
194 ExpressionClassifier formals_classifier(this, &duplicate_finder); | 197 ExpressionClassifier formals_classifier(this, &duplicate_finder); |
195 | 198 |
196 Expect(Token::LPAREN, CHECK_OK); | 199 Expect(Token::LPAREN, CHECK_OK); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 } | 297 } |
295 } | 298 } |
296 } | 299 } |
297 | 300 |
298 #undef CHECK_OK | 301 #undef CHECK_OK |
299 #undef CHECK_OK_CUSTOM | 302 #undef CHECK_OK_CUSTOM |
300 | 303 |
301 | 304 |
302 } // namespace internal | 305 } // namespace internal |
303 } // namespace v8 | 306 } // namespace v8 |
OLD | NEW |