| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index ddfdb7fd0c7d7f5f980c619c6e2a117bd9753d5d..410a437ccda6513aa2943fa81a9c5ab9cae01576 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -681,7 +681,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetHiddenPrototype) {
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_IsConstructCall) {
|
| NoHandleAllocation ha;
|
| ASSERT(args.length() == 0);
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| return isolate->heap()->ToBoolean(it.frame()->IsConstructor());
|
| }
|
|
|
| @@ -4484,7 +4484,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetArgumentsProperty) {
|
| ASSERT(args.length() == 1);
|
|
|
| // Compute the frame holding the arguments.
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| it.AdvanceToArgumentsFrame();
|
| JavaScriptFrame* frame = it.frame();
|
|
|
| @@ -7323,7 +7323,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
|
| ASSERT(isolate->heap()->IsAllocationAllowed());
|
| int frames = deoptimizer->output_count();
|
|
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| JavaScriptFrame* frame = NULL;
|
| for (int i = 0; i < frames; i++) {
|
| if (i != 0) it.Advance();
|
| @@ -7425,7 +7425,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileForOnStackReplacement) {
|
| // indirectly recursive and (b) an optimized invocation has been
|
| // deoptimized so that we are currently in an unoptimized activation.
|
| // Check for optimized activations of this function.
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| while (succeeded && !it.done()) {
|
| JavaScriptFrame* frame = it.frame();
|
| succeeded = !frame->is_optimized() || frame->function() != *function;
|
| @@ -7437,10 +7437,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileForOnStackReplacement) {
|
| if (succeeded) {
|
| // The top JS function is this one, the PC is somewhere in the
|
| // unoptimized code.
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| JavaScriptFrame* frame = it.frame();
|
| ASSERT(frame->function() == *function);
|
| - ASSERT(frame->LookupCode(isolate) == *unoptimized);
|
| + ASSERT(frame->LookupCode() == *unoptimized);
|
| ASSERT(unoptimized->contains(frame->pc()));
|
|
|
| // Use linear search of the unoptimized code's stack check table to find
|
| @@ -8001,7 +8001,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugPrint) {
|
| if (args[0]->IsString()) {
|
| // If we have a string, assume it's a code "marker"
|
| // and print some interesting cpu debugging info.
|
| - JavaScriptFrameIterator it;
|
| + JavaScriptFrameIterator it(isolate);
|
| JavaScriptFrame* frame = it.frame();
|
| PrintF("fp = %p, sp = %p, caller_sp = %p: ",
|
| frame->fp(), frame->sp(), frame->caller_sp());
|
| @@ -9337,7 +9337,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameCount) {
|
| // If there is no JavaScript stack frame count is 0.
|
| return Smi::FromInt(0);
|
| }
|
| - for (JavaScriptFrameIterator it(id); !it.done(); it.Advance()) n++;
|
| + for (JavaScriptFrameIterator it(isolate, id); !it.done(); it.Advance()) n++;
|
| return Smi::FromInt(n);
|
| }
|
|
|
| @@ -9390,7 +9390,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) {
|
| return heap->undefined_value();
|
| }
|
| int count = 0;
|
| - JavaScriptFrameIterator it(id);
|
| + JavaScriptFrameIterator it(isolate, id);
|
| for (; !it.done(); it.Advance()) {
|
| if (count == index) break;
|
| count++;
|
| @@ -9398,7 +9398,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) {
|
| if (it.done()) return heap->undefined_value();
|
|
|
| bool is_optimized_frame =
|
| - it.frame()->LookupCode(isolate)->kind() == Code::OPTIMIZED_FUNCTION;
|
| + it.frame()->LookupCode()->kind() == Code::OPTIMIZED_FUNCTION;
|
|
|
| // Traverse the saved contexts chain to find the active context for the
|
| // selected frame.
|
| @@ -9413,7 +9413,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) {
|
|
|
| // Find source position.
|
| int position =
|
| - it.frame()->LookupCode(isolate)->SourcePosition(it.frame()->pc());
|
| + it.frame()->LookupCode()->SourcePosition(it.frame()->pc());
|
|
|
| // Check for constructor frame.
|
| bool constructor = it.frame()->IsConstructor();
|
| @@ -9475,7 +9475,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) {
|
| // to the frame information.
|
| Handle<Object> return_value = isolate->factory()->undefined_value();
|
| if (at_return) {
|
| - StackFrameIterator it2;
|
| + StackFrameIterator it2(isolate);
|
| Address internal_frame_sp = NULL;
|
| while (!it2.done()) {
|
| if (it2.frame()->is_internal()) {
|
| @@ -10008,7 +10008,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetScopeCount) {
|
|
|
| // Get the frame where the debugging is performed.
|
| StackFrame::Id id = UnwrapFrameId(wrapped_id);
|
| - JavaScriptFrameIterator it(id);
|
| + JavaScriptFrameIterator it(isolate, id);
|
| JavaScriptFrame* frame = it.frame();
|
|
|
| // Count the visible scopes.
|
| @@ -10048,7 +10048,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetScopeDetails) {
|
|
|
| // Get the frame where the debugging is performed.
|
| StackFrame::Id id = UnwrapFrameId(wrapped_id);
|
| - JavaScriptFrameIterator frame_it(id);
|
| + JavaScriptFrameIterator frame_it(isolate, id);
|
| JavaScriptFrame* frame = frame_it.frame();
|
|
|
| // Find the requested scope.
|
| @@ -10536,7 +10536,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DebugEvaluate) {
|
|
|
| // Get the frame where the debugging is performed.
|
| StackFrame::Id id = UnwrapFrameId(wrapped_id);
|
| - JavaScriptFrameIterator it(id);
|
| + JavaScriptFrameIterator it(isolate, id);
|
| JavaScriptFrame* frame = it.frame();
|
| Handle<JSFunction> function(JSFunction::cast(frame->function()));
|
| Handle<SerializedScopeInfo> scope_info(function->shared()->scope_info());
|
| @@ -11604,7 +11604,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CollectStackTrace) {
|
| Handle<FixedArray> elements =
|
| factory->NewFixedArrayWithHoles(initial_size * 4);
|
|
|
| - StackFrameIterator iter;
|
| + StackFrameIterator iter(isolate);
|
| // If the caller parameter is a function we skip frames until we're
|
| // under it before starting to collect.
|
| bool seen_caller = !caller->IsJSFunction();
|
|
|