mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 03:34:08 +01:00 
			
		
		
		
	Missing coverage encountered while implementing <https://github.com/tc39/ecma262/pull/3307> in SpiderMonkey. Ensure environment lookups are performed in the correct order: - keyed-destructuring-property-reference-target-evaluation-order-with-bindings.js Ensure `delete super[elem]` steps are correctly performed: - delete/super-property-topropertykey.js - delete/super-property-uninitialized-this.js Ensure ToPropertyKey for computed property names in object literals correctly performed: - object/computed-property-name-topropertykey-before-value-evaluation.js Ensure `GetSuperBase` is executed before `ToPropertKey`: - super/prop-expr-getsuperbase-before-topropertykey-* Ensure `GetThisBinding` is executed first: - super/prop-expr-uninitialized-this-*
		
			
				
	
	
		
			32 lines
		
	
	
		
			730 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			730 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright (C) 2024 André Bargull. All rights reserved.
 | |
| // This code is governed by the BSD license found in the LICENSE file.
 | |
| 
 | |
| /*---
 | |
| esid: sec-super-keyword-runtime-semantics-evaluation
 | |
| description: >
 | |
|   Expression not evaluated when this binding is uninitialized in PutValue context.
 | |
| info: |
 | |
|   13.3.7.1 Runtime Semantics: Evaluation
 | |
| 
 | |
|     SuperProperty : super [ Expression ]
 | |
| 
 | |
|     ...
 | |
|     2. Let actualThis be ? env.GetThisBinding().
 | |
|     3. Let propertyNameReference be ? Evaluation of Expression.
 | |
|     ...
 | |
| ---*/
 | |
| 
 | |
| class Base {
 | |
|   constructor() {
 | |
|     throw new Test262Error("base constructor");
 | |
|   }
 | |
| }
 | |
| 
 | |
| class Derived extends Base {
 | |
|   constructor() {
 | |
|     super[super()] = 0;
 | |
|   }
 | |
| }
 | |
| 
 | |
| assert.throws(ReferenceError, () => new Derived);
 |