Je rencontre des faiblesses Javascript, après avoir essayé ce code dans google chrome developer console, en cours d'exécution avec --js-flags = "- -exposer-gc", je ne comprends pas pourquoi la weakmap garde une référence à ab si a est gc'ed.JavaScript WeakMap continuer à référencer les objets gc'ed
var a = {listener: function(){ console.log('A') }}
a.b = {listener: function(){ console.log('B') }}
var map = new WeakMap()
map.set(a.b, [])
map.set(a, [a.b.listener])
console.log(map) // has both a and a.b
gc()
console.log(map) // still have both a and a.b
a = undefined
gc()
console.log(map) // only have a.b: why does still have a reference to a.b? Should'nt be erased?
Cela ressemble à un bug pour moi. Cela persiste-t-il si vous 'gc()' plusieurs fois? Si oui, vous devriez probablement le signaler avec V8. – Bergi