diff options
author | Myles Borins <mylesborins@google.com> | 2019-09-24 11:56:38 -0400 |
---|---|---|
committer | Myles Borins <myles.borins@gmail.com> | 2019-10-07 03:19:23 -0400 |
commit | f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2 (patch) | |
tree | f5edbccb3ffda2573d70a6e291e7157f290e0ae0 /deps/v8/src/parsing/parsing.cc | |
parent | ffd22e81983056d09c064c59343a0e488236272d (diff) | |
download | android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.gz android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.bz2 android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.zip |
deps: update V8 to 7.8.279.9
PR-URL: https://github.com/nodejs/node/pull/29694
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Diffstat (limited to 'deps/v8/src/parsing/parsing.cc')
-rw-r--r-- | deps/v8/src/parsing/parsing.cc | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/deps/v8/src/parsing/parsing.cc b/deps/v8/src/parsing/parsing.cc index af4cb9b5ee..95cc186787 100644 --- a/deps/v8/src/parsing/parsing.cc +++ b/deps/v8/src/parsing/parsing.cc @@ -18,7 +18,8 @@ namespace v8 { namespace internal { namespace parsing { -bool ParseProgram(ParseInfo* info, Isolate* isolate) { +bool ParseProgram(ParseInfo* info, Isolate* isolate, + ReportErrorsAndStatisticsMode mode) { DCHECK(info->is_toplevel()); DCHECK_NULL(info->literal()); @@ -39,21 +40,25 @@ bool ParseProgram(ParseInfo* info, Isolate* isolate) { result = parser.ParseProgram(isolate, info); info->set_literal(result); - if (result == nullptr) { - info->pending_error_handler()->ReportErrors(isolate, info->script(), - info->ast_value_factory()); - } else { + if (result) { info->set_language_mode(info->literal()->language_mode()); if (info->is_eval()) { info->set_allow_eval_cache(parser.allow_eval_cache()); } } - parser.UpdateStatistics(isolate, info->script()); + + if (mode == ReportErrorsAndStatisticsMode::kYes) { + if (result == nullptr) { + info->pending_error_handler()->ReportErrors(isolate, info->script(), + info->ast_value_factory()); + } + parser.UpdateStatistics(isolate, info->script()); + } return (result != nullptr); } bool ParseFunction(ParseInfo* info, Handle<SharedFunctionInfo> shared_info, - Isolate* isolate) { + Isolate* isolate, ReportErrorsAndStatisticsMode mode) { DCHECK(!info->is_toplevel()); DCHECK(!shared_info.is_null()); DCHECK_NULL(info->literal()); @@ -76,24 +81,28 @@ bool ParseFunction(ParseInfo* info, Handle<SharedFunctionInfo> shared_info, result = parser.ParseFunction(isolate, info, shared_info); info->set_literal(result); - if (result == nullptr) { - info->pending_error_handler()->ReportErrors(isolate, info->script(), - info->ast_value_factory()); - } else { + if (result) { info->ast_value_factory()->Internalize(isolate); if (info->is_eval()) { info->set_allow_eval_cache(parser.allow_eval_cache()); } } - parser.UpdateStatistics(isolate, info->script()); + + if (mode == ReportErrorsAndStatisticsMode::kYes) { + if (result == nullptr) { + info->pending_error_handler()->ReportErrors(isolate, info->script(), + info->ast_value_factory()); + } + parser.UpdateStatistics(isolate, info->script()); + } return (result != nullptr); } bool ParseAny(ParseInfo* info, Handle<SharedFunctionInfo> shared_info, - Isolate* isolate) { + Isolate* isolate, ReportErrorsAndStatisticsMode mode) { DCHECK(!shared_info.is_null()); - return info->is_toplevel() ? ParseProgram(info, isolate) - : ParseFunction(info, shared_info, isolate); + return info->is_toplevel() ? ParseProgram(info, isolate, mode) + : ParseFunction(info, shared_info, isolate, mode); } } // namespace parsing |