blob: 1a86d4f2b0d0b21e183895c0502bc57618d20e1b [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.
//-------------------------------------------------------------------------------------------------------
var Class = {
create: function() {
return function bar() {
this.initialize.apply(this, arguments);
}
}
};
var object = {};
object.obj1 = Class.create();
object.obj1.prototype = {
r : 0,
initialize : function(r) {
this.r = r;
}
}
object.obj2 = Class.create();
object.obj2.prototype = {
x : 0,
y : 0,
initialize : function(x,y) {
this.x = x;
this.y = y;
}
}
object.obj3 = Class.create();
object.obj3.prototype = {
prop1 : {},
initialize : function(a) {
this.prop1 = new object.obj1(a);
}
}
object.obj4 = Class.create();
object.obj4.prototype = {
prop1 : {},
prop2 : {},
initialize : function(r,s,t) {
this.prop1 = new object.obj1(r);
this.prop2 = new object.obj2(s,t);
}
}
function foo()
{
var v00 = new object.obj1();
var v01 = new object.obj1(1);
var v02 = new object.obj1(1,2);
var v03 = new object.obj1(1,2,3);
WScript.Echo(v03.r);
var v4 = new object.obj2(1);
var v5 = new object.obj2(1,2);
var v6 = new object.obj2(1,2,3);
WScript.Echo(v6.y);
var v7 = new object.obj3(1);
var v8 = new object.obj3(1,2);
var v9 = new object.obj3(1,2,3);
WScript.Echo(v9.prop1.r);
var v10 = new object.obj4(1);
var v11 = new object.obj4(1,2);
var v12 = new object.obj4(1,2,3);
WScript.Echo(v12.prop1.r);
WScript.Echo(v12.prop2.y);
}
foo();
foo();
//override apply
Function.prototype.apply = function(){};
foo();
WScript.Echo("Passed");