[Project_owners] clearing variables

Konstantin Svist fry.kun at gmail.com
Tue Feb 7 11:49:45 EST 2006


writing 'delete foo' ensures that the reference is broken and that
variable is no longer defined. 'foo = null' removes the reference too
but the variable is still defined.

the memory is probably not cleared immediately - what's the point?
I don't think there's any way in JS to get uninitialized value.

for instance, if you do
var x;
alert(x);
it simply says undefined

what you need to worry about is multiple references and copies


if the data is so sensitive, why not just use the built-in password
manager? many extensions do that already.


On 2/7/06, Rod Whiteley <rod.whiteley at gmail.com> wrote:
> Eric H. Jung wrote:
> > I suppose that question can be answered by someone who knows whether or
> > not properties of a variable are deleted when the variable itself is
> > deleted. Anyone?
>
> Of course they are, but even that's not the whole point.  Suppose your
> code executes:
>
> foo = "sensitive data"
>
> and later it executes:
>
> foo = null
>
> The string "sensitive data" is probably still in memory*, even though
> the memory is available for reuse and might be overwritten later.  Writing:
>
> delete foo
>
> is no help.  That only affects memory used by the property itself.
>
> * And that's my question: is unused memory cleared immediately, or
> cleared later by the garbage collector, or (most likely) not cleared at
> all until something else happens to overwrite it?
>
> --
> Rod Whiteley
> _______________________________________________
> Project_owners mailing list
> Project_owners at mozdev.org
> http://mozdev.org/mailman/listinfo/project_owners
>


More information about the Project_owners mailing list