82ca51467f
In the case of a corrupted snapshot we fall back to initializing the isolate from scratch. Howver, we don't ship the full SetupIsolateDelegate. This causes spurious failures during later initialization. This CL mostly turns the DCHECKs in SetupIsolateDelegate into hard CHECKs making it easier to spot these kind of failures. Bug: chromium:767846 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ibe8a5beece27433439b1b09412f6110be703ff86 Reviewed-on: https://chromium-review.googlesource.com/779189 Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#49533}
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
// Copyright 2017 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "src/setup-isolate.h"
|
|
|
|
#include "src/base/logging.h"
|
|
#include "src/heap/heap-inl.h"
|
|
#include "src/interpreter/interpreter.h"
|
|
#include "src/interpreter/setup-interpreter.h"
|
|
#include "src/isolate.h"
|
|
|
|
namespace v8 {
|
|
namespace internal {
|
|
|
|
void SetupIsolateDelegate::SetupBuiltins(Isolate* isolate) {
|
|
if (create_heap_objects_) {
|
|
SetupBuiltinsInternal(isolate);
|
|
} else {
|
|
CHECK(isolate->snapshot_available());
|
|
}
|
|
}
|
|
|
|
void SetupIsolateDelegate::SetupInterpreter(
|
|
interpreter::Interpreter* interpreter) {
|
|
if (create_heap_objects_) {
|
|
interpreter::SetupInterpreter::InstallBytecodeHandlers(interpreter);
|
|
} else {
|
|
CHECK(interpreter->IsDispatchTableInitialized());
|
|
}
|
|
}
|
|
|
|
bool SetupIsolateDelegate::SetupHeap(Heap* heap) {
|
|
if (create_heap_objects_) {
|
|
return SetupHeapInternal(heap);
|
|
} else {
|
|
CHECK(heap->isolate()->snapshot_available());
|
|
return true;
|
|
}
|
|
}
|
|
|
|
} // namespace internal
|
|
} // namespace v8
|