// 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');