function-name.js (1308B)
1 function interpreted() { 2 for (var i = 0; i < 50; i++) { 3 var f = (0, function () {}); 4 assertEq(f.name, ""); 5 } 6 7 for (var i = 0; i < 50; i++) { 8 var f = function () {}; 9 assertEq(f.name, "f"); 10 } 11 12 for (var i = 0; i < 50; i++) { 13 var f = function a () {}; 14 assertEq(f.name, "a"); 15 } 16 } 17 18 function bound() { 19 for (var i = 0; i < 50; i++) { 20 var f = (function () {}).bind({}); 21 assertEq(f.name, "bound "); 22 } 23 24 for (var i = 0; i < 50; i++) { 25 var f = (function a () {}).bind({}); 26 assertEq(f.name, "bound a"); 27 } 28 } 29 30 function native() { 31 for (var i = 0; i < 50; i++) { 32 // Use the interpreted function for getting the IC generated in the first place. 33 var f = function () {}; 34 35 var name = "f"; 36 if (i == 15) { 37 f = Math.sin; 38 name = "sin"; 39 } else if (i == 20) { 40 f = Math.cos; 41 name = "cos"; 42 } else if (i == 25) { 43 f = Math.ceil; 44 name = "ceil"; 45 } else if (i == 30) { 46 f = Math.tan; 47 name = "tan"; 48 } else if (i == 35) { 49 f = Math.tanh; 50 name = "tanh"; 51 } 52 53 assertEq(f.name, name); 54 } 55 } 56 57 interpreted(); 58 bound(); 59 native();