Реализация перегрузки операторов в Javascript с помощью транспилятора

Одной из проблем для некоторых из нас с Javascript является отсутствие перегрузки операторов. Это затрудняет написание числовых библиотек.Например, мы могли бы написать что-то вроде:

var a = new BigInteger(5);
var b = new BigInteger(10);
var c = a + b;

Возможное решение - транспилировать язык с перегрузкой операторов в Javascript. Хотя это возможно - за счет замены операторов вызовами функций и проверками типов, - похоже, что это невозможно без снижения производительности. CoffeeScript отклонил эту идею по этой причине:

https://github.com/jashkenas/coffee-script/issues/846

Но разве нет умных решений?

Например, это могло быть возможно проверка типа подъема из тесных циклов или использование какого-либо другого конвейера, в котором современные компиляторы JS могут оптимизировать добавленную неразбериху, когда типы являются числовыми.

Идеи?

7
задан Tristan 18 September 2011 в 18:03
поделиться