| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index b960d100e96e0005a58a242ba1935e6d31101af9..4c786c35db27cce2b29576753777d5f60e16f0b9 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -671,7 +671,7 @@ Handle<JSArray> Isolate::CaptureSimpleStackTrace(Handle<JSObject> error_object,
|
| JavaScriptFrame* frame = JavaScriptFrame::cast(raw_frame);
|
| // Set initial size to the maximum inlining level + 1 for the outermost
|
| // function.
|
| - List<FrameSummary> frames(Compiler::kMaxInliningLevels + 1);
|
| + List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
|
| frame->Summarize(&frames);
|
| for (int i = frames.length() - 1; i >= 0; i--) {
|
| if (cursor + 4 > elements->length()) {
|
| @@ -754,7 +754,7 @@ Handle<JSArray> Isolate::CaptureCurrentStackTrace(
|
| JavaScriptFrame* frame = it.frame();
|
| // Set initial size to the maximum inlining level + 1 for the outermost
|
| // function.
|
| - List<FrameSummary> frames(Compiler::kMaxInliningLevels + 1);
|
| + List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
|
| frame->Summarize(&frames);
|
| for (int i = frames.length() - 1; i >= 0 && frames_seen < limit; i--) {
|
| // Create a JSObject to hold the information for the StackFrame.
|
| @@ -1790,7 +1790,8 @@ Isolate::Isolate()
|
| optimizing_compiler_thread_(this),
|
| marking_thread_(NULL),
|
| sweeper_thread_(NULL),
|
| - callback_table_(NULL) {
|
| + callback_table_(NULL),
|
| + stress_deopt_count_(0) {
|
| id_ = NoBarrier_AtomicIncrement(&isolate_counter_, 1);
|
| TRACE_ISOLATE(constructor);
|
|
|
| @@ -1903,6 +1904,10 @@ void Isolate::Deinit() {
|
|
|
| if (FLAG_hydrogen_stats) GetHStatistics()->Print();
|
|
|
| + if (FLAG_print_deopt_stress) {
|
| + PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_);
|
| + }
|
| +
|
| // We must stop the logger before we tear down other components.
|
| Sampler* sampler = logger_->sampler();
|
| if (sampler && sampler->IsActive()) sampler->Stop();
|
| @@ -2137,6 +2142,8 @@ bool Isolate::Init(Deserializer* des) {
|
| ASSERT(Isolate::Current() == this);
|
| TRACE_ISOLATE(init);
|
|
|
| + stress_deopt_count_ = FLAG_deopt_every_n_times;
|
| +
|
| if (function_entry_hook() != NULL) {
|
| // When function entry hooking is in effect, we have to create the code
|
| // stubs from scratch to get entry hooks, rather than loading the previously
|
| @@ -2508,6 +2515,11 @@ CodeStubInterfaceDescriptor*
|
| }
|
|
|
|
|
| +Object* Isolate::FindCodeObject(Address a) {
|
| + return inner_pointer_to_code_cache()->GcSafeFindCodeForInnerPointer(a);
|
| +}
|
| +
|
| +
|
| #ifdef DEBUG
|
| #define ISOLATE_FIELD_OFFSET(type, name, ignored) \
|
| const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_);
|
|
|