blob: 652702f117354dd84d6936222a2df2cc04e253f1 [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 write(v) { WScript.Echo(v); }
Object.prototype.join = Array.prototype.join;
var n = 10;
var a = new Array();
var o = new Object();
for (var i=0; i<10; i++) {
o[i] = a[i] = i * i + 1;
}
write(o.join());
write(o.join(undefined));
write(o.join("hello"));
write(a.join(a));
write(o.join(a));
write(a.join(o));
write(o.join(o));
write(Array.prototype.join.call(a, a));
write(Array.prototype.join.call(o, a));
write(Array.prototype.join.call(a, o));
write(Array.prototype.join.call(o, o));
//implicit calls
var a ;
var arr = [10];
Object.defineProperty(Array.prototype, "4", {configurable : true, get: function(){a = true; return 30;}});
a = false;
arr.length = 6;
var f = arr.join();
WScript.Echo(a);
Object.prototype['length'] = 2;
WScript.Echo(([""].join).call(5));
Object.prototype['0'] = "test";
WScript.Echo(([""].join).call(5.5));