Also erstmal: Ein String ist schon ein Objekt...
Na meinetwegen, ich ging davon aus, weil ich String-Methoden auch direkt auf "freistehende" Strings anwenden kann, so wie:
[Test](javascript:alert("foo".blink());)
alert("foo".blink());
Daher meine Annahme, dass bei var foo = "bar";
ein String-Objekt entstünde und dass bei var baz = /foo/;
ein RegExp-Objekt entstünde.
Wenn ich dich richtig verstanden habe passiert das aber erst wenn ich eine Methode darauf anwende _und_ es wird wieder in ein Primitive zurückverwandelt?
Kannst du das für alle JS-Engines sicher sagen?