Skip to content

Commit

Permalink
deps: backport 7c3748a from upstream V8
Browse files Browse the repository at this point in the history
Original commit message:
    load correct stack slot for frame details.

    [email protected]
    BUG=v8:5071

    Review URL: https://codereview.chromium.org/2045863002 .

    Cr-Commit-Position: refs/heads/master@{#36769}

PR-URL: #10881
Reviewed-By: Myles Borins <[email protected]>
  • Loading branch information
cristiancavalli authored and MylesBorins committed Jan 24, 2017
1 parent 51d62f7 commit 8b82ed0
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
2 changes: 1 addition & 1 deletion deps/v8/include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 5
#define V8_MINOR_VERSION 1
#define V8_BUILD_NUMBER 281
#define V8_PATCH_LEVEL 92
#define V8_PATCH_LEVEL 93

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
3 changes: 2 additions & 1 deletion deps/v8/src/runtime/runtime-debug.cc
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,8 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) {
// Use the value from the stack.
if (scope_info->LocalIsSynthetic(i)) continue;
locals->set(local * 2, scope_info->LocalName(i));
Handle<Object> value = frame_inspector.GetExpression(i);
Handle<Object> value =
frame_inspector.GetExpression(scope_info->StackLocalIndex(i));
// TODO(yangguo): We convert optimized out values to {undefined} when they
// are passed to the debugger. Eventually we should handle them somehow.
if (value->IsOptimizedOut()) value = isolate->factory()->undefined_value();
Expand Down
26 changes: 26 additions & 0 deletions deps/v8/test/mjsunit/regress/regress-5071.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright 2016 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.

// Flags: --expose-debug-as debug

var Debug = debug.Debug;

function listener(event, exec_state, event_data, data) {
assertEquals(2, exec_state.frameCount());
assertEquals("a", exec_state.frame(0).localName(0));
assertEquals("1", exec_state.frame(0).localValue(0).value());
assertEquals(1, exec_state.frame(0).localCount());
}

Debug.setListener(listener);

function f() {
var a = 1;
{
let b = 2;
debugger;
}
}

f();

0 comments on commit 8b82ed0

Please sign in to comment.