Возможна ли подмена конструкторов у значений, порождаемых простыми конструкциями {} и [] в языке JavaScript?
Такого способа нет:
http://www.ecma-international.org/ecma-262/5.1/#sec-11.1.4
http://www.ecma-international.org/ecma-262/5.1/#sec-11.1.5
Косвенно по теме:
Если пробрасывать данные во фрейм через postMessage, то проблем с x instanceof RegExp/Array не должно быть — // top
frames.myframe.postMessage([ 'action', [], /x/ ], '*');

// myframe
window.onmessage = function(event){
   event.data[1] instanceof Array // -> true
   event.data[2] instanceof RegExp // -> true
}
