Как я могу различить функцию стрелки, класс и нормальную функцию?

Как я могу различить эти три вещи в ES6, используя его ссылку?

let x = i => i+1;

class y { constructor(i) { this._i=i+1; } get i(){ return this._i;} }

function z(i) { return i+1; }

Пример:

test(x) //=> 'arrow'
test(y) //=> 'class'
test(z) //=> 'function'

И как я могу различить эти вещи в транспортерах - Traceur / Babel?

Ответы на вопрос(2)

Ваш ответ на вопрос