if (platformSupportsSamplingProfiler()) { load("./sampling-profiler/samplingProfiler.js"); function foo() { let o = {}; for (let i = 0; i < 500; i++) o[i + "p"] = i; } foo.displayName = "display foo"; runTest(foo, ["display foo"]); function baz() { let o = {}; for (let i = 0; i < 500; i++) o[i + "p"] = i; } Object.defineProperty(baz, 'displayName', { get: function() { throw new Error("shouldnt be called"); } }); // We should ignore this because it's a getter. runTest(baz, ["baz"]); function bar() { let o = {}; for (let i = 0; i < 500; i++) o[i + "p"] = i; } bar.displayName = 20; // We should ignore this because it's not a string. runTest(bar, ["bar"]); function jaz() { let o = {}; for (let i = 0; i < 500; i++) o[i + "p"] = i; } jaz.displayName = ""; // We should ignore this because it's the empty string. runTest(jaz, ["jaz"]); function makeFunction(displayName) { let result = function() { let o = {}; for (let i = 0; i < 500; i++) o[i + "p"] = i; }; result.displayName = displayName; return result; } runTest(makeFunction("hello world"), ["hello world"]) }