| // 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-scripts-static-semantics-early-errors |
| es6id: 15.1.1 |
| description: An ArrowFunction in global code may not contain SuperProperty |
| info: | |
| - It is a Syntax Error if StatementList Contains super unless the source code |
| containing super is eval code that is being processed by a direct eval that |
| is contained in function code that is not the function code of an |
| ArrowFunction. |
| |
| 14.2.3 Static Semantics: Contains |
| |
| With parameter symbol. |
| |
| ArrowFunction : ArrowParameters => ConciseBody |
| |
| 1. If symbol is not one of NewTarget, SuperProperty, SuperCall, super or |
| this, return false. |
| 2. If ArrowParameters Contains symbol is true, return true. |
| 3. Return ConciseBody Contains symbol. |
| |
| NOTE Normally, Contains does not look inside most function forms. However, |
| Contains is used to detect new.target, this, and super usage within an |
| ArrowFunction. |
| features: [super, arrow-function] |
| negative: |
| phase: parse |
| type: SyntaxError |
| ---*/ |
| |
| $DONOTEVALUATE(); |
| |
| () => { |
| super.property; |
| }; |