//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function test0() {
    var IntArr1 = [
            -107237352,
            -1613253955,
            -9159329201106759000,
            -295102479,
            -1,
            795305804,
            1058299229,
            65537,
            1,
            546814013,
            -2147483648
        ];
    protoObj1 = Object();
    IntArr1[14] = 1;
    IntArr1[12] = 1;
    var __loopvar0 = 0;
    do {
        if (__loopvar0) {
            break;
        }
        __loopvar0++;
        (protoObj1 |= 1) ? 1 : IntArr0(IntArr0(IntArr1[380518414.1]));
    } while (1);
}
test0();
test0();
test0();
test0();
WScript.Echo("PASS");
