blob: 39d3ec1cb52d0ceb7243c4b4cbc53be1a80f0ba8 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
function printObj(obj)
{
WScript.Echo(obj.toString());
for (i in obj)
{
WScript.Echo(i + " == " + obj[i]);
};
WScript.Echo("byteLength = " + obj.byteLength);
}
function verifyThrow(func, obj)
{
var hasThrown = false;
var result;
try {
result = func(obj);
}
catch(e)
{
print("SUCCEEDED: get expected exception " + e.description);
hasThrown = true;
}
if (!hasThrown)
{
print("FAILED: didn't get exception");
}
}
function print(obj)
{
WScript? WScript.Echo(obj) : document.write(obj);
}
function verifyNoThrow(func, obj)
{
var hasThrown = false;
var result;
try {
result = func(obj);
}
catch(e)
{
print("FAILED: get exception " + e.description);
hasThrown = true;
}
return result;
}
function setIntValue(typedArray, valueToSet) {
}
function setFloat32Value(typedArray, valueToSet){
}
function setFloat64Value(typedArray){
}
function testSetWithObj(startIndex, endIndex, typedArray, typedArrayForFloatIndex, typedArrayForStringIndex)
{
var count = 0;
valueToSet = { valueOf: function() { WScript.Echo(count); return count++; } }
for (var i = startIndex; i < endIndex; i++)
{
typedArray[-0] = valueToSet;
typedArray[i] = valueToSet;
typedArrayForFloatIndex[i + 0.892834] = valueToSet;
typedArrayForStringIndex[i + "s"] = valueToSet;
}
for (var i = startIndex; i < endIndex; i++)
{
WScript.Echo(typedArray[i]);
WScript.Echo(typedArrayForFloatIndex[i + 0.892834]);
WScript.Echo(typedArrayForStringIndex[i + "s"]);
}
WScript.Echo(typedArray[-0]);
}
function testSetWithFloat(startIndex, endIndex, typedArray, typedArrayForFloatIndex, typedArrayForStringIndex)
{
var count = 0;
for (var i = startIndex; i < endIndex; i++)
{
typedArray[-0] = Math.sqrt(i);
typedArray[i] = Math.sqrt(i);
typedArrayForFloatIndex[i + 0.892834] = Math.sqrt(i);
typedArrayForStringIndex[i + "s"] = Math.sqrt(i);
}
for (var i = startIndex; i < endIndex; i++)
{
WScript.Echo(typedArray[i]);
WScript.Echo(typedArrayForFloatIndex[i + 0.892834]);
WScript.Echo(typedArrayForStringIndex[i + "s"]);
}
WScript.Echo(typedArray[-0]);
}
function testSetWithInt(startIndex, endIndex, typedArray, typedArrayForFloatIndex, typedArrayForStringIndex)
{
var count = 0;
for (var i = startIndex; i < endIndex; i++)
{
typedArray[-0] = 5;
typedArray[i] = 5;
typedArrayForFloatIndex[i + 0.892834] = 5;
typedArrayForStringIndex[i + "s"] = 5;
}
for (var i = startIndex; i < endIndex; i++)
{
WScript.Echo(typedArray[i]);
WScript.Echo(typedArrayForFloatIndex[i + 0.892834]);
WScript.Echo(typedArrayForStringIndex[i + "s"]);
}
WScript.Echo(typedArray[-0]);
}
function testIndexValueForSet(typedArray) {
var count = 5;
var obj = { valueOf: function() { WScript.Echo(count++); return count; } }
var testIndices = [
0,
"0",
-0, // sets index 0
"-0",
-2,
"-2",
1073741823,
"1073741823",
1,
"1",
2147483648 /*2 ^ 31*/,
"2147483648" /*"2 ^ 31"*/,
2147483647 /*(2 ^ 31) - 1*/,
"2147483647" /* "(2 ^ 31) - 1"*/ ,
4294967296 /*2 ^ 32*/,
"4294967296" /*"2 ^ 32"*/,
4294967295 /*(2 ^ 32) - 1*/,
"4294967295" /*(2 ^ 32) - 1*/,
1.5,
"1.5",
"a", /* doesn't call ToNumber(obj) */
1.0000000000000000000000000e+9,
"1.0000000000000000000000000e-9",
1/"a", /* NaN */
1/0,
-1/0,
(1/0).toString(),
(-1/0).toString()
];
for(var i = 0; i < testIndices.length; i++)
{
var testIndex = testIndices[i];
if(typeof testIndex === "string")
{
WScript.Echo('***testing index ' + i + ' : "' + testIndex + '"');
}
else
{
WScript.Echo('***testing index ' + i + ' : ' + testIndex );
}
typedArray[testIndex] = obj;
WScript.Echo(typedArray[testIndex]);
}
}