Dictionary and GC

Ok, i know there already many Thread about the Dictionary object and ASVM GC
and me have read almost all of them that me can found, but non of them answer my doubt.

my question is, how the GC do on weak reference, check the code below


var dic:Dictionary = new Dictionary(true);
var o1:Object = new Object();
var o2:Object = new Object();
dic[o1] = o2;

delete o1;

since o1 is deleted, and the reference counter will be zero, and the dic is using weak reference, so it will be collect by GC with reference counting method

but how about o2?
it will collect by GC with reference counting method, or with Mark and Sweep method?

dic is exist whole runtime, never deleted.

thankyou