30 lines
602 B
JavaScript
30 lines
602 B
JavaScript
|
// 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
|