Skip to content
Snippets Groups Projects
Commit 0c40ed0c authored by Leonardo Balter's avatar Leonardo Balter
Browse files

Add tests for Subclassing the built-in ArrayBuffer Objects

parent 4ad09e50
No related branches found
No related tags found
No related merge requests found
// 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();
});
// 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);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment