mirror of
https://github.com/tc39/test262.git
synced 2025-07-26 23:44:27 +02:00
Add tests for Subclassing the built-in ArrayBuffer Objects
This commit is contained in:
parent
4ad09e5060
commit
0c40ed0cf0
31
test/language/subclassing/ArrayBuffer/regular-subclassing.js
Normal file
31
test/language/subclassing/ArrayBuffer/regular-subclassing.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
es6id: 24.1.2
|
||||||
|
description: Subclassing the ArrayBuffer object
|
||||||
|
info: >
|
||||||
|
24.1.2 The ArrayBuffer Constructor
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
The ArrayBuffer 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 ArrayBuffer behaviour must include a
|
||||||
|
super call to the ArrayBuffer constructor to create and initialize subclass
|
||||||
|
instances with the internal state necessary to support the
|
||||||
|
ArrayBuffer.prototype built-in methods.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class AB extends ArrayBuffer {}
|
||||||
|
|
||||||
|
var ab = new AB(4);
|
||||||
|
|
||||||
|
var sliced = ab.slice(0, 1);
|
||||||
|
|
||||||
|
assert(sliced instanceof AB);
|
||||||
|
assert(sliced instanceof ArrayBuffer);
|
||||||
|
assert.notSameValue(ab, sliced);
|
||||||
|
|
||||||
|
assert.throws(RangeError, function() {
|
||||||
|
new AB();
|
||||||
|
});
|
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
es6id: 24.1.2
|
||||||
|
description: Super need to be called to initialize internals
|
||||||
|
info: >
|
||||||
|
24.1.2 The ArrayBuffer Constructor
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
The ArrayBuffer 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 ArrayBuffer behaviour must include a
|
||||||
|
super call to the ArrayBuffer constructor to create and initialize subclass
|
||||||
|
instances with the internal state necessary to support the
|
||||||
|
ArrayBuffer.prototype built-in methods.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class AB1 extends ArrayBuffer {
|
||||||
|
constructor() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.throws(ReferenceError, function() {
|
||||||
|
new AB1(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
class AB2 extends ArrayBuffer {
|
||||||
|
constructor(length) {
|
||||||
|
super(length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new AB2(1);
|
Loading…
x
Reference in New Issue
Block a user