| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| var tests = [ | |
| function (str) | |
| { | |
| // Can't optimize | |
| return "<start> " + str + " <end>"; | |
| }, | |
| function(str, str2) | |
| { | |
| // Can't optimize because the first two might not be string | |
| return str + str2 + " something"; | |
| }, | |
| function(str, str2) | |
| { | |
| // Can't optimize, side effect ordering | |
| return str + " something " + str2; | |
| }, | |
| function(str, str2) | |
| { | |
| // Can't optimize, side effect ordering | |
| return str + (" something " + str2); | |
| }, | |
| function(str) | |
| { | |
| return ("<start> " + str) | |
| + (str + " <end>"); | |
| }, | |
| function(str) | |
| { | |
| return "<start> " + str + str + (str += "<extra>") + " <end>"; | |
| }, | |
| function(str) | |
| { | |
| return "<start> " + str + str; | |
| } | |
| ]; | |
| function test(func, str, str2) | |
| { | |
| WScript.Echo("------------------------------------------"); | |
| WScript.Echo(func(str, str2)); | |
| WScript.Echo(func(str, str2)); | |
| } | |
| function alltest(str, str2) | |
| { | |
| WScript.Echo("=========================================="); | |
| WScript.Echo("Input : " + str + " | " + str2); | |
| WScript.Echo("=========================================="); | |
| for (var i = 0; i < tests.length; i++) | |
| { | |
| test(tests[i], str, str2); | |
| } | |
| } | |
| alltest("x"); | |
| alltest(12); | |
| alltest(true); | |
| function A() {}; | |
| function B() {}; | |
| A.prototype.toString = function() { WScript.Echo("A.toString"); return "A"; } | |
| B.prototype.toString = function() { WScript.Echo("B.toString"); return "B"; } | |
| alltest(new A(), new B()); |