Всем привет.
Пишу пакет. Столкнулся с кое-каким моментом при компиляции ES6(2015) в ES5 с помощью Babel.
Есть такая исходная конструкция:
switch(typeof obj) {
case 'string':
case 'number':
///...
break;
case 'object':
//...
break;
}
Но результат после компиляции получается вот такой:
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
switch(typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) {
case 'string':
case 'number':
///...
break;
case 'object':
//...
break;
}
Я понимаю, что это полифил для Symbol, но как мне указать явно, что там полифилить мне ничего не нужно? Ведь я там явно знаю, что проверок на typeof "symbol" у меня нет, поэтому мне лишние вызовы не нужны.
P.S.: знаю, что экономия на спичках, но я перфекционист.