// Copyright 2017 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. | |
let state = 'initial'; | |
try { | |
throw new Error('caught'); | |
state = 'unreachable'; | |
} catch { // Note the lack of a binding | |
assertEquals(state, 'initial'); | |
state = 'caught'; | |
} | |
assertEquals(state, 'caught'); | |
let sigil1 = {}; | |
try { | |
throw sigil1; | |
} catch (e) { | |
assertEquals(e, sigil1); | |
} | |
let sigil2 = {}; | |
let reached = false; | |
try { | |
try { | |
throw sigil1; | |
} catch { | |
reached = true; | |
} finally { | |
throw sigil2; | |
} | |
} catch (e) { | |
assertEquals(e, sigil2); | |
} | |
assertTrue(reached); |