mirror of https://github.com/tc39/test262.git
29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
esid: sec-evaldeclarationinstantiation
|
|
description: Variable collision with global lexical binding
|
|
info: |
|
|
[...]
|
|
5. If strict is false, then
|
|
a. If varEnvRec is a global Environment Record, then
|
|
i. For each name in varNames, do
|
|
1. If varEnvRec.HasLexicalDeclaration(name) is true, throw a
|
|
SyntaxError exception.
|
|
2. NOTE: eval will not create a global var declaration that would
|
|
be shadowed by a global lexical declaration.
|
|
[...]
|
|
negative: SyntaxError
|
|
flags: [noStrict]
|
|
features: [let]
|
|
---*/
|
|
|
|
let x;
|
|
|
|
// Although the `try` statement is a more precise mechanism for detecting
|
|
// runtime errors, the behavior under test is only observable for a direct eval
|
|
// call when the call is made from the global scope. This forces the use of
|
|
// the more coarse-grained `negative` frontmatter to assert the expected error.
|
|
|
|
eval('var x;');
|