// Copyright 2015 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.

'use strict';

let xxx = 1;
let f = undefined;
{
  let inner_x = xxx;
  f = function() { return inner_x; };
}

assertSame(1, f());

xxx = 42;
{
  f = function() { return inner_x1; };
  let inner_x1 = xxx;
}

assertSame(42, f());

xxx = 31;
{
  let inner_x1 = xxx;
  try {
    throw new Error();
  } catch (e) {
    f = function() { return inner_x1; };
  }
}
assertSame(31, f());
