// 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 |