| //------------------------------------------------------------------------------------------------------- |
| // 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.concat = Array.prototype.concat; |
| |
| 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(a.concat()); |
| write(o.concat()); |
| |
| var x = a.concat(undefined) + ""; |
| write(x); |
| write(a.concat(undefined)); |
| write(o.concat(undefined)); |
| |
| write(a.concat(null)); |
| write(o.concat(null)); |
| |
| write(a.concat("hello")); |
| write(o.concat("hello")); |
| |
| write(a.concat(a)); |
| write(o.concat(a)); |
| |
| write(a.concat(o)); |
| write(o.concat(o)); |
| |
| var b = Array.prototype.concat.call(10); |
| write(b[0] == 10); // true |
| write(b[0] === 10); // false |
| |
| //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.concat([30]); |
| WScript.Echo(a); |