test262/test/language/expressions/class/super-evaluation-order.js

30 lines
731 B
JavaScript

// Copyright (C) 2020 Jordan Harband. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: prod-SuperCall
description: SuperCall should evaluate Arguments prior to checking IsConstructable
info: |
GetSuperConstructor ( )
[...]
1. Let _func_ be ! GetSuperConstructor().
2. Let _argList_ be ? ArgumentListEvaluation of |Arguments|.
3. If IsConstructor(_func_) is *false*, throw a *TypeError* exception.
[...]
features: [default-parameters]
---*/
var x = 0;
class C extends Object {
constructor() {
super(x = 123);
}
}
Object.setPrototypeOf(C, parseInt);
assert.throws(TypeError, () => {
new C();
});
assert.sameValue(x, 123, 'via ArgumentListEvaluation');