mirror of
https://github.com/tc39/test262.git
synced 2025-07-31 01:44:54 +02: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
752 B
JavaScript
32 lines
752 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 with increment operator.
|
|
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()]++;
|
|
}
|
|
}
|
|
|
|
assert.throws(ReferenceError, () => new Derived);
|