// 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. function* g1() { try { throw {}; } catch ({a = class extends (yield) {}}) { } } g1().next(); // crashes without fix function* g2() { let x = function(){}; try { throw {}; } catch ({b = class extends x {}}) { } } g2().next(); // crashes without fix function* g3() { let x = 42; try { throw {}; } catch ({c = (function() { return x })()}) { } } g3().next(); // throws a ReferenceError without fix