Add tests for Subclassing the built-in Symbol Object

This commit is contained in:
Leonardo Balter 2016-01-07 17:23:15 -05:00
parent 47faa3ec58
commit a5b3c84fbd
2 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,35 @@
// 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.
---*/
class S1 extends Symbol {}
assert.throws(TypeError, function() {
new S1();
});
class S2 extends Symbol {
constructor() {
super();
}
}
assert.throws(TypeError, function() {
new S2();
});

View File

@ -0,0 +1,16 @@
// 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 can be used as the value of an extends
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.
...
---*/
class S extends Symbol {}