Согласно спецификации ES5.1, программа "use strict;" "foo".bar = 42; "use strict;" "foo".bar = 42; вызывает создание объекта String, присваивает ему свойство и затем удаляет объект, что не приводит к наблюдаемым эффектам, включая любые исключения. (Отсутствие эффекта можно подтвердить, попробовав его в ES5-совместимой реализации JS, как в Opera 12.)
В современных реализациях JS он вместо этого TypeError - попробуйте:
"use strict"; "foo".bar = 42;