// Copyright (C) 2011 the V8 project authors. All rights reserved. | |
// This code is governed by the BSD license found in the LICENSE file. | |
/*--- | |
es6id: 13.1 | |
description: > | |
outermost binding updated in catch block; nested block let declaration unseen outside of block | |
---*/ | |
var caught = false; | |
try { | |
{ | |
let xx = 18; | |
throw 25; | |
} | |
} catch (e) { | |
caught = true; | |
assert.sameValue(e, 25); | |
(function () { | |
try { | |
// NOTE: This checks that the block scope containing xx has been | |
// removed from the context chain. | |
assert.sameValue(xx, undefined); | |
eval('xx'); | |
assert(false); // should not reach here | |
} catch (e2) { | |
assert(e2 instanceof ReferenceError); | |
} | |
})(); | |
} | |
assert(caught); | |