super-must-be-called.js (853B)
1 // Copyright (C) 2016 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 es6id: 23.1.1 5 description: Super need to be called to initialize internals 6 info: | 7 23.1.1 The Map Constructor 8 9 ... 10 11 The Map constructor is designed to be subclassable. It may be used as the 12 value in an extends clause of a class definition. Subclass constructors that 13 intend to inherit the specified Map behaviour must include a super call to the 14 Map constructor to create and initialize the subclass instance with the 15 internal state necessary to support the Map.prototype built-in methods. 16 ---*/ 17 18 class M1 extends Map { 19 constructor() {} 20 } 21 22 assert.throws(ReferenceError, function() { 23 new M1(); 24 }); 25 26 class M2 extends Map { 27 constructor() { 28 super(); 29 } 30 } 31 32 new M2(); 33 34 reportCompare(0, 0);