{"ScriptPreparationCode":"function makeNode() {\r\n return {\r\n valid: Math.random() \u003E 0.5\r\n };\r\n}\r\n\r\nfunction isNodeValid( node ) {\r\n return node.valid;\r\n}\r\n\r\nfunction isValid() {\r\n return this.valid;\r\n}\r\n\r\nconst nodes = [];\r\nfor( let i = 0; i \u003C 10000; i\u002B\u002B ) {\r\n const node = makeNode();\r\n node.isValid = isValid.bind( node );\r\n nodes.push( node );\r\n}\r\n\r\nfunction getNodes() {\r\n return nodes;\r\n}","TestCases":[{"Name":"Function","Code":"getNodes().forEach( node =\u003E isNodeValid( node ) );","IsDeferred":false},{"Name":"Function bind","Code":"getNodes().forEach( node =\u003E node.isValid() );","IsDeferred":false},{"Name":"Function bind and call","Code":"getNodes().forEach( node =\u003E isValid.bind( node )() );","IsDeferred":false},{"Name":"Function call","Code":"getNodes().forEach( node =\u003E isValid.call( node ) );","IsDeferred":false}]}