mirror of
https://github.com/tc39/test262.git
synced 2025-07-24 06:25:30 +02:00
Add tests for Subclassing the built-in Number Objects
This commit is contained in:
parent
67ec7fbf7b
commit
f5b5ad47e5
23
test/language/subclassing/Number/regular-subclassing.js
Normal file
23
test/language/subclassing/Number/regular-subclassing.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
es6id: 20.1.1
|
||||||
|
description: Subclassing the Number object
|
||||||
|
info: >
|
||||||
|
20.1.1 The Number Constructor
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
The Number constructor is designed to be subclassable. It may be used as the
|
||||||
|
value of an extends clause of a class definition. Subclass constructors that
|
||||||
|
intend to inherit the specified Number behaviour must include a super call to
|
||||||
|
the Number constructor to create and initialize the subclass instance with a
|
||||||
|
[[NumberData]] internal slot.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class N extends Number {}
|
||||||
|
|
||||||
|
var n = new N(42);
|
||||||
|
|
||||||
|
assert.sameValue(n.toFixed(2), '42.00');
|
||||||
|
assert.sameValue(n.toExponential(2), '4.20e+1');
|
32
test/language/subclassing/Number/super-must-be-called.js
Normal file
32
test/language/subclassing/Number/super-must-be-called.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
es6id: 20.1.1
|
||||||
|
description: Super need to be called to initialize internals
|
||||||
|
info: >
|
||||||
|
20.1.1 The Number Constructor
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
The Number constructor is designed to be subclassable. It may be used as the
|
||||||
|
value of an extends clause of a class definition. Subclass constructors that
|
||||||
|
intend to inherit the specified Number behaviour must include a super call to
|
||||||
|
the Number constructor to create and initialize the subclass instance with a
|
||||||
|
[[NumberData]] internal slot.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class N extends Number {
|
||||||
|
constructor() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.throws(ReferenceError, function() {
|
||||||
|
new N();
|
||||||
|
});
|
||||||
|
|
||||||
|
class N2 extends Number {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new N2();
|
Loading…
x
Reference in New Issue
Block a user