| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index a9a5161dda61f4298230cf3811e4b1a4ceff54ba..8a2f4219c763e014b89720d2c72fe84da981028b 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -946,7 +946,6 @@ Failure* Isolate::ReThrow(MaybeObject* exception) {
|
|
|
|
|
| Failure* Isolate::ThrowIllegalOperation() {
|
| - if (FLAG_stack_trace_on_illegal) PrintStack(stdout);
|
| return Throw(heap_.illegal_access_string());
|
| }
|
|
|
| @@ -1123,6 +1122,8 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) {
|
| // while the bootstrapper is active since the infrastructure may not have
|
| // been properly initialized.
|
| if (!bootstrapping) {
|
| + Handle<String> stack_trace;
|
| + if (FLAG_trace_exception) stack_trace = StackTraceString();
|
| Handle<JSArray> stack_trace_object;
|
| if (capture_stack_trace_for_uncaught_exceptions_) {
|
| if (IsErrorObject(exception_handle)) {
|
| @@ -1162,6 +1163,7 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) {
|
| "uncaught_exception",
|
| location,
|
| HandleVector<Object>(&exception_arg, 1),
|
| + stack_trace,
|
| stack_trace_object);
|
| thread_local_top()->pending_message_obj_ = *message_obj;
|
| if (location != NULL) {
|
| @@ -1564,8 +1566,7 @@ Isolate::Isolate()
|
| sweeper_thread_(NULL),
|
| num_sweeper_threads_(0),
|
| max_available_threads_(0),
|
| - stress_deopt_count_(0),
|
| - next_optimization_id_(0) {
|
| + stress_deopt_count_(0) {
|
| id_ = NoBarrier_AtomicIncrement(&isolate_counter_, 1);
|
| TRACE_ISOLATE(constructor);
|
|
|
| @@ -1581,7 +1582,6 @@ Isolate::Isolate()
|
| thread_manager_->isolate_ = this;
|
|
|
| #if V8_TARGET_ARCH_ARM && !defined(__arm__) || \
|
| - V8_TARGET_ARCH_A64 && !defined(__aarch64__) || \
|
| V8_TARGET_ARCH_MIPS && !defined(__mips__)
|
| simulator_initialized_ = false;
|
| simulator_i_cache_ = NULL;
|
| @@ -1672,10 +1672,6 @@ void Isolate::Deinit() {
|
| delete[] sweeper_thread_;
|
| sweeper_thread_ = NULL;
|
|
|
| - if (FLAG_job_based_sweeping &&
|
| - heap_.mark_compact_collector()->IsConcurrentSweepingInProgress()) {
|
| - heap_.mark_compact_collector()->WaitUntilSweepingCompleted();
|
| - }
|
|
|
| if (FLAG_hydrogen_stats) GetHStatistics()->Print();
|
|
|
| @@ -1971,7 +1967,7 @@ bool Isolate::Init(Deserializer* des) {
|
|
|
| // Initialize other runtime facilities
|
| #if defined(USE_SIMULATOR)
|
| -#if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_A64 || V8_TARGET_ARCH_MIPS
|
| +#if V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_MIPS
|
| Simulator::Initialize(this);
|
| #endif
|
| #endif
|
| @@ -2017,10 +2013,7 @@ bool Isolate::Init(Deserializer* des) {
|
| max_available_threads_ = Max(Min(CPU::NumberOfProcessorsOnline(), 4), 1);
|
| }
|
|
|
| - if (!FLAG_job_based_sweeping) {
|
| - num_sweeper_threads_ =
|
| - SweeperThread::NumberOfThreads(max_available_threads_);
|
| - }
|
| + num_sweeper_threads_ = SweeperThread::NumberOfThreads(max_available_threads_);
|
|
|
| if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) {
|
| PrintF("Concurrent recompilation has been disabled for tracing.\n");
|
| @@ -2106,14 +2099,17 @@ bool Isolate::Init(Deserializer* des) {
|
| CodeStub::GenerateFPStubs(this);
|
| StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(this);
|
| StubFailureTrampolineStub::GenerateAheadOfTime(this);
|
| - // Ensure interface descriptors are initialized even when stubs have been
|
| - // deserialized out of the snapshot without using the graph builder.
|
| - FastCloneShallowArrayStub::InstallDescriptors(this);
|
| + // TODO(mstarzinger): The following is an ugly hack to make sure the
|
| + // interface descriptor is initialized even when stubs have been
|
| + // deserialized out of the snapshot without the graph builder.
|
| + FastCloneShallowArrayStub stub(FastCloneShallowArrayStub::CLONE_ELEMENTS,
|
| + DONT_TRACK_ALLOCATION_SITE, 0);
|
| + stub.InitializeInterfaceDescriptor(
|
| + this, code_stub_interface_descriptor(CodeStub::FastCloneShallowArray));
|
| BinaryOpICStub::InstallDescriptors(this);
|
| BinaryOpWithAllocationSiteStub::InstallDescriptors(this);
|
| - CompareNilICStub::InstallDescriptors(this);
|
| - ToBooleanStub::InstallDescriptors(this);
|
| - ToNumberStub::InstallDescriptors(this);
|
| + CompareNilICStub::InitializeForIsolate(this);
|
| + ToBooleanStub::InitializeForIsolate(this);
|
| ArrayConstructorStubBase::InstallDescriptors(this);
|
| InternalArrayConstructorStubBase::InstallDescriptors(this);
|
| FastNewClosureStub::InstallDescriptors(this);
|
|
|