Вот весь код: var x = []; x[0x7fffffff]=1; JSON.stringify(x);
Для желающих попробовать: jsfiddle
Таким незамысловатым способом, можно намертво повесить firefox, довести до падения вкладку хрома и повесить основной поток nodejs.
Самое примечательное в этом то, что зависание происходит на уровне нативного кода функции JSON.stringify
, что не позволяет прервать выполнение в том же firefox'е, как это обычно бывает при простом while(true);
.
При выполнении внутри WebWorker'а в chrome, страница продолжает отвечать, но terminate не может завершить поток.
Так же по понятным причинам, такой код не обнаруживается jslint'ом.