blob: e5d504634831685b0d0c789bd70c4a082843f3cf [file] [log] [blame]
// 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-%typedarray%.prototype.set-array-offset
description: >
ToInteger(offset) operations
info: |
22.2.3.23.1 %TypedArray%.prototype.set (array [ , offset ] )
1. Assert: array is any ECMAScript language value other than an Object with a
[[TypedArrayName]] internal slot. If it is such an Object, the definition in
22.2.3.23.2 applies.
...
6. Let targetOffset be ? ToInteger(offset).
7. If targetOffset < 0, throw a RangeError exception.
...
includes: [testBigIntTypedArray.js, compareArray.js]
features: [BigInt, TypedArray]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
var sample;
sample = new TA([1n, 2n]);
sample.set([42n], "");
assert(compareArray(sample, [42n, 2n]), "the empty string");
sample = new TA([1n, 2n]);
sample.set([42n], "0");
assert(compareArray(sample, [42n, 2n]), "'0'");
sample = new TA([1n, 2n]);
sample.set([42n], false);
assert(compareArray(sample, [42n, 2n]), "false");
sample = new TA([1n, 2n]);
sample.set([42n], 0.1);
assert(compareArray(sample, [42n, 2n]), "0.1");
sample = new TA([1n, 2n]);
sample.set([42n], 0.9);
assert(compareArray(sample, [42n, 2n]), "0.9");
sample = new TA([1n, 2n]);
sample.set([42n], -0.5);
assert(compareArray(sample, [42n, 2n]), "-0.5");
sample = new TA([1n, 2n]);
sample.set([42n], 1.1);
assert(compareArray(sample, [1n, 42n]), "1.1");
sample = new TA([1n, 2n]);
sample.set([42n], NaN);
assert(compareArray(sample, [42n, 2n]), "NaN");
sample = new TA([1n, 2n]);
sample.set([42n], null);
assert(compareArray(sample, [42n, 2n]), "null");
sample = new TA([1n, 2n]);
sample.set([42n], undefined);
assert(compareArray(sample, [42n, 2n]), "undefined");
sample = new TA([1n, 2n]);
sample.set([42n], {});
assert(compareArray(sample, [42n, 2n]), "{}");
sample = new TA([1n, 2n]);
sample.set([42n], []);
assert(compareArray(sample, [42n, 2n]), "[]");
sample = new TA([1n, 2n]);
sample.set([42n], [0]);
assert(compareArray(sample, [42n, 2n]), "[0]");
sample = new TA([1n, 2n]);
sample.set([42n], true);
assert(compareArray(sample, [1n, 42n]), "true");
sample = new TA([1n, 2n]);
sample.set([42n], "1");
assert(compareArray(sample, [1n, 42n]), "'1'");
sample = new TA([1n, 2n]);
sample.set([42n], [1]);
assert(compareArray(sample, [1n, 42n]), "[1]");
sample = new TA([1n, 2n]);
sample.set([42n], { valueOf: function() {return 1;} });
assert(compareArray(sample, [1n, 42n]), "valueOf");
sample = new TA([1n, 2n]);
sample.set([42n], { toString: function() {return 1;} });
assert(compareArray(sample, [1n, 42n]), "toString");
});