[parser] Skipping inner funcs: Add debug code.

There are some mysterious, unreproducible CHECK failures (inconsistent
data). Add more information onto the stack (and thus, to minidumps) for
debugging them.

BUG=v8:5516,chromium:766693

Change-Id: Ic1ebc3036957ede4e3e1c1d287479897e54e40ed
Reviewed-on: https://chromium-review.googlesource.com/677294
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48111}
This commit is contained in:
Marja Hölttä 2017-09-21 15:07:36 +02:00 committed by Commit Bot
parent 3a06391166
commit 70e0261a95

View File

@ -478,6 +478,13 @@ void ConsumedPreParsedScopeData::RestoreData(Scope* scope,
return;
}
if (scope_data->length() < index_ + 1) {
// Temporary debugging code for detecting inconsistent data. Write debug
// information on the stack, then crash.
scope_data->GetIsolate()->PushStackTraceAndDie(0xc0defee, nullptr, nullptr,
0xc0defee);
}
// scope_type is stored only in debug mode.
CHECK_GE(scope_data->length(), index_ + 1);
DCHECK_GE(scope_data->length(), index_ + 2);