Предыстория:
Это отлично работает во всех браузерах, ЗА ИСКЛЮЧЕНИЕМ Safari (5.0.1)
var chunk = arr[i];
chunk = chunk.replace('$', '\\$');
var a = eval('message.match(/' + chunk + '/gi);');
if(a instanceof Array) symbol = symbol.concat(a);
Поэтому я изменил его на следующее:
var chunk = String(arr[i]);
chunk = chunk.replace('$', '\\$');
var a = eval('message.match(/' + chunk + '/gi);');
if(a instanceof Array) symbol = symbol.concat(a);
Что сделало Safari BIT более счастлив, когда он просто выдавал неоднозначную ошибку (УДОВОЛЬСТВИЕ!)
Я нашел решение и размещаю его ниже на случай, если другие сценаристы столкнутся с этой проблемой.