Add bounds check when iterating over bytecode jump table
Bytecode jump table for switch statements can have holes when the corresponding case statements do not exist (either because the case was missing or was eliminated because it was dead code). The iterator deals with this by skipping over the holes and setting the iterator to the next valid entry. Bounds check was missing during this skipping over if the last element is a hole. Bug: chromium:794825 Change-Id: Ifdb63257e2997d2fd2868467a56da72b68feb47e Reviewed-on: https://chromium-review.googlesource.com/829774 Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#50137}
This commit is contained in:
parent
958b78a795
commit
e9770dfeb8
@ -297,6 +297,7 @@ void JumpTableTargetOffsets::iterator::UpdateAndAdvanceToValid() {
|
||||
while (current_->IsTheHole(isolate)) {
|
||||
++table_offset_;
|
||||
++index_;
|
||||
if (table_offset_ >= table_end_) break;
|
||||
current_ = accessor_->GetConstantAtIndex(table_offset_);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user