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


var _v8StartDate = new((0, function()
    {
        return Date
    })());
var _v8Interval = new((0, function()
    {
        return Date
    })()) - (0, function()
    {
        return _v8StartDate
    })();
(0, function()
{
    return WScript
})().Echo('done');
