// Copyright 2019 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 f0(a = eval("var b"), b) { }
assertThrows(f0, SyntaxError);

function f1(a = eval("var b = 0"), b) { }
assertThrows(f1, SyntaxError);

function f2(a = eval("function b(){}"), b) { }
assertThrows(f2, SyntaxError);

function f3(a = eval("{ function b(){} }"), b) { return b }
assertEquals(undefined, f3());

function f4(b, a = eval("var b = 0")) { return b }
assertThrows(f4, SyntaxError);

function f5(b, a = eval("function b(){}")) { return b }
assertThrows(f5, SyntaxError);

function f6(b, a = eval("{ function b(){} }")) { return b }
assertEquals(42, f6(42));