mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-04 05:33:50 +01:00 
			
		
		
		
	After @rwaldron's feedback: The purpose of the `!` operator is to evaluate an UnaryExpression, coerce the result to a boolean value and then return the negated value of that operation. But that's not what you're trying to do at all—you just want to evaluate the expression to the right of the operator, nothing more, nothing less. In this specific case, you don't even really care about the evaluation, the goal is write valid (or invalid, as the case may be) syntax that is will be parsed according to a specific grammar rule that requires some operator to signal that the thing is an expression and not a Block Statement.
		
			
				
	
	
		
			16 lines
		
	
	
		
			426 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			426 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright 2016 Microsoft, Inc. All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
author: Brian Terlson <brian.terlson@microsoft.com>
 | 
						|
esid: pending
 | 
						|
description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody
 | 
						|
negative:
 | 
						|
  phase: early
 | 
						|
  type: SyntaxError
 | 
						|
---*/
 | 
						|
 | 
						|
({
 | 
						|
  async function foo(bar) { let bar; }
 | 
						|
})
 |