| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| // Testing our implementation of the substring, making sure that we keep the correct reference |
| // of the original string so that it doesn't get collected |
| var s = new String(); |
| s = s + 'a'; |
| s = s + 'b'; |
| s = s + 'c'; |
| s = s + 'd'; |
| s = s + 'e'; |
| var s1 = s.substr(1,3); |
| var s2 = s1.substr(1,2); |
| s = undefined; |
| s1 = undefined; |
| |
| //implicit calls |
| function foo() |
| { |
| var a = 1; |
| var b = 2; |
| var obj = {toString: function(){ a=3; return "Hello World";}}; |
| a = b; |
| Object.prototype.substring = String.prototype.substring; |
| var f = obj.substring(2,7); |
| WScript.Echo (a); |
| } |
| foo(); |
| |
| CollectGarbage(); |
| WScript.Echo(s2); |