| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //-------------------------------------------------------------------------------------------------------
- // 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 + ""); }
- function doEval(str) {
- var r;
- try {
- r = eval(str);
- write(str + ": result = " + r);
- } catch (e) {
- write("Exception: " + e);
- }
- }
- function f0()
- {
- write("f0");
- return "f0";
- }
- function f1(x)
- {
- write("f1 x: " + x);
- return "f1";
- }
- function f2(x,y)
- {
- write("f2 x: " + x + " y: " + y);
- return "f2";
- }
- function f3(x,y,z)
- {
- write("f3 x: " + x + " y: " + y + " z: " + z);
- write(z.substring(y, x.length));
- return "f3";
- }
- var s1 = new String("This is a some string value. 12.34");
- var s2 = "This is a some string value. 12.34";
- var search = ['"some"', 12, 34, "/[0-9]/", "/[0-9]+/", "/[0-9]+/g", "undefined", "null" ];
- var replace= ['"any"', '""', "undefined", "null", "f0", "f1", "f2", "f3"];
- for (var i=0; i<search.length; i++)
- {
- for (var j=0; j<replace.length; j++)
- {
- doEval("s1.replace(" + search[i] + ", " + replace[j] + ");");
- doEval("s2.replace(" + search[i] + ", " + replace[j] + ");");
- }
- }
- //implicit calls
- var called = false;
- var replaceobj = {toString: function() { called = true; }};
- "ABC".replace("D", replaceobj);
- WScript.Echo (called);
|