mirror of
https://github.com/tc39/test262.git
synced 2025-10-03 15:08:48 +02:00
Closes #572 Introduce tests for new semantics for ES2015 features such as lexically-scoped bindings. Also add tests for semantics defined in prior editions of the specification but not yet covered in this test suite.
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;');
|