Test for TypedArray.prototype.fill semantics change (#927)

The change is proposed in https://github.com/tc39/ecma262/pull/856
as a fix to https://github.com/tc39/ecma262/issues/855

Here, the ToNumber coercion is done only once, rather than on each
iteration. It does not appear that there were previously any
tests against repeated coercion for this parameter previously.

Tested this test against V8, which failed, as V8 implements the
current spec rather than the proposed one.
This commit is contained in:
littledan 2017-03-27 19:50:38 +02:00 committed by Leo Balter
parent 6cee99ab64
commit 32e129676e
1 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,26 @@
// Copyright (C) 2017 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.fill
description: >
Fills all the elements with non numeric values values.
info: >
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
...
3. Let _value_ be ? ToNumber(_value_).
...
includes: [testTypedArray.js]
---*/
testWithTypedArrayConstructors(function(TA) {
var sample = new TA(2);
var n = 1;
sample.fill({ valueOf() { return n++; } });
assert.sameValue(n, 2, "additional unexpected ToNumber() calls");
assert.sameValue(sample[0], 1, "incorrect ToNumber result in index 0");
assert.sameValue(sample[1], 1, "incorrect ToNumber result in index 1");
});