The question is incorrect in principle because JavaScript is interpretive language using loose typing (dynamic, weak, duck typing discipline).
Please see
http://en.wikipedia.org/wiki/JavaScript[
^].
There is no a concept of a primitive type in JavaScript. More exactly, the way of interpretation of "bare" integer or Boolean values (they only exist explicitly as the result of Boolean operations) is implementation-dependent. In a way, it does not matter, because there is no such thing as a type of a variable. But "all of primitive type in JavaScript wrapped to a object" is generally not true, at least from the standpoint of JavaScript developer. You can find it out writing something like
value = 13
and examining
value
under Debugger. By the way, all "complex" JavaScript objects are merely the associative arrays:
http://www.quirksmode.org/js/associative.html[
^].
Don't mix it up with .NET
boxing, which is also not something which "always" happen. :-)
Object type in C# is not a primitive type, and C# and JavaScript methods never call each other. If you have such illusion, this is maybe only because C# methods generate some text of some JavaScript code on the server side, parametrize generation of text to insert same values calculated on the server side, but ultimately everything is done just through generation of code text and nothing else. This is how ASP.NET works with JavaScript. There is nothing else. There is no point in comparison these two languages.
—SA