mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 19:53:50 +01:00 
			
		
		
		
	Adding cases to check if SyntaxError is thrown if AllPrivateIdentifiersValid returns false. (#2301)
This commit is contained in:
		
							parent
							
								
									8d41122c2b
								
							
						
					
					
						commit
						fbbab61b4a
					
				
							
								
								
									
										20
									
								
								test/built-ins/Function/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								test/built-ins/Function/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| // Copyright (C) 2019 Caio Lima (Igalia SL). All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| esid: sec-createdynamicfunction | ||||
| description: CreateDynamicFunction throws SyntaxError if there is some invalid private identifier on its body | ||||
| info: | | ||||
|   CreateDynamicFunction(constructor, newTarget, kind, args) | ||||
|     ... | ||||
|     29. Let privateIdentifiers be an empty List. | ||||
|     30. If AllPrivateIdentifiersValid of body with the argument privateIdentifiers is false, throw a SyntaxError exception. | ||||
|     31. If AllPrivateIdentifiersValid of parameters with the argument privateIdentifiers is false, throw a SyntaxError exception. | ||||
|     ... | ||||
| features: [class-fields-private] | ||||
| ---*/ | ||||
| 
 | ||||
| assert.throws(SyntaxError, function() { | ||||
|   let o = {}; | ||||
|   new Function("o.#f"); | ||||
| }, 'It should be a SyntaxError if AllPrivateIdentifiersValid returns false to dynamic function body'); | ||||
| 
 | ||||
							
								
								
									
										24
									
								
								test/built-ins/eval/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								test/built-ins/eval/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| // Copyright (C) 2019 Caio Lima (Igalia SL). All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| esid: sec-evaldeclarationinstantiation | ||||
| description: EvalDeclarationInstantiation throws SyntaxError if there is some invalid private identifier on its body | ||||
| info: | | ||||
|   EvalDeclarationInstantiation(body, varEnv, lexEnv, privateEnv, strict) | ||||
|     ... | ||||
|     6. Let privateIdentifiers be an empty List. | ||||
|     7. Let privateEnv be privateEnv. | ||||
|     8. Repeat while privateEnv is not null, | ||||
|       a. For each binding named N in privateEnv, | ||||
|         i. If privateIdentifiers does not contain N, append N to privateIdentifiers. | ||||
|       b. Let privateEnv be privateEnv's outer environment reference. | ||||
|     9. If AllPrivateIdentifiersValid of body with the argument privateIdentifiers is false, throw a SyntaxError exception. | ||||
|     ... | ||||
| features: [class-fields-private] | ||||
| ---*/ | ||||
| 
 | ||||
| assert.throws(SyntaxError, function() { | ||||
|   let o = {}; | ||||
|   eval("o.#f"); | ||||
| }, 'It should be a SyntaxError if AllPrivateIdentifiersValid returns false to eval body'); | ||||
| 
 | ||||
							
								
								
									
										18
									
								
								test/language/module-code/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								test/language/module-code/private-identifiers-not-empty.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| // Copyright (C) 2019 Caio Lima (Igalia SL). All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| esid: sec-static-semantics-early-errors | ||||
| description: > | ||||
|     ModuleBody : ModuleItemList | ||||
|       It is a Syntax Error if AllPrivateIdentifiersValid of ModuleItemList with an empty List as an argument is false. | ||||
| flags: [module] | ||||
| features: [class-static-fields-private] | ||||
| negative: | ||||
|   phase: parse | ||||
|   type: SyntaxError | ||||
| ---*/ | ||||
| 
 | ||||
| $DONOTEVALUATE(); | ||||
| 
 | ||||
| var x = {}; | ||||
| x.#f = 'Test262'; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user