blob: 59f97ce79b29e87fe143d28c6aa6764c143a95a0 [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 PropertyExists(obj, propName)
{
return obj.hasOwnProperty(propName);
}
var val = 100;
function IncrVal()
{
telemetryLog(`IncrVal:: ${this.val} args.length : ${arguments.length}`, true);
this.val++;
return this.val + " " + arguments.length;
}
var fGlobalThis1 = IncrVal.bind();
var fGlobalThis2 = IncrVal.bind(this);
var fGlobalThis3 = IncrVal.bind(this, 50);
var fGlobalThisNull = IncrVal.bind(null);
var objWithVal1 = { val : 200 }
var fLocal1 = IncrVal.bind(objWithVal1);
var x = 20;
var y = 30;
function add()
{
return this.x + this.y;
}
var o = { x: 5, y: 6};
var f = add.bind(o);
var f2 = new f();
WScript.SetTimeout(testFunction, 50);
/////////////////
function testFunction()
{
telemetryLog(`global object 1 ${fGlobalThis1()}`, true);
telemetryLog(`global object 1 ${fGlobalThis1(10,20)}`, true);
telemetryLog(`global object 2 ${fGlobalThis2()}`, true);
telemetryLog(`global object 2 ${fGlobalThis2(10,20)}`, true);
telemetryLog(`global object 3 ${fGlobalThis3()}`, true);
telemetryLog(`global object 3 ${fGlobalThis3(10,20)}`, true);
telemetryLog(`global object null ${fGlobalThisNull(10,20)}`, true);
telemetryLog(`local length ${fLocal1.length}`, true);
telemetryLog(`Local object2 ${fLocal1(10)}`, true);
telemetryLog(`Add Test ${add()}`, true);
telemetryLog(`f Test ${f()}`, true);
telemetryLog(`Proto Test ${add.prototype.isPrototypeOf(f2)}`, true);
emitTTDLog(ttdLogURI);
}