mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 07:54:41 +02:00
Add tests for DataView.prototype.buffer
This commit is contained in:
parent
332be5b8bc
commit
7b529f00cb
21
test/built-ins/DataView/prototype/buffer/detached-buffer.js
vendored
Normal file
21
test/built-ins/DataView/prototype/buffer/detached-buffer.js
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: The getter method does not throw with a detached buffer
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
...
|
||||||
|
5. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
||||||
|
6. Return buffer.
|
||||||
|
includes: [detachArrayBuffer.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var buffer = new ArrayBuffer(8);
|
||||||
|
var sample = new DataView(buffer, 0);
|
||||||
|
|
||||||
|
$DETACHBUFFER(sample.buffer);
|
||||||
|
assert.sameValue(sample.buffer, buffer);
|
21
test/built-ins/DataView/prototype/buffer/invoked-as-accessor.js
vendored
Normal file
21
test/built-ins/DataView/prototype/buffer/invoked-as-accessor.js
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: >
|
||||||
|
Requires this value to have a [[DataView]] internal slot
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
1. Let O be the this value.
|
||||||
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
|
3. If O does not have a [[DataView]] internal slot, throw a TypeError
|
||||||
|
exception.
|
||||||
|
...
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
DataView.prototype.buffer;
|
||||||
|
});
|
24
test/built-ins/DataView/prototype/buffer/invoked-as-func.js
vendored
Normal file
24
test/built-ins/DataView/prototype/buffer/invoked-as-func.js
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: Throws a TypeError exception when invoked as a function
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
1. Let O be the this value.
|
||||||
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
|
3. If O does not have a [[DataView]] internal slot, throw a TypeError
|
||||||
|
exception.
|
||||||
|
...
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var getter = Object.getOwnPropertyDescriptor(
|
||||||
|
DataView.prototype, 'buffer'
|
||||||
|
).get;
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter();
|
||||||
|
});
|
24
test/built-ins/DataView/prototype/buffer/prop-desc.js
vendored
Normal file
24
test/built-ins/DataView/prototype/buffer/prop-desc.js
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: >
|
||||||
|
"buffer" property of DataView.prototype
|
||||||
|
info: |
|
||||||
|
DataView.prototype.buffer is an accessor property whose set accessor function
|
||||||
|
is undefined.
|
||||||
|
|
||||||
|
Section 17: Every accessor property described in clauses 18 through 26 and in
|
||||||
|
Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true }
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(DataView.prototype, "buffer");
|
||||||
|
|
||||||
|
assert.sameValue(desc.set, undefined);
|
||||||
|
assert.sameValue(typeof desc.get, "function");
|
||||||
|
|
||||||
|
verifyNotEnumerable(DataView.prototype, "buffer");
|
||||||
|
verifyConfigurable(DataView.prototype, "buffer");
|
20
test/built-ins/DataView/prototype/buffer/return-buffer.js
vendored
Normal file
20
test/built-ins/DataView/prototype/buffer/return-buffer.js
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: >
|
||||||
|
Return buffer from [[ViewedArrayBuffer]] internal slot
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
...
|
||||||
|
5. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
||||||
|
6. Return buffer.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var buffer = new ArrayBuffer(1);
|
||||||
|
var dv = new DataView(buffer, 0);
|
||||||
|
|
||||||
|
assert.sameValue(dv.buffer, buffer);
|
40
test/built-ins/DataView/prototype/buffer/this-has-no-dataview-internal.js
vendored
Normal file
40
test/built-ins/DataView/prototype/buffer/this-has-no-dataview-internal.js
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
description: >
|
||||||
|
Throws a TypeError exception when `this` does not have a [[DataView]] internal
|
||||||
|
slot
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
1. Let O be the this value.
|
||||||
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
|
3. If O does not have a [[DataView]] internal slot, throw a TypeError
|
||||||
|
exception.
|
||||||
|
...
|
||||||
|
features: [Int8Array]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var getter = Object.getOwnPropertyDescriptor(
|
||||||
|
DataView.prototype, "buffer"
|
||||||
|
).get;
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call({});
|
||||||
|
}, "{}");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call([]);
|
||||||
|
}, "[]");
|
||||||
|
|
||||||
|
var ab = new ArrayBuffer(8);
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(ab);
|
||||||
|
}, "ArrayBuffer");
|
||||||
|
|
||||||
|
var ta = new Int8Array();
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(ta);
|
||||||
|
}, "TypedArray");
|
48
test/built-ins/DataView/prototype/buffer/this-is-not-object.js
vendored
Normal file
48
test/built-ins/DataView/prototype/buffer/this-is-not-object.js
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-get-dataview.prototype.buffer
|
||||||
|
es6id: 24.2.4.1
|
||||||
|
description: Throws a TypeError exception when `this` is not Object
|
||||||
|
info: |
|
||||||
|
24.2.4.1 get DataView.prototype.buffer
|
||||||
|
|
||||||
|
1. Let O be the this value.
|
||||||
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
|
...
|
||||||
|
features: [Symbol]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var getter = Object.getOwnPropertyDescriptor(
|
||||||
|
DataView.prototype, "buffer"
|
||||||
|
).get;
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(undefined);
|
||||||
|
}, "this is undefined");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(null);
|
||||||
|
}, "this is null");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(42);
|
||||||
|
}, "this is 42");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call("1");
|
||||||
|
}, "this is a string");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(true);
|
||||||
|
}, "this is true");
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(false);
|
||||||
|
}, "this is false");
|
||||||
|
|
||||||
|
var s = Symbol("s");
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
getter.call(s);
|
||||||
|
}, "this is a Symbol");
|
Loading…
x
Reference in New Issue
Block a user