OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/parsing/parser.h" | 5 #include "src/parsing/parser.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "src/api.h" | 9 #include "src/api.h" |
10 #include "src/ast/ast-expression-rewriter.h" | 10 #include "src/ast/ast-expression-rewriter.h" |
(...skipping 3343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3354 Handle<String> source_url = scanner_.SourceUrl(isolate); | 3354 Handle<String> source_url = scanner_.SourceUrl(isolate); |
3355 if (!source_url.is_null()) { | 3355 if (!source_url.is_null()) { |
3356 script->set_source_url(*source_url); | 3356 script->set_source_url(*source_url); |
3357 } | 3357 } |
3358 Handle<String> source_mapping_url = scanner_.SourceMappingUrl(isolate); | 3358 Handle<String> source_mapping_url = scanner_.SourceMappingUrl(isolate); |
3359 if (!source_mapping_url.is_null()) { | 3359 if (!source_mapping_url.is_null()) { |
3360 script->set_source_mapping_url(*source_mapping_url); | 3360 script->set_source_mapping_url(*source_mapping_url); |
3361 } | 3361 } |
3362 } | 3362 } |
3363 | 3363 |
| 3364 void Parser::ReportErrors(Isolate* isolate, Handle<Script> script) { |
| 3365 if (stack_overflow()) { |
| 3366 isolate->StackOverflow(); |
| 3367 } else { |
| 3368 DCHECK(pending_error_handler_.has_pending_error()); |
| 3369 // Internalize ast values for throwing the pending error. |
| 3370 ast_value_factory()->Internalize(isolate); |
| 3371 pending_error_handler_.ThrowPendingError(isolate, script); |
| 3372 } |
| 3373 } |
3364 | 3374 |
3365 void Parser::Internalize(Isolate* isolate, Handle<Script> script, bool error) { | 3375 void Parser::UpdateStatistics(Isolate* isolate, Handle<Script> script) { |
3366 // Internalize strings and values. | |
3367 ast_value_factory()->Internalize(isolate); | |
3368 | |
3369 // Error processing. | |
3370 if (error) { | |
3371 if (stack_overflow()) { | |
3372 isolate->StackOverflow(); | |
3373 } else { | |
3374 DCHECK(pending_error_handler_.has_pending_error()); | |
3375 pending_error_handler_.ThrowPendingError(isolate, script); | |
3376 } | |
3377 } | |
3378 | |
3379 // Move statistics to Isolate. | 3376 // Move statistics to Isolate. |
3380 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; | 3377 for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; |
3381 ++feature) { | 3378 ++feature) { |
3382 if (use_counts_[feature] > 0) { | 3379 if (use_counts_[feature] > 0) { |
3383 isolate->CountUsage(v8::Isolate::UseCounterFeature(feature)); | 3380 isolate->CountUsage(v8::Isolate::UseCounterFeature(feature)); |
3384 } | 3381 } |
3385 } | 3382 } |
3386 if (scanner_.FoundHtmlComment()) { | 3383 if (scanner_.FoundHtmlComment()) { |
3387 isolate->CountUsage(v8::Isolate::kHtmlComment); | 3384 isolate->CountUsage(v8::Isolate::kHtmlComment); |
3388 if (script->line_offset() == 0 && script->column_offset() == 0) { | 3385 if (script->line_offset() == 0 && script->column_offset() == 0) { |
(...skipping 1637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5026 | 5023 |
5027 return final_loop; | 5024 return final_loop; |
5028 } | 5025 } |
5029 | 5026 |
5030 #undef CHECK_OK | 5027 #undef CHECK_OK |
5031 #undef CHECK_OK_VOID | 5028 #undef CHECK_OK_VOID |
5032 #undef CHECK_FAILED | 5029 #undef CHECK_FAILED |
5033 | 5030 |
5034 } // namespace internal | 5031 } // namespace internal |
5035 } // namespace v8 | 5032 } // namespace v8 |
OLD | NEW |