mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 03:34:08 +01:00 
			
		
		
		
	Add tests for IdentifierReference as property
From the ES6 specification: > ## PropertyDefinition : IdentifierReference > > 1. Let propName be StringValue of IdentifierReference. > 2. Let exprValue be the result of evaluating IdentifierReference. > 3. ReturnIfAbrupt(exprValue). > 4. Let propValue be GetValue(exprValue). > 5. ReturnIfAbrupt(propValue). > 6. Assert: enumerable is true. > 7. Return CreateDataPropertyOrThrow(object, propName, propValue).
This commit is contained in:
		
							parent
							
								
									bf3989be55
								
							
						
					
					
						commit
						202ed9ee1d
					
				
							
								
								
									
										22
									
								
								test/language/expressions/object/prop-def-id-eval-error-2.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								test/language/expressions/object/prop-def-id-eval-error-2.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| // Copyright (C) Copyright 2015 the V8 project authors. All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| es6id: 12.2.5.9 | ||||
| description: > | ||||
|     Errors thrown during IdentifierReference evaluation are forwarded to the | ||||
|     runtime. | ||||
| flags: [noStrict] | ||||
| features: [Proxy] | ||||
| ---*/ | ||||
| 
 | ||||
| var p = new Proxy({}, { | ||||
|   has: function () { | ||||
|     throw new Test262Error(); | ||||
|   } | ||||
| }); | ||||
| 
 | ||||
| assert.throws(Test262Error, function() { | ||||
|   with (p) { | ||||
|     ({attr}); | ||||
|   } | ||||
| }); | ||||
							
								
								
									
										21
									
								
								test/language/expressions/object/prop-def-id-eval-error.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								test/language/expressions/object/prop-def-id-eval-error.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| // Copyright (C) Copyright 2015 the V8 project authors. All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| es6id: 12.2.5.9 | ||||
| description: > | ||||
|     Errors thrown during IdentifierReference evaluation are forwarded to the | ||||
|     runtime. | ||||
| flags: [noStrict] | ||||
| features: [Symbol, Symbol.unscopables] | ||||
| ---*/ | ||||
| 
 | ||||
| var obj = { | ||||
|   attr: null, | ||||
|   get [Symbol.unscopables]() { throw new Test262Error(); } | ||||
| }; | ||||
| 
 | ||||
| assert.throws(Test262Error, function() { | ||||
|   with (obj) { | ||||
|     ({ attr }); | ||||
|   } | ||||
| }); | ||||
							
								
								
									
										12
									
								
								test/language/expressions/object/prop-def-id-get-error.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test/language/expressions/object/prop-def-id-get-error.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| // Copyright (C) Copyright 2015 the V8 project authors. All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| es6id: 12.2.5.9 | ||||
| description: > | ||||
|     Errors thrown during IdentifierReference value retrieval are forwarded to | ||||
|     the runtime. | ||||
| ---*/ | ||||
| 
 | ||||
| assert.throws(ReferenceError, function() { | ||||
|   ({ unresolvable }); | ||||
| }); | ||||
							
								
								
									
										21
									
								
								test/language/expressions/object/prop-def-id-valid.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								test/language/expressions/object/prop-def-id-valid.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| // Copyright (C) Copyright 2015 the V8 project authors. All rights reserved.
 | ||||
| // This code is governed by the BSD license found in the LICENSE file.
 | ||||
| /*--- | ||||
| es6id: 12.2.5.9 | ||||
| description: > | ||||
|     When a valid IdentifierReference appears in an object initializer, a new | ||||
|     data property is created. The property name is the string value of the | ||||
|     identifier, the property value is the value of the identifier, and the | ||||
|     property is enumerable, writable, and configurable. | ||||
| includes: [propertyHelper.js] | ||||
| ---*/ | ||||
| 
 | ||||
| var attr = 23; | ||||
| var obj; | ||||
| 
 | ||||
| obj = { attr }; | ||||
| 
 | ||||
| assert.sameValue(obj.attr, 23); | ||||
| verifyEnumerable(obj, 'attr'); | ||||
| verifyWritable(obj, 'attr'); | ||||
| verifyConfigurable(obj, 'attr'); | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user