summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js
blob: 70cdae8717a84e4111a322bd67e3404377a5a86d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 19.4.1
description: Symbol subclass called with the new operator throws on super()
info: |
  19.4.1 The Symbol Constructor

  ...
  The Symbol constructor is not intended to be used with the new operator or to
  be subclassed. It may be used as the value of an extends clause of a class
  definition but a super call to the Symbol constructor will cause an exception.

  19.4.1.1 Symbol ( [ description ] )

  ...
  1. If NewTarget is not undefined, throw a TypeError exception.
features: [Symbol]
---*/

class S1 extends Symbol {}

assert.throws(TypeError, function() {
  new S1();
});

class S2 extends Symbol {
  constructor() {
    super();
  }
}

assert.throws(TypeError, function() {
  new S2();
});


reportCompare(0, 0);