Closed
Bug 511998
Opened 16 years ago
Closed 15 years ago
Arguments object properties no longer alias arguments after the function returns
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 478174
People
(Reporter: jorendorff, Unassigned)
Details
var get, put;
function f(a) {
var args = arguments;
get = function () { return a;};
put = function (x) { args[0] = x; };
}
f('old');
put('new');
assertEq(get(), 'new');
When f returns, we call js_PutCallObject and js_PutArgsObject, and separate copies of the locals are stored in the two objects. put() only affects arguments, not the Call object.
I think ES3 requires `arguments[0]` and `a` to keep aliasing forever.
Comment 1•16 years ago
|
||
Yes, ES3 does specify that.
Richard Cornford pointed this out here:
https://mail.mozilla.org/pipermail/es-discuss/2008-July/006618.html
I forgot to file a bug. Kind of on purpose :-P.
/be
Updated•16 years ago
|
Flags: wanted1.9.2?
| Reporter | ||
Comment 2•15 years ago
|
||
478174 has a nicer test case.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
Updated•14 years ago
|
Flags: wanted1.9.2?
You need to log in
before you can comment on or make changes to this bug.
Description
•