Как функция util.toFastProperties в Bluebird делает свойства объекта «быстрыми»?
В блюбердеutil.js
файл, он имеет следующую функцию:
function toFastProperties(obj) {
/*jshint -W027*/
function f() {}
f.prototype = obj;
ASSERT("%HasFastProperties", true, obj);
return f;
eval(obj);
}
По какой-то причине после функции return есть оператор, который я не уверен, почему он там есть.
Кроме того, кажется, что это является преднамеренным, поскольку автор заставил JSHint предупредить об этом:
Недоступный 'eval' после 'return'. (W027)
Что именно делает эта функция? Есть лиutil.toFastProperties
действительно сделать свойства объекта "быстрее"?
Я искал в репозитории Bluebird GitHub какие-либо комментарии в исходном коде или объяснения в их списке проблем, но я не смог их найти.