Comment #3 on issue 838 by swivelgames: Function [[Call]] should return
Reference Type
http://code.google.com/p/v8/issues/detail?id=838
But is it safe to say that, theoretically, a function *could* return a
reference? Like, in the example below...
var myObj = new Object();
function myFunc() {
myObj.test = "blah";
return myObj;
}
myFunc() = new String("foobar");
Shouldn't `myObj` now become a primitive string with a value of "foobar"?
After all, the engine treats variables in JavaScript more like reference
holders than actual variables. This seems like it would be proper
JavaScript.... Especially since the following is valid...
myFunc().test = "rawr";
console.log(myObj.test); // Prints out "rawr"
This early error is actually in violation of both Early Errors but also
Section 8.7, "The Reference Specification Type"
(http://es5.github.com/#x8.7)
Technically the first example I gave is completely legal, although it is
only a side-affect of the intended capabilities. Still, it is clearly
written that it is indeed a side-affect but does indeed need to function
that way. Just as chainability has spawned from this very ability, the
first example is clearly legal. It is only limited due to the Early Error.
Otherwise, technically, the first example should work.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev