{"ScriptPreparationCode":"let v = -1;\r\n\r\nfunction test(a, b, c) {\r\n v = a \u002B b \u002B c;\r\n}\r\n\r\nsetInterval(() =\u003E {console.log({ v }); v=-1;}, 5000)","TestCases":[{"Name":"direct call","Code":"const fn1 = test;\r\nfn1(1, 2, 3);","IsDeferred":false},{"Name":"bind","Code":"const fn2 = test.bind(this)\r\nfn2(2, 3, 4);","IsDeferred":false},{"Name":"call","Code":"const fn3 = function (...args) { test.call(this, ...args); };\r\nfn3(3, 4, 5);","IsDeferred":false},{"Name":"apply","Code":"const fn4 = function (...args) { test.apply(this, args); };\r\nfn4(4,5,6);","IsDeferred":false},{"Name":"apply arguments","Code":"const fn5 = function () { test.apply(this, arguments); };\r\nfn5(7,8,9);","IsDeferred":false},{"Name":"call arguments","Code":"const fn3 = function () { test.call(this, ...arguments); };\r\nfn3(10,11,11);","IsDeferred":false}]}