Существует ли какой-либо современный браузер, который вызывает исключения при распространении NaN (т.е. умножение или добавление числа на NaN) или может быть настроен для этого?
Бесшумное распространение NaN - ужасный и коварный источник ошибок, и мне бы хотелось, чтобы они могли обнаружить их рано, даже при снижении производительности.
Вот пример ошибки, что use strict
, jshint
et al. не подобрал бы:
object = new MyObject();
object.position.x = 0;
object.position.y = 10;
// ... lots of code
var newPosition = object.position + 1; // <- this is an error, and should
// have been object.position.x
// however it fails *silently*,
// rather than loudly
newPosition *= 2; // <- this doesn't raise any errors either.
// this code is actually ok if the
// previous line had been correct