// 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%.of description: > Test NaN conversions info: | IntegerIndexedElementSet ( O, index, value ) Assert: O is an Integer-Indexed exotic object. If O.[[ContentType]] is BigInt, let numValue be ? ToBigInt(value). Otherwise, let numValue be ? ToNumber(value). Let buffer be O.[[ViewedArrayBuffer]]. If IsDetachedBuffer(buffer) is false and ! IsValidIntegerIndex(O, index) is true, then Let offset be O.[[ByteOffset]]. Let arrayTypeName be the String value of O.[[TypedArrayName]]. Let elementSize be the Element Size value specified in Table 62 for arrayTypeName. Let indexedPosition be (ℝ(index) × elementSize) + offset. Let elementType be the Element Type value in Table 62 for arrayTypeName. Perform SetValueInBuffer(buffer, indexedPosition, elementType, numValue, true, Unordered). Return NormalCompletion(undefined). 24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value [ , isLittleEndian ] ) includes: [testTypedArray.js] features: [TypedArray] ---*/ testWithTypedArrayConstructors(function(TA) { var result = TA.of(NaN, undefined); assert.sameValue(result.length, 2); assert.sameValue(result[0], NaN); assert.sameValue(result[1], NaN); assert.sameValue(result.constructor, TA); assert.sameValue(Object.getPrototypeOf(result), TA.prototype); }, floatArrayConstructors); testWithTypedArrayConstructors(function(TA) { var result = TA.of(NaN, undefined); assert.sameValue(result.length, 2); assert.sameValue(result[0], 0); assert.sameValue(result[1], 0); assert.sameValue(result.constructor, TA); assert.sameValue(Object.getPrototypeOf(result), TA.prototype); }, intArrayConstructors); reportCompare(0, 0);