summaryrefslogtreecommitdiff
path: root/deps/v8/src/parsing/parsing.cc
diff options
context:
space:
mode:
authorMyles Borins <mylesborins@google.com>2019-09-24 11:56:38 -0400
committerMyles Borins <myles.borins@gmail.com>2019-10-07 03:19:23 -0400
commitf7f6c928c1c9c136b7926f892b8a2fda11d8b4b2 (patch)
treef5edbccb3ffda2573d70a6e291e7157f290e0ae0 /deps/v8/src/parsing/parsing.cc
parentffd22e81983056d09c064c59343a0e488236272d (diff)
downloadandroid-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.cc39
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