Skip to content
Snippets Groups Projects
Commit 89c0a952 authored by Leonardo Balter's avatar Leonardo Balter Committed by Mike Pennisi
Browse files

Add tests for DataView.prototype.byteOffset

parent 339a3527
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.
/*---
esid: sec-get-dataview.prototype.byteoffset
es6id: 24.2.4.3
description: Throws a TypeError if the instance has a detached buffer
info: |
24.2.4.3 get DataView.prototype.byteOffset
...
5. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
6. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
...
includes: [detachArrayBuffer.js]
---*/
var buffer = new ArrayBuffer(1);
var sample = new DataView(buffer, 0);
$DETACHBUFFER(buffer);
assert.throws(TypeError, function() {
sample.byteOffset;
});
// 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.byteoffset
es6id: 24.2.4.3
description: >
Requires this value to have a [[DataView]] internal slot
info: |
24.2.4.3 get DataView.prototype.byteOffset
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.byteOffset;
});
// 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.byteoffset
es6id: 24.2.4.3
description: Throws a TypeError exception when invoked as a function
info: |
24.2.4.3 get DataView.prototype.byteOffset
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, 'byteOffset'
).get;
assert.throws(TypeError, function() {
getter();
});
// 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.byteoffset
es6id: 24.2.4.3
description: >
"byteOffset" property of DataView.prototype
info: |
DataView.prototype.byteOffset 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, "byteOffset");
assert.sameValue(desc.set, undefined);
assert.sameValue(typeof desc.get, "function");
verifyNotEnumerable(DataView.prototype, "byteOffset");
verifyConfigurable(DataView.prototype, "byteOffset");
// 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.byteoffset
es6id: 24.2.4.3
description: >
Return value from [[ByteOffset]] internal slot
info: |
24.2.4.3 get DataView.prototype.byteOffset
...
7. Let offset be the value of O's [[ByteOffset]] internal slot.
8. Return offset.
---*/
var buffer = new ArrayBuffer(12);
var sample1 = new DataView(buffer, 0);
var sample2 = new DataView(buffer, 4);
var sample3 = new DataView(buffer, 6, 4);
var sample4 = new DataView(buffer, 12);
var sample5 = new DataView(buffer, 0, 2);
assert.sameValue(sample1.byteOffset, 0);
assert.sameValue(sample2.byteOffset, 4);
assert.sameValue(sample3.byteOffset, 6);
assert.sameValue(sample4.byteOffset, 12);
assert.sameValue(sample5.byteOffset, 0);
// 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.byteoffset
description: >
Throws a TypeError exception when `this` does not have a [[DataView]] internal
slot
info: |
24.2.4.3 get DataView.prototype.byteOffset
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, "byteOffset"
).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");
// 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.byteoffset
es6id: 24.2.4.3
description: Throws a TypeError exception when `this` is not Object
info: |
24.2.4.3 get DataView.prototype.byteOffset
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, "byteOffset"
).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");
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment