Turn Profiler.startTypeProfile on and off.

Running test: testTypeProfile

function g(/*Object*/a, /*Array*/b, /*null*/c) {
  return 'first';
/*string*/};
g({}, [], null);


Running test: testTypeProfileFromDifferentSource

function f(/*null*/a) {
  return 'second';
/*string*/};
f(null);


Running test: testStopTypeProfileDeletesFeedback
[
]

Running test: testTypeProfileWithoutStartingItFirst
Type profile has not been started.

Running test: testTypeProfileAfterStoppingIt
Type profile has not been started.

Running test: testStartTypeProfileAfterRunning
{
    id : <messageId>
    result : {
        result : [
        ]
    }
}

Running test: testTypeProfileForTwoSources

function g(/*Object*/a, /*Array*/b, /*null*/c) {
  return 'first';
/*string*/};
g({}, [], null);


function f(/*null*/a) {
  return 'second';
/*string*/};
f(null);

Running test: testStopTwice
