// evalWithBindings basics

var g = newGlobal();
var dbg = new Debugger(g);
var hits = 0;
dbg.onDebuggerStatement = function (frame) {
    assertEq(frame.evalWithBindings("x", {x: 2}).return, 2);
    assertEq(frame.evalWithBindings("x + y", {x: 2}).return, 5);
    hits++;
};

// in global code
g.y = 3;
g.eval("debugger;");

// in function code
g.y = "fail";
g.eval("function f(y) { debugger; }");
g.f(3);

// in direct eval code
g.eval("function f() { var y = 3; eval('debugger;'); }");
g.f();

// in strict eval code with var
g.eval("function f() { 'use strict'; eval('var y = 3; debugger;'); }");
g.f();

// in a with block
g.eval("with ({y: 3}) { debugger; }");

// shadowing
g.eval("{ let x = 50, y = 3; debugger; }");

assertEq(hits, 6);
